From: Ole Streicher <olebole@debian.org>
Date: Tue, 10 Jan 2017 22:19:26 +0100
Subject: Remove AST references

This removes the dependency on jniast.
---
 build.xml                                          | 28 +++++-----
 .../starlink/datanode/factory/DataNodeFactory.java |  5 --
 .../starlink/datanode/nodes/ImageHDUDataNode.java  | 63 +---------------------
 .../uk/ac/starlink/datanode/nodes/NodeUtil.java    |  3 +-
 .../starlink/datanode/tree/TableNodeChooser.java   |  2 -
 5 files changed, 15 insertions(+), 86 deletions(-)

diff --git a/build.xml b/build.xml
index c83a398..a62ab4e 100644
--- a/build.xml
+++ b/build.xml
@@ -204,9 +204,6 @@
     <!-- Table -->
     <pathelement location="${star.jar.dir}/table/table.jar"/>
  
-    <!-- JNIAST -->
-    <pathelement location="${star.jar.dir}/jniast/jniast.jar"/>
- 
     <!-- TAMFITS -->
     <pathelement location="${star.jar.dir}/tamfits/tamfits.jar"/>
 
@@ -241,8 +238,6 @@
        location="${star.build.dir}/array/lib/array/array.jar"/>
     <pathelement
        location="${star.build.dir}/table/lib/table/table.jar"/>
-    <pathelement
-       location="${star.build.dir}/jniast/lib/jniast/jniast.jar"/>
     <pathelement
        location="${star.build.dir}/tamfits/lib/tamfits/tamfits.jar"/>
     <pathelement
@@ -401,12 +396,6 @@
                classname="uk.ac.starlink.table.StarTable"/>
     <fail message="No Table available" unless="table.present"/>
 
-    <!-- Need JNIAST -->
-    <available property="jniast.present"
-               classpathref="classpath"
-               classname="uk.ac.starlink.ast.Grf"/>
-    <fail message="No JNIAST available" unless="jniast.present"/>
-
     <!-- Need TAMFITS -->
     <available property="tamfits.present"
                classpathref="classpath"
@@ -504,6 +493,11 @@
       <classpath refid="classpath"/>
 
       <include name="**/*.java"/>
+      <exclude name="uk/ac/starlink/datanode/nodes/WCSDataNode.java"/>
+      <exclude name="uk/ac/starlink/datanode/nodes/WCSChannel.java"/>
+      <exclude name="uk/ac/starlink/datanode/nodes/FrameDataNode.java"/>
+      <exclude name="uk/ac/starlink/datanode/viewers/AstTextShower.java"/>
+      <exclude name="uk/ac/starlink/datanode/viewers/AstFITSShower.java"/>
     </javac>
 
     <!-- Copy extra files that should live with packages classes
@@ -600,7 +594,6 @@
          <extension name="UTIL" href="util.jnlp"/>
          <extension name="ARRAY" href="array.jnlp"/>
          <extension name="TABLE" href="table.jnlp"/>
-         <extension name="JNIAST" href="jniast.jnlp"/>
          <extension name="TAMFITS" href="tamfits.jnlp"/>
          <extension name="FITS" href="fits.jnlp"/>
          <extension name="JNIHDS" href="jnihds.jnlp"/>
@@ -1010,9 +1003,14 @@
 
       <!-- Get a list of directories that name all the potential
        !   java packages -->
-      <packageset dir="${java.dir}" defaultexcludes="yes">
-         <include name="**"/>
-      </packageset>
+      <fileset dir="${java.dir}" defaultexcludes="yes">
+         <include name="**/*.java"/>
+	 <exclude name="uk/ac/starlink/datanode/nodes/WCSDataNode.java"/>
+	 <exclude name="uk/ac/starlink/datanode/nodes/WCSChannel.java"/>
+	 <exclude name="uk/ac/starlink/datanode/nodes/FrameDataNode.java"/>
+	 <exclude name="uk/ac/starlink/datanode/viewers/AstTextShower.java"/>
+	 <exclude name="uk/ac/starlink/datanode/viewers/AstFITSShower.java"/>
+      </fileset>
 
       <!-- Link to the full Java API at SUNs website -->
       <link offline="true" href="${javaapi.url}"
diff --git a/src/main/uk/ac/starlink/datanode/factory/DataNodeFactory.java b/src/main/uk/ac/starlink/datanode/factory/DataNodeFactory.java
index 3c977a6..d05d400 100644
--- a/src/main/uk/ac/starlink/datanode/factory/DataNodeFactory.java
+++ b/src/main/uk/ac/starlink/datanode/factory/DataNodeFactory.java
@@ -40,7 +40,6 @@ import uk.ac.starlink.datanode.nodes.TarStreamDataNode;
 import uk.ac.starlink.datanode.nodes.VOComponentDataNode;
 import uk.ac.starlink.datanode.nodes.VOTableDataNode;
 import uk.ac.starlink.datanode.nodes.VOTableTableDataNode;
-import uk.ac.starlink.datanode.nodes.WCSDataNode;
 import uk.ac.starlink.datanode.nodes.XMLDataNode;
 import uk.ac.starlink.datanode.nodes.ZipFileDataNode;
 import uk.ac.starlink.util.DataSource;
@@ -665,7 +664,6 @@ public class DataNodeFactory {
             /* Assemble a list of the names of known DataNode classes. */
             List classNameList = new ArrayList( Arrays.asList( new String[] {
                 NDFDataNode.class.getName(),
-                WCSDataNode.class.getName(),
                 ARYDataNode.class.getName(),
                 HistoryDataNode.class.getName(),
                 HDSDataNode.class.getName(),
@@ -700,9 +698,6 @@ public class DataNodeFactory {
                 classNameList.remove( HistoryDataNode.class.getName() );
                 classNameList.remove( HDSDataNode.class.getName() );
             }
-            if ( ! NodeUtil.hasAST() ) {
-                classNameList.remove( WCSDataNode.class.getName() );
-            }
 
             /* Now construct a corresponding list of the classes themselves.
              * If there's a problem loading any of these, just log it
diff --git a/src/main/uk/ac/starlink/datanode/nodes/ImageHDUDataNode.java b/src/main/uk/ac/starlink/datanode/nodes/ImageHDUDataNode.java
index 82e961b..15eefeb 100644
--- a/src/main/uk/ac/starlink/datanode/nodes/ImageHDUDataNode.java
+++ b/src/main/uk/ac/starlink/datanode/nodes/ImageHDUDataNode.java
@@ -16,12 +16,6 @@ import uk.ac.starlink.array.BridgeNDArray;
 import uk.ac.starlink.array.MouldArrayImpl;
 import uk.ac.starlink.array.NDArray;
 import uk.ac.starlink.array.NDShape;
-import uk.ac.starlink.ast.AstException;
-import uk.ac.starlink.ast.AstObject;
-import uk.ac.starlink.ast.FitsChan;
-import uk.ac.starlink.ast.Frame;
-import uk.ac.starlink.ast.FrameSet;
-import uk.ac.starlink.ast.SkyFrame;
 import uk.ac.starlink.fits.FitsArrayBuilder;
 import uk.ac.starlink.fits.FitsConstants;
 import uk.ac.starlink.fits.MappedFile;
@@ -45,9 +39,6 @@ public class ImageHDUDataNode extends HDUDataNode {
     private String blank;
     private FITSFileDataNode.ArrayDataMaker hdudata;
     private Number badval;
-    private FrameSet wcs;
-    private String wcsEncoding;
-    private Ndx ndx;
 
     /**
      * Initialises an <code>ImageHDUDataNode</code> from a <code>Header</code> 
@@ -124,41 +115,6 @@ public class ImageHDUDataNode extends HDUDataNode {
                 dataType = null;
         }
 
-        if ( NodeUtil.hasAST() ) {
-            try {
-                final Iterator hdrIt = hdr.iterator();
-                Iterator lineIt = new Iterator() {
-                    public boolean hasNext() {
-                        return hdrIt.hasNext();
-                    }
-                    public Object next() {
-                        return hdrIt.next().toString();
-                    }
-                    public void remove() {
-                        throw new UnsupportedOperationException();
-                    }
-                };
-                FitsChan chan = new FitsChan( lineIt );
-                wcsEncoding = chan.getEncoding();
-                AstObject aobj = chan.read();
-                if ( aobj != null && aobj instanceof FrameSet ) {
-                    wcs = (FrameSet) aobj;
-                }
-                else {
-                    wcsEncoding = null;
-                    wcs = null;
-                }
-            }
-            catch ( AstException e ) {
-                wcsEncoding = null;
-                wcs = null;
-            }
-        }
-        else {
-            wcsEncoding = null;
-            wcs = null;
-        }
-
         description = "(" + hduType
                     + ( ( shape != null ) 
                          ? ( " " + NDShape.toString( shape.getDims() ) + " " ) 
@@ -179,14 +135,11 @@ public class ImageHDUDataNode extends HDUDataNode {
 
     public boolean allowsChildren() {
         // return false;
-        return wcs != null;
+        return false;
     }
 
     public Iterator getChildIterator() {
         List children = new ArrayList();
-        if ( wcs != null ) {
-            children.add( makeChild( wcs ) );
-        }
         return children.iterator();
     }
 
@@ -203,20 +156,6 @@ public class ImageHDUDataNode extends HDUDataNode {
             dv.addKeyedItem( "Blank value", blank );
         }
 
-        if ( wcs != null ) {
-            dv.addSubHead( "World coordinate system" );
-            dv.addKeyedItem( "Encoding", wcsEncoding );
-            uk.ac.starlink.ast.Frame frm = 
-                wcs.getFrame( FrameSet.AST__CURRENT );
-            dv.addKeyedItem( "Naxes", frm.getNaxes() );
-            if ( frm instanceof SkyFrame ) {
-                SkyFrame sfrm = (SkyFrame) frm;
-                dv.addKeyedItem( "Epoch", sfrm.getEpoch() );
-                dv.addKeyedItem( "Equinox", sfrm.getEquinox() );
-                dv.addKeyedItem( "Projection", sfrm.getProjection() );
-                dv.addKeyedItem( "System", sfrm.getSystem() );
-            }
-        }
     }
 
     public String getDescription() {
diff --git a/src/main/uk/ac/starlink/datanode/nodes/NodeUtil.java b/src/main/uk/ac/starlink/datanode/nodes/NodeUtil.java
index fbba8a1..bf399cb 100644
--- a/src/main/uk/ac/starlink/datanode/nodes/NodeUtil.java
+++ b/src/main/uk/ac/starlink/datanode/nodes/NodeUtil.java
@@ -5,7 +5,6 @@ import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 import java.util.logging.Logger;
-import uk.ac.starlink.ast.AstPackage;
 import uk.ac.starlink.datanode.factory.CreationState;
 import uk.ac.starlink.hds.HDSPackage;
 
@@ -75,7 +74,7 @@ public class NodeUtil {
      */
     public static boolean hasAST() {
         if ( hasAST_ == null ) {
-            hasAST_ = Boolean.valueOf( AstPackage.isAvailable() );
+            hasAST_ = Boolean.valueOf( false );
         }
         return hasAST_.booleanValue();
     }
diff --git a/src/main/uk/ac/starlink/datanode/tree/TableNodeChooser.java b/src/main/uk/ac/starlink/datanode/tree/TableNodeChooser.java
index 1dfdffc..9a218cc 100644
--- a/src/main/uk/ac/starlink/datanode/tree/TableNodeChooser.java
+++ b/src/main/uk/ac/starlink/datanode/tree/TableNodeChooser.java
@@ -20,7 +20,6 @@ import uk.ac.starlink.datanode.nodes.DataType;
 import uk.ac.starlink.datanode.nodes.NDArrayDataNode;
 import uk.ac.starlink.datanode.nodes.NDFDataNode;
 import uk.ac.starlink.datanode.nodes.NdxDataNode;
-import uk.ac.starlink.datanode.nodes.WCSDataNode;
 
 /**
  * TreeNodeChooser subclass designed to return 
@@ -173,7 +172,6 @@ public class TableNodeChooser extends TreeNodeChooser {
                 CompressedDataNode.class.getName(),
                 NdxDataNode.class.getName(),
                 NDFDataNode.class.getName(),
-                WCSDataNode.class.getName(),
                 HDSDataNode.class.getName(),
                 NDArrayDataNode.class.getName(),
             };
