Not used in Jalview
authoramwaterhouse <Andrew Waterhouse>
Thu, 22 Jun 2006 08:48:48 +0000 (08:48 +0000)
committeramwaterhouse <Andrew Waterhouse>
Thu, 22 Jun 2006 08:48:48 +0000 (08:48 +0000)
12 files changed:
src/org/biojava/dasobert/das/AlignmentParameters.java [deleted file]
src/org/biojava/dasobert/das/DAS_DNA_Handler.java [deleted file]
src/org/biojava/dasobert/das/DAS_Entry_Points_Handler.java [deleted file]
src/org/biojava/dasobert/das/DAS_Sequence_Handler.java [deleted file]
src/org/biojava/dasobert/das/DAS_StylesheetRetrieve.java [deleted file]
src/org/biojava/dasobert/das/DAS_Stylesheet_Handler.java [deleted file]
src/org/biojava/dasobert/das/DAS_Types_Handler.java [deleted file]
src/org/biojava/dasobert/das/SequenceThread.java [deleted file]
src/org/biojava/dasobert/das/SpiceDasSource.java [deleted file]
src/org/biojava/dasobert/das/Xpm.java [deleted file]
src/org/biojava/dasobert/dasregistry/Das1Validator.java [deleted file]
src/org/biojava/dasobert/dasregistry/DasSourceValidator.java [deleted file]

diff --git a/src/org/biojava/dasobert/das/AlignmentParameters.java b/src/org/biojava/dasobert/das/AlignmentParameters.java
deleted file mode 100755 (executable)
index faf6924..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- *                  BioJava development code
- *
- * This code may be freely distributed and modified under the
- * terms of the GNU Lesser General Public Licence.  This should
- * be distributed with the code.  If you do not have a copy,
- * see:
- *
- *      http://www.gnu.org/copyleft/lesser.html
- *
- * Copyright for this code is held jointly by the individual
- * authors.  These should be listed in @author doc comments.
- *
- * For more information on the BioJava project and its aims,
- * or to join the biojava-l mailing list, visit the home page
- * at:
- *
- *      http://www.biojava.org/
- * 
- * Created on Dec 10, 2005
- *
- */
-package org.biojava.dasobert.das;
-
-import org.biojava.dasobert.dasregistry.Das1Source;
-import org.biojava.dasobert.dasregistry.DasCoordinateSystem;
-
-/** a class that stores the arguments that can be sent to the AlignmentThread class
- * 
- * @author Andreas Prlic
- *
- */
-public class AlignmentParameters {
-
-    String query;
-    String subject;
-    String queryPDBChainId;
-    String subjectPDBChainId;
-    
-    
-    DasCoordinateSystem queryCoordinateSystem;
-    DasCoordinateSystem subjectCoordinateSystem;
-    Das1Source[] dasSources;
-    
-    
-    public static String DEFAULT_PDBCOORDSYS     = "PDBresnum,Protein Structure";
-    public static String DEFAULT_UNIPROTCOORDSYS = "UniProt,Protein Sequence";
-    public static String DEFAULT_ENSPCOORDSYS    = "Ensembl,Protein Sequence";
-    
-    
-    public AlignmentParameters() {
-        super();
-        dasSources = new SpiceDasSource[0];
-
-    }
-
-    public DasCoordinateSystem getDefaultPDBCoordSys(){
-        return DasCoordinateSystem.fromString(DEFAULT_PDBCOORDSYS);
-    }
-    public DasCoordinateSystem getDefaultUniProtCoordSys(){
-        return DasCoordinateSystem.fromString(DEFAULT_UNIPROTCOORDSYS);
-    }
-    public DasCoordinateSystem getDefaultEnspCoordSys(){
-        return DasCoordinateSystem.fromString(DEFAULT_ENSPCOORDSYS);
-    }
-    
-
-    public Das1Source[] getDasSources() {
-        return dasSources;
-    }
-
-
-
-    public void setDasSources(SpiceDasSource[] dasSources) {
-        this.dasSources = dasSources;
-    }
-
-
-
-    public String getQuery() {
-        return query;
-    }
-
-
-
-    public void setQuery(String query) {
-        this.query = query;
-    }
-
-
-
-    public DasCoordinateSystem getQueryCoordinateSystem() {
-        return queryCoordinateSystem;
-    }
-
-
-
-    public void setQueryCoordinateSystem(DasCoordinateSystem queryCoordinateSystem) {
-        this.queryCoordinateSystem = queryCoordinateSystem;
-    }
-
-
-
-    public String getQueryPDBChainId() {
-        return queryPDBChainId;
-    }
-
-
-
-    public void setQueryPDBChainId(String queryPDBChainId) {
-        this.queryPDBChainId = queryPDBChainId;
-    }
-
-
-
-    public String getSubject() {
-        return subject;
-    }
-
-
-
-    public void setSubject(String subject) {
-        this.subject = subject;
-    }
-
-
-
-    public DasCoordinateSystem getSubjectCoordinateSystem() {
-        return subjectCoordinateSystem;
-    }
-
-
-
-    public void setSubjectCoordinateSystem(
-            DasCoordinateSystem subjectCoordinateSystem) {
-        this.subjectCoordinateSystem = subjectCoordinateSystem;
-    }
-
-
-
-    public String getSubjectPDBChainId() {
-        return subjectPDBChainId;
-    }
-
-
-
-    public void setSubjectPDBChainId(String subjectPDBChainId) {
-        this.subjectPDBChainId = subjectPDBChainId;
-    }
-    
-    
-    
-
-}
diff --git a/src/org/biojava/dasobert/das/DAS_DNA_Handler.java b/src/org/biojava/dasobert/das/DAS_DNA_Handler.java
deleted file mode 100755 (executable)
index 49b1ad1..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- *                    BioJava development code
- *
- * This code may be freely distributed and modified under the
- * terms of the GNU Lesser General Public Licence.  This should
- * be distributed with the code.  If you do not have a copy,
- * see:
- *
- *      http://www.gnu.org/copyleft/lesser.html
- *
- * Copyright for this code is held jointly by the individual
- * authors.  These should be listed in @author doc comments.
- *
- * For more information on the BioJava project and its aims,
- * or to join the biojava-l mailing list, visit the home page
- * at:
- *
- *      http://www.biojava.org/
- *
- * Created on 19.03.2004
- * @author Andreas Prlic
- *
- */
-package org.biojava.dasobert.das;
-
-
-import org.xml.sax.helpers.DefaultHandler;
-import org.xml.sax.Attributes;
-
-/**
- * a class to parse the XML response of a DAS-DNA request.
- * @author andreas
- */
-public class DAS_DNA_Handler extends DefaultHandler {
-
-       String sequence ;
-       int length ;
-       boolean dna_flag; 
-       /**
-        * 
-        */
-       public DAS_DNA_Handler() {
-               super();
-               // TODO Auto-generated constructor stub
-               sequence = "" ;
-               length = 0;
-               dna_flag = false ;
-       }
-
-       public void startElement (String uri, String name, String qName, Attributes atts){
-
-           if ( qName.equals("DNA")){
-               //System.out.println("new element >" + name + "< >" + qName+"<");
-               // was : length
-               String lenstr   = atts.getValue("length");
-               length = Integer.parseInt(lenstr);
-               dna_flag = true ;
-           }
-               
-       }
-       
-       public void characters (char ch[], int start, int length){
-           //System.out.print("Characters:    \"");
-               if (dna_flag) 
-                for (int i = start; i < start + length; i++) {
-                       switch (ch[i]) {
-                       case '\\':
-                               //System.out.print("\\\\");
-                               break;
-                       case '"':
-                               //System.out.print("\\\"");
-                               break;
-                       case '\n':
-                               //System.out.print("\\n");
-                               break;
-                       case '\r':
-                               //System.out.print("\\r");
-                               break;
-                       case '\t':
-                               //System.out.print("\\t");
-                               break;
-                       case ' ':
-                               break;
-                       default:
-                               sequence = sequence + ch[i];
-                               //System.out.print(ch[i]);
-                break;
-                }
-                }
-                //System.out.print("\"\n");
-                
-       }
-       
-       public String get_sequence() {
-               if ( length != sequence.length()) {             
-                       System.err.println("Sequence does not match specified length!");
-               }
-               
-               return sequence;
-       }
-               
-       
-       
-}
diff --git a/src/org/biojava/dasobert/das/DAS_Entry_Points_Handler.java b/src/org/biojava/dasobert/das/DAS_Entry_Points_Handler.java
deleted file mode 100755 (executable)
index 9afa621..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- *                    BioJava development code
- *
- * This code may be freely distributed and modified under the
- * terms of the GNU Lesser General Public Licence.  This should
- * be distributed with the code.  If you do not have a copy,
- * see:
- *
- *      http://www.gnu.org/copyleft/lesser.html
- *
- * Copyright for this code is held jointly by the individual
- * authors.  These should be listed in @author doc comments.
- *
- * For more information on the BioJava project and its aims,
- * or to join the biojava-l mailing list, visit the home page
- * at:
- *
- *      http://www.biojava.org/
- *
- * Created on 19.03.2004
- * @author Andreas Prlic
- *
- */
-package org.biojava.dasobert.das ;
-
-import org.xml.sax.helpers.DefaultHandler;
-import org.xml.sax.Attributes;
-
-
-/** a class to parse the reponse of a DAS - types request 
- */
-public class DAS_Entry_Points_Handler extends DefaultHandler {
-    String version ;
-    
-    public DAS_Entry_Points_Handler() {
-       super();
-       
-       version = null;
-    }
-
-    public void startElement (String uri, String name, String qName, Attributes atts){
-       if ( qName.equals("DASEP")) {
-           
-       }  else if ( qName.equals("ENTRY_POINTS")) {
-        
-           String v = atts.getValue("version");
-           version = v;            
-       }       
-    }
-    
-    /** returns true if the server returns an entry points */
-    public String getVersion() {
-       return version;
-    }
-   
-}
-
diff --git a/src/org/biojava/dasobert/das/DAS_Sequence_Handler.java b/src/org/biojava/dasobert/das/DAS_Sequence_Handler.java
deleted file mode 100755 (executable)
index 0d39e15..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- *                    BioJava development code
- *
- * This code may be freely distributed and modified under the
- * terms of the GNU Lesser General Public Licence.  This should
- * be distributed with the code.  If you do not have a copy,
- * see:
- *
- *      http://www.gnu.org/copyleft/lesser.html
- *
- * Copyright for this code is held jointly by the individual
- * authors.  These should be listed in @author doc comments.
- *
- * For more information on the BioJava project and its aims,
- * or to join the biojava-l mailing list, visit the home page
- * at:
- *
- *      http://www.biojava.org/
- *
- * Created on 19.03.2004
- * @author Andreas Prlic
- *
- */
-package org.biojava.dasobert.das;
-
-
-import org.xml.sax.helpers.DefaultHandler;
-import org.xml.sax.Attributes            ;
-import java.util.logging.*                ;
-
-/**
- * a class that parses the XML response of a DAS - sequence command.
- * @author Andreas Prlic
- *
- */
-public class DAS_Sequence_Handler extends DefaultHandler {
-
-       String sequence ;
-       int length ;
-       boolean dna_flag; 
-       /**
-        * 
-        */
-       public DAS_Sequence_Handler() {
-               super();
-               // TODO Auto-generated constructor stub
-               sequence = "" ;
-               length = 0;
-               dna_flag = false ;
-       }
-
-       public void startElement (String uri, String name, String qName, Attributes atts){
-
-           if ( qName.equals("SEQUENCE")){
-               //System.out.println("new element >" + name + "< >" + qName+"<");
-               // was : length
-               String lenstr   = atts.getValue("stop");
-               length = Integer.parseInt(lenstr);
-               dna_flag = true ;
-           }
-               
-       }
-       
-       public void characters (char ch[], int start, int length){
-           //System.out.print("Characters:    \"");
-               if (dna_flag) 
-                for (int i = start; i < start + length; i++) {
-                       switch (ch[i]) {
-                       case '\\':
-                               //System.out.print("\\\\");
-                               break;
-                       case '"':
-                               //System.out.print("\\\"");
-                               break;
-                       case '\n':
-                               //System.out.print("\\n");
-                               break;
-                       case '\r':
-                               //System.out.print("\\r");
-                               break;
-                       case '\t':
-                               //System.out.print("\\t");
-                               break;
-                       case ' ':
-                               break;
-                       default:
-                               sequence = sequence + ch[i];
-                               //System.out.print(ch[i]);
-                break;
-                }
-                }
-                //System.out.print("\"\n");
-                
-       }
-       
-       public String get_sequence() {
-               if ( length != sequence.length()) {     
-                   Logger logger  = Logger.getLogger("org.biojava.spice");
-                   logger.warning("Sequence does not match specified length!");
-                       
-               }
-               
-               return sequence;
-       }
-               
-       
-       
-}
diff --git a/src/org/biojava/dasobert/das/DAS_StylesheetRetrieve.java b/src/org/biojava/dasobert/das/DAS_StylesheetRetrieve.java
deleted file mode 100755 (executable)
index 8411aca..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- *                  BioJava development code
- *
- * This code may be freely distributed and modified under the
- * terms of the GNU Lesser General Public Licence.  This should
- * be distributed with the code.  If you do not have a copy,
- * see:
- *
- *      http://www.gnu.org/copyleft/lesser.html
- *
- * Copyright for this code is held jointly by the individual
- * authors.  These should be listed in @author doc comments.
- *
- * For more information on the BioJava project and its aims,
- * or to join the biojava-l mailing list, visit the home page
- * at:
- *
- *      http://www.biojava.org/
- *
- * Created on Aug 3, 2005
- *
- */
-package org.biojava.dasobert.das;
-
-import java.io.InputStream;
-import java.net.*;
-import java.util.*;
-import java.util.logging.Logger;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.xml.sax.InputSource;
-import org.xml.sax.XMLReader;
-
-/** this stores the stylesheet config for a DAS source.
- *
- * @author Andreas Prlic
- *
- */
-public class DAS_StylesheetRetrieve {
-    static Logger logger = Logger.getLogger("org.biojava.spice");
-    /**
-     *
-     */
-    Map[] t3DMap;
-    public DAS_StylesheetRetrieve() {
-        super();
-
-    }
-
-    /** retrieve a StyleSheet from a URL
-     * The style sheet is represented as a Map[],
-     *  where each Map contains the description of how to draw a features of a particular type.
-     *
-     *  */
-    public Map[] retrieve(URL dasStylesheetRequest){
-
-        logger.finest("requesting stylesheet from " + dasStylesheetRequest);
-
-        InputStream inStream = null;
-
-               try {
-                   HttpURLConnection huc = DAS_FeatureRetrieve.openHttpURLConnection(dasStylesheetRequest);
-
-                   logger.finest("got connection: "+huc.getResponseMessage());
-                   //String contentEncoding = huc.getContentEncoding();
-                   inStream = huc.getInputStream();
-
-
-                   SAXParserFactory spfactory =
-                           SAXParserFactory.newInstance();
-
-                       spfactory.setValidating(false);
-
-                   SAXParser saxParser = null ;
-
-                       try{
-                           saxParser =
-                               spfactory.newSAXParser();
-                       } catch (ParserConfigurationException e) {
-                           e.printStackTrace();
-                       }
-
-                       DAS_Stylesheet_Handler cont_handle = new DAS_Stylesheet_Handler() ;
-                       XMLReader xmlreader = saxParser.getXMLReader();
-
-                       xmlreader.setContentHandler(cont_handle);
-                       xmlreader.setErrorHandler(new org.xml.sax.helpers.DefaultHandler());
-                       InputSource insource = new InputSource() ;
-                       insource.setByteStream(inStream);
-
-
-                   xmlreader.parse(insource);
-                       Map[] typeMap = cont_handle.getTypeStyles();
-
-                       t3DMap = cont_handle.get3DStyles();
-                       return typeMap;
-
-               } catch (Exception e) {
-                   logger.finest(e.getMessage());
-                   return null;
-               }
-    }
-
-
-    public Map[] get3DStyle(){
-        return t3DMap;
-    }
-}
diff --git a/src/org/biojava/dasobert/das/DAS_Stylesheet_Handler.java b/src/org/biojava/dasobert/das/DAS_Stylesheet_Handler.java
deleted file mode 100755 (executable)
index 561177b..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- *                  BioJava development code
- *
- * This code may be freely distributed and modified under the
- * terms of the GNU Lesser General Public Licence.  This should
- * be distributed with the code.  If you do not have a copy,
- * see:
- *
- *      http://www.gnu.org/copyleft/lesser.html
- *
- * Copyright for this code is held jointly by the individual
- * authors.  These should be listed in @author doc comments.
- *
- * For more information on the BioJava project and its aims,
- * or to join the biojava-l mailing list, visit the home page
- * at:
- *
- *      http://www.biojava.org/
- * 
- * Created on Aug 3, 2005
- *
- */
-package org.biojava.dasobert.das;
-
-
-import org.xml.sax.helpers.DefaultHandler;
-import org.xml.sax.Attributes            ;
-import java.util.*;
-import java.util.logging.Logger;
-import java.awt.Color;
-
-/** a class to parse the XML response of a DAS - stylesheet request.
- * @author Andreas Prlic
- *
- */
-public class DAS_Stylesheet_Handler extends DefaultHandler {
-    
-    List typeGlyphMaps;
-    Map  currentType;
-    String chars ;
-    boolean threeDstyle;
-    List threeDGlyphMaps;
-    static Logger logger      = Logger.getLogger("org.biojava.spice");
-    
-    /**
-     * 
-     */
-    public DAS_Stylesheet_Handler() {
-        super();
-        typeGlyphMaps = new ArrayList();
-        currentType = new HashMap();
-        threeDGlyphMaps = new ArrayList();
-        threeDstyle = false;
-    }
-    
-    
-    public Map[] getTypeStyles(){
-        return (Map[]) typeGlyphMaps.toArray(new Map[typeGlyphMaps.size()]);
-    }
-    
-    public Map[] get3DStyles(){
-        return (Map[]) threeDGlyphMaps.toArray(new Map[threeDGlyphMaps.size()]);
-    }
-    
-    public void startElement (String uri, String name, String qName, Attributes atts){
-        chars = "";
-        
-        if ( qName.equals("CATEGORY")){
-            String id = atts.getValue("id");
-            if ( id.equals("3D")){
-                // here follow the 3D styles...
-                threeDstyle = true;
-            } else {
-                threeDstyle = false;
-                
-            }
-        }
-        
-        if ( qName.equals("TYPE")){
-            // this glyph matches to features of type >id<.
-            String id = atts.getValue("id");
-            currentType = new HashMap(); 
-            currentType.put("type",id);
-        } 
-        
-        else if ( qName.equals("ARROW")){
-            currentType.put("style","arrow");
-        } else if ( qName.equals("ANCHORED_ARROW")){
-            currentType.put("style","anchored_arrow");
-        } else if ( qName.equals("BOX")){
-            currentType.put("style","box");
-        } else if ( qName.equals("CROSS")){
-            currentType.put("style","cross");
-        } else if ( qName.equals("EX")){
-            currentType.put("style","EX");
-        } else if ( qName.equals("HELIX")){
-            currentType.put("style","helix");
-        } else if ( qName.equals("LINE")){
-            currentType.put("style","LINE");
-        }  else if ( qName.equals("SPAN")){
-            currentType.put("style","span");
-        } else if ( qName.equals("TRIANGLE")){
-            currentType.put("style","triangle");
-        }
-        
-    }
-    
-    /**  convert the color provided by the stylesheet to a java Color 
-     * 
-     * @param chars
-     * @return
-     */
-    private Color getColorFromString(String chars){
-        
-        
-        if (chars.equals("rotate")) {
-            // use the default SPICE colors ...
-            return null;
-        }
-        
-        try {
-            Color col = Color.decode(chars);
-            return col;
-        } catch ( Exception e) {
-            logger.finest("could not decode color from stylesheet " + e.getMessage());
-        }
-        
-        
-        // map the string to a build in color...
-        // thanks to the Xpm.java script provided by Phil Brown (under LGPL)
-        // AP downloaded it from http://www.bolthole.com/java/Xpm.java
-        
-        // the DAS spec stylesheet only requires 16 VGA colors to be supported, but here we do more... :-)
-        
-        int[] rgb = Xpm.NameToRGB3(chars);
-        if ( rgb != null) {
-            Color col = new Color(rgb[0],rgb[1],rgb[2]);
-            return col;
-        }
-        return null ;
-    }
-    
-    public void endElement(String uri, String name, String qName) {
-        if ( qName.equals("HEIGHT")){
-            currentType.put("height",chars);
-        } else if ( qName.equals("COLOR")){
-            //System.out.println("got color " + chars);
-            Color col = getColorFromString(chars);
-            if ( col != null ){
-                currentType.put("color",col);
-            } else {
-                if ( chars.equals("cpk")){
-                    currentType.put("cpkcolor","true");
-                }
-            }
-            
-        } else if ( qName.equals("OUTLINECOLOR")){
-            currentType.put("outlinecolor",chars);
-        } else if ( qName.equals("BACKGROUND")){
-            currentType.put("background",chars);
-        } else if ( qName.equals("BUMP")){
-            if ( chars.equals("no"))
-                currentType.put("bump","no");
-            else 
-                currentType.put("bump","yes");
-        
-            // 3D stuff
-        }  else if ( qName.equals("WIREFRAME")){
-            currentType.put("display","wireframe");
-        } else if ( qName.equals("SPACEFILL")){
-            currentType.put("display","spacefill");
-        } else if ( qName.equals("BACKBONE")){
-            currentType.put("display","backbone");
-        } else if ( qName.equals("CARTOON")){
-            currentType.put("display","cartoon");
-        } else if ( qName.equals("RIBBONS")){
-            currentType.put("display","ribbons");
-        } else if ( qName.equals("WIDTH")){
-            currentType.put("width",chars);
-        }
-        
-        else if ( qName.equals("TYPE")){           
-            if ( threeDstyle){
-             threeDGlyphMaps.add(currentType);   
-            } else {
-                typeGlyphMaps.add(currentType);
-            }
-        }
-    }
-    
-    public void characters (char ch[], int start, int length){
-        
-     
-            for (int i = start; i < start + length; i++) {
-               chars += ch[i];
-            }
-        
-        
-    }
-    
-}
-
-
-
-
diff --git a/src/org/biojava/dasobert/das/DAS_Types_Handler.java b/src/org/biojava/dasobert/das/DAS_Types_Handler.java
deleted file mode 100755 (executable)
index 162cf39..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- *                    BioJava development code
- *
- * This code may be freely distributed and modified under the
- * terms of the GNU Lesser General Public Licence.  This should
- * be distributed with the code.  If you do not have a copy,
- * see:
- *
- *      http://www.gnu.org/copyleft/lesser.html
- *
- * Copyright for this code is held jointly by the individual
- * authors.  These should be listed in @author doc comments.
- *
- * For more information on the BioJava project and its aims,
- * or to join the biojava-l mailing list, visit the home page
- * at:
- *
- *      http://www.biojava.org/
- *
- * Created on 19.03.2004
- * @author Andreas Prlic
- *
- */
-package org.biojava.dasobert.das ;
-
-import org.xml.sax.helpers.DefaultHandler;
-import org.xml.sax.Attributes;
-
-import java.util.ArrayList ;
-import java.util.List;
-
-
-/** a class to parse the reponse of a DAS - types request 
- */
-public class DAS_Types_Handler extends DefaultHandler {
-    List types;
-    boolean dastypesPresent;
-    boolean gffPresent;
-    boolean segmentPresent;
-    
-    public DAS_Types_Handler() {
-       super();
-       types = new ArrayList();
-       dastypesPresent = false;
-       gffPresent=false;
-       segmentPresent=false;
-    }
-
-    public void startElement (String uri, String name, String qName, Attributes atts){
-       if ( qName.equals("DASTYPES")) {
-           dastypesPresent = true;
-           
-       } else if ( qName.equals("GFF")) {
-           gffPresent = true;
-           
-       } else if ( qName.equals("SEGMENT")) {
-           segmentPresent = true;      
-        
-           String id = atts.getValue("id");
-           // id is optional here
-           if ( id != null ) {
-               types.add(id);
-           }
-       } else if ( qName.equals("TYPE")){
-           String type = atts.getValue("id");
-           // id is mandatory ...          
-           types.add(type);
-           
-       }
-       
-    }
-
-    public String[] getTypes(){
-       return (String[])types.toArray(new String[types.size()]);
-    }
-}
-
diff --git a/src/org/biojava/dasobert/das/SequenceThread.java b/src/org/biojava/dasobert/das/SequenceThread.java
deleted file mode 100755 (executable)
index 8f54a9f..0000000
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- *                  BioJava development code
- *
- * This code may be freely distributed and modified under the
- * terms of the GNU Lesser General Public Licence.  This should
- * be distributed with the code.  If you do not have a copy,
- * see:
- *
- *      http://www.gnu.org/copyleft/lesser.html
- *
- * Copyright for this code is held jointly by the individual
- * authors.  These should be listed in @author doc comments.
- *
- * For more information on the BioJava project and its aims,
- * or to join the biojava-l mailing list, visit the home page
- * at:
- *
- *      http://www.biojava.org/
- *
- * Created on Nov 20, 2005
- *
- */
-package org.biojava.dasobert.das;
-
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.util.Iterator;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.biojava.dasobert.dasregistry.Das1Source;
-import org.biojava.dasobert.eventmodel.SequenceEvent;
-import org.biojava.dasobert.eventmodel.SequenceListener;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXNotRecognizedException;
-import org.xml.sax.XMLReader;
-import java.util.*;
-
-/** a thread that gets the sequence from a DAS server
- *
- * @author Andreas Prlic
- *
- */
-public class SequenceThread
-extends Thread {
-
-    Das1Source[] sequenceServers;
-    String sp_accession;
-    List seqListeners;
-    static Logger logger = Logger.getLogger("org.biojava.spice");
-
-     public SequenceThread(String sp_accession,Das1Source ds ) {
-        super();
-        Das1Source[] dss =new Das1Source[1];
-       dss[0] = ds;
-        this.sp_accession = sp_accession;
-        this.sequenceServers =dss ;
-        clearSequenceListeners();
-    }
-    public SequenceThread(String sp_accession,Das1Source[] ds ) {
-        super();
-
-        this.sp_accession = sp_accession;
-        this.sequenceServers =ds ;
-        clearSequenceListeners();
-    }
-
-    public void clearSequenceListeners(){
-        seqListeners = new ArrayList();
-    }
-
-    public void addSequenceListener(SequenceListener lis){
-        seqListeners.add(lis);
-    }
-
-    public void run() {
-        getSequence();
-    }
-
-    public void getSequence( ){
-
-        boolean gotSequence = false ;
-
-        for ( int i = 0 ; i< sequenceServers.length; i++){
-
-            if ( gotSequence ) break ;
-
-            Das1Source ds = sequenceServers[i];
-            String url = ds.getUrl() ;
-            char lastChar = url.charAt(url.length()-1);
-            if ( ! (lastChar == '/') )
-                url +="/" ;
-            String dascmd = url + "sequence?segment=";
-            String connstr = dascmd + sp_accession ;
-
-            try {
-
-                String sequence = retrieveSequence(connstr);
-                // bug in aristotle das source?
-                sequence.replaceAll(" ","");
-                gotSequence = true ;
-                // set the sequence ...
-
-                triggerNewSequence(sp_accession,sequence);
-
-
-                return;
-            }
-            catch (Exception ex) {
-                ex.printStackTrace();
-                logger.warning(ex.getMessage());
-
-                //triggerException(ex);
-
-            }
-        }
-
-        logger.log(Level.WARNING,"could not retreive UniProt sequence from any available DAS sequence server");
-
-        triggerNoSequence(sp_accession);
-
-    }
-
-
-
-//    private void triggerException(Exception e){
-//        Iterator iter = seqListeners.iterator();
-//        while (iter.hasNext()){
-//           SequenceListener li = (SequenceListener)iter.next();
-//           li.exceptionOccured(e);
-//        }
-//    }
-
-    private void triggerNewSequence(String sp_accession,String sequence){
-
-        Iterator iter = seqListeners.iterator();
-        while (iter.hasNext()){
-           SequenceListener li = (SequenceListener)iter.next();
-            //SequenceEvent event = new SequenceEvent(sequence);
-           SequenceEvent event = new SequenceEvent(sp_accession,sequence);
-           li.newSequence(event);
-        }
-    }
-
-    private void triggerNoSequence(String ac){
-
-        Iterator iter = seqListeners.iterator();
-        while (iter.hasNext()){
-            SequenceListener li = (SequenceListener)iter.next();
-            li.noObjectFound(ac);
-        }
-
-    }
-
-    /** retrieve the Sequence from a DAS server.
-     *
-     * @param connstr - the DAS - request string. e.g. http://www.ebi.ac.uk/das-srv/uniprot/das/aristotle/sequence?segment=P00280
-     * @return the requested Sequence
-     * @throws Exception
-     */
-    public String retrieveSequence( String connstr)
-    throws Exception
-    {
-
-        //logger.finest("trying: " + connstr) ;
-        URL dasUrl = new URL(connstr);
-        //DAS_httpConnector dhtp = new DAS_httpConnector() ;
-        logger.info("requesting sequence from " + connstr);
-        InputStream dasInStream =open(dasUrl);
-
-
-        SAXParserFactory spfactory =
-            SAXParserFactory.newInstance();
-
-       // never do this
-        //String vali = System.getProperty("XMLVALIDATION");
-        String vali = "false";
-        boolean validate = false ;
-        if ((vali != null) && ( vali.equals("true")) )
-            validate = true ;
-        spfactory.setValidating(validate);
-
-        SAXParser saxParser = null ;
-
-        try{
-            saxParser =
-                spfactory.newSAXParser();
-        } catch (ParserConfigurationException e) {
-            //e.printStackTrace();
-            logger.log(Level.FINER,"Uncaught exception", e);
-        }
-
-        XMLReader xmlreader = saxParser.getXMLReader();
-
-        try {
-            xmlreader.setFeature("http://xml.org/sax/features/validation", validate);
-        } catch (SAXException e) {
-            logger.finer("Cannot set validation to " + validate);
-            logger.log(Level.FINER,"Uncaught exception", e);
-        }
-
-        try {
-            xmlreader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd",validate);
-        } catch (SAXNotRecognizedException e){
-            //e.printStackTrace();
-            logger.finer("Cannot set load-external-dtd to" + validate);
-            logger.log(Level.FINER,"Uncaught exception", e);
-            //System.err.println("Cannot set load-external-dtd to" + validate);
-        }
-
-
-        //DAS_DNA_Handler cont_handle = new DAS_DNA_Handler() ;
-        DAS_Sequence_Handler cont_handle = new DAS_Sequence_Handler() ;
-        xmlreader.setContentHandler(cont_handle);
-        xmlreader.setErrorHandler(new org.xml.sax.helpers.DefaultHandler());
-        InputSource insource = new InputSource() ;
-        insource.setByteStream(dasInStream);
-
-        xmlreader.parse(insource);
-        String sequence = cont_handle.get_sequence();
-        //logger.finest("Got sequence from DAS: " +sequence);
-        logger.exiting(this.getClass().getName(), "retreiveSequence",  sequence);
-        return sequence ;
-    }
-
-    private InputStream open(URL url) {
-        {
-
-            InputStream inStream = null;
-            try{
-
-
-
-
-                HttpURLConnection huc = null;
-
-                huc = DAS_FeatureRetrieve.openHttpURLConnection(url);
-
-
-                logger.finest(huc.getResponseMessage());
-
-                inStream = huc.getInputStream();
-
-
-            }
-            catch ( Exception ex){
-                ex.printStackTrace();
-                logger.log(Level.WARNING,"exception occured", ex);
-            }
-
-            return inStream;
-        }
-
-    }
-
-}
diff --git a/src/org/biojava/dasobert/das/SpiceDasSource.java b/src/org/biojava/dasobert/das/SpiceDasSource.java
deleted file mode 100755 (executable)
index a903af3..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- *                    BioJava development code
- *
- * This code may be freely distributed and modified under the
- * terms of the GNU Lesser General Public Licence.  This should
- * be distributed with the code.  If you do not have a copy,
- * see:
- *
- *      http://www.gnu.org/copyleft/lesser.html
- *
- * Copyright for this code is held jointly by the individual
- * authors.  These should be listed in @author doc comments.
- *
- * For more information on the BioJava project and its aims,
- * or to join the biojava-l mailing list, visit the home page
- * at:
- *
- *      http://www.biojava.org/
- *
- * Created on 17.10.2004
- * @author Andreas Prlic
- *
- */
-
-package org.biojava.dasobert.das ;
-
-//import org.biojava.services.das.registry.*;
-import org.biojava.dasobert.das.DAS_StylesheetRetrieve;
-import org.biojava.dasobert.dasregistry.Das1Source;
-import org.biojava.dasobert.dasregistry.DasCoordinateSystem;
-import org.biojava.dasobert.dasregistry.DasSource;
-import java.io.IOException                ;
-import java.text.DateFormat               ;
-import java.text.SimpleDateFormat         ;
-import java.util.*;
-
-
-import java.net.URL;
-
-/** Manages all data about a DAS source that SPICE requires */
-public class SpiceDasSource
-extends Das1Source
-
-{
-
-
-    boolean status ;
-    boolean registered ; // a flag to trace if source comes from registry or from user vonfig
-    Map[] typeStyles;
-    Map[] threeDstyles;
-    public static String DEFAULT_NICKNAME = "MyDASsource";
-    public static String DEFAULT_CAPABILITY = "features";
-    public SpiceDasSource() {
-        super();
-
-        status    = true ;  // default source is actived and used .
-        registered = true ; // default true = source comes from registry
-        setNickname(DEFAULT_NICKNAME);
-        typeStyles = null;
-        threeDstyles = null;
-        String[] caps = new String[1];
-        caps[0] = DEFAULT_CAPABILITY;
-        setCapabilities(caps);
-    }
-
-    public void loadStylesheet(){
-        DAS_StylesheetRetrieve dsr = new DAS_StylesheetRetrieve();
-        String cmd = getUrl()+"stylesheet";
-        URL url = null;
-        try {
-            url = new URL(cmd);
-        } catch (Exception e){
-            e.printStackTrace();
-            return ;
-        }
-        Map[] styles = dsr.retrieve(url);
-
-        if ( styles != null){
-            typeStyles = styles;
-        } else {
-            typeStyles = new Map[0];
-        }
-
-
-        Map[] t3dStyles = dsr.get3DStyle();
-        if ( t3dStyles != null){
-            threeDstyles = t3dStyles;
-        } else {
-            threeDstyles = new Map[0];
-        }
-    }
-
-    /** returns the Stylesheet that is provided by a DAS source.
-     * It provides info of how to draw a particular feature.
-     * returns null if not attempt has been made to load the stylesheet.
-     * afterwards it returns a Map[0] or the Map[] containing the style data.
-     *
-     * @return
-     */
-    public Map[] getStylesheet(){
-        return typeStyles;
-    }
-
-    /** get the stylesheet containing the instructions how to paint in 3D.
-     *
-     * @return
-     */
-    public Map[] get3DStylesheet(){
-        return threeDstyles;
-    }
-
-    /** a flag if this das source is active
-     * or
-     * @param flag
-     */
-    public void    setStatus(boolean flag) { status = flag ; }
-    public boolean getStatus()             { return status ; }
-
-    public void    setRegistered(boolean flag) { registered = flag ; }
-    public boolean getRegistered()             { return registered ; }
-
-
-    /** convert DasSource to SpiceDasSource */
-    public static SpiceDasSource  fromDasSource(DasSource ds) {
-        SpiceDasSource s = new SpiceDasSource();
-        s.setUrl(ds.getUrl());
-        s.setAdminemail(ds.getAdminemail());
-        s.setDescription(ds.getDescription());
-        s.setCoordinateSystem(ds.getCoordinateSystem());
-        s.setCapabilities(ds.getCapabilities());
-        s.setRegisterDate(ds.getRegisterDate());
-        s.setLeaseDate(ds.getLeaseDate());
-        s.setNickname(ds.getNickname());
-
-
-        // testcode now part of coordinate system...
-        //s.setTestCode(ds.getTestCode());
-        s.setId(ds.getId());
-        s.setLabels(ds.getLabels());
-        s.setHelperurl(ds.getHelperurl());
-        return s;
-    }
-
-
-    public String toString() {
-        String txt = getId()  + " " + getNickname() + " " + getUrl() ;
-        return txt;
-    }
-
-
-}
diff --git a/src/org/biojava/dasobert/das/Xpm.java b/src/org/biojava/dasobert/das/Xpm.java
deleted file mode 100755 (executable)
index 0ebd92d..0000000
+++ /dev/null
@@ -1,1903 +0,0 @@
-//@(#) Xpm.java 1.9@(#)
-//Copyright (c) 2001, Phil Brown, phil@bolthole.com
-//licensed under GNU LGPL version 2
-
-/* A library class to convert Xpm data into an image.
- * It also has nice little utilities like converting
- * color NAMES to rgb values (based on X11 rgb.txt)
- *
- * Note1: There might be a slight conflict of copyright,
- *  If the rgb.txt data from the X11 distribution has nasty copyright
- *  stuff attached to it. If so... my apologies to the X11 folk.
- *
- * This is an improved version, that is not hardcoded so much for
- * "crossfire". It should hopefully handle all xpm types.
- * If it doesnt, please send me email, with a sample xpm image
- * that it fails under, and I'll try to fix it.
- */
-package org.biojava.dasobert.das;
-
-
-import java.awt.Image;
-import java.util.Hashtable;
-import java.awt.Toolkit;
-import java.awt.image.*;
-
-//rgb data originally from
-//! $XConsortium: rgb.txt,v 10.41 94/02/20 18:39:36 rws Exp $
-
-
-
-//Note: This class is huge, and has icky large static initializers.
-//They are also ARRAY-based, which means poor lookup speed.
-//While that is kinda annoying, it shouldn't be TOO bad.
-//And it should greatly improve STARTUP time, which I consider
-//at this point to be more important
-
-public class Xpm
-{
-    static String VersionString="Phil@bolthole.com Xpm v1.1";
-    static final int rgbents[][] = {
-            {255, 250, 250},
-            {248, 248, 255},
-            {248, 248, 255},
-            {245, 245, 245},
-            {245, 245, 245},
-            {220, 220, 220},
-            {255, 250, 240},
-            {255, 250, 240},
-            {253, 245, 230},
-            {253, 245, 230},
-            {250, 240, 230},
-            {250, 235, 215},
-            {250, 235, 215},
-            {255, 239, 213},
-            {255, 239, 213},
-            {255, 235, 205},
-            {255, 235, 205},
-            {255, 228, 196},
-            {255, 218, 185},
-            {255, 218, 185},
-            {255, 222, 173},
-            {255, 222, 173},
-            {255, 228, 181},
-            {255, 248, 220},
-            {255, 255, 240},
-            {255, 250, 205},
-            {255, 250, 205},
-            {255, 245, 238},
-            {240, 255, 240},
-            {245, 255, 250},
-            {245, 255, 250},
-            {240, 255, 255},
-            {240, 248, 255},
-            {240, 248, 255},
-            {230, 230, 250},
-            {255, 240, 245},
-            {255, 240, 245},
-            {255, 228, 225},
-            {255, 228, 225},
-            {255, 255, 255},
-            {  0,   0,   0},
-            { 47,  79,  79},
-            { 47,  79,  79},
-            { 47,  79,  79},
-            { 47,  79,  79},
-            {105, 105, 105},
-            {105, 105, 105},
-            {105, 105, 105},
-            {105, 105, 105},
-            {112, 128, 144},
-            {112, 128, 144},
-            {112, 128, 144},
-            {112, 128, 144},
-            {119, 136, 153},
-            {119, 136, 153},
-            {119, 136, 153},
-            {119, 136, 153},
-            {190, 190, 190},
-            {190, 190, 190},
-            {211, 211, 211},
-            {211, 211, 211},
-            {211, 211, 211},
-            {211, 211, 211},
-            { 25,  25, 112},
-            { 25,  25, 112},
-            {  0,   0, 128},
-            {  0,   0, 128},
-            {  0,   0, 128},
-            {100, 149, 237},
-            {100, 149, 237},
-            { 72,  61, 139},
-            { 72,  61, 139},
-            {106,  90, 205},
-            {106,  90, 205},
-            {123, 104, 238},
-            {123, 104, 238},
-            {132, 112, 255},
-            {132, 112, 255},
-            {  0,   0, 205},
-            {  0,   0, 205},
-            { 65, 105, 225},
-            { 65, 105, 225},
-            {  0,   0, 255},
-            { 30, 144, 255},
-            { 30, 144, 255},
-            {  0, 191, 255},
-            {  0, 191, 255},
-            {135, 206, 235},
-            {135, 206, 235},
-            {135, 206, 250},
-            {135, 206, 250},
-            { 70, 130, 180},
-            { 70, 130, 180},
-            {176, 196, 222},
-            {176, 196, 222},
-            {173, 216, 230},
-            {173, 216, 230},
-            {176, 224, 230},
-            {176, 224, 230},
-            {175, 238, 238},
-            {175, 238, 238},
-            {  0, 206, 209},
-            {  0, 206, 209},
-            { 72, 209, 204},
-            { 72, 209, 204},
-            { 64, 224, 208},
-            {  0, 255, 255},
-            {224, 255, 255},
-            {224, 255, 255},
-            { 95, 158, 160},
-            { 95, 158, 160},
-            {102, 205, 170},
-            {102, 205, 170},
-            {127, 255, 212},
-            {  0, 100,   0},
-            {  0, 100,   0},
-            { 85, 107,  47},
-            { 85, 107,  47},
-            {143, 188, 143},
-            {143, 188, 143},
-            { 46, 139,  87},
-            { 46, 139,  87},
-            { 60, 179, 113},
-            { 60, 179, 113},
-            { 32, 178, 170},
-            { 32, 178, 170},
-            {152, 251, 152},
-            {152, 251, 152},
-            {  0, 255, 127},
-            {  0, 255, 127},
-            {124, 252,   0},
-            {124, 252,   0},
-            {  0, 255,   0},
-            {127, 255,   0},
-            {  0, 250, 154},
-            {  0, 250, 154},
-            {173, 255,  47},
-            {173, 255,  47},
-            { 50, 205,  50},
-            { 50, 205,  50},
-            {154, 205,  50},
-            {154, 205,  50},
-            { 34, 139,  34},
-            { 34, 139,  34},
-            {107, 142,  35},
-            {107, 142,  35},
-            {189, 183, 107},
-            {189, 183, 107},
-            {240, 230, 140},
-            {238, 232, 170},
-            {238, 232, 170},
-            {250, 250, 210},
-            {250, 250, 210},
-            {255, 255, 224},
-            {255, 255, 224},
-            {255, 255,   0},
-            {255, 215,   0},
-            {238, 221, 130},
-            {238, 221, 130},
-            {218, 165,  32},
-            {184, 134,  11},
-            {184, 134,  11},
-            {188, 143, 143},
-            {188, 143, 143},
-            {205,  92,  92},
-            {205,  92,  92},
-            {139,  69,  19},
-            {139,  69,  19},
-            {160,  82,  45},
-            {205, 133,  63},
-            {222, 184, 135},
-            {245, 245, 220},
-            {245, 222, 179},
-            {244, 164,  96},
-            {244, 164,  96},
-            {210, 180, 140},
-            {210, 105,  30},
-            {178,  34,  34},
-            {165,  42,  42},
-            {233, 150, 122},
-            {233, 150, 122},
-            {250, 128, 114},
-            {255, 160, 122},
-            {255, 160, 122},
-            {255, 165,   0},
-            {255, 140,   0},
-            {255, 140,   0},
-            {255, 127,  80},
-            {240, 128, 128},
-            {240, 128, 128},
-            {255,  99,  71},
-            {255,  69,   0},
-            {255,  69,   0},
-            {255,   0,   0},
-            {255, 105, 180},
-            {255, 105, 180},
-            {255,  20, 147},
-            {255,  20, 147},
-            {255, 192, 203},
-            {255, 182, 193},
-            {255, 182, 193},
-            {219, 112, 147},
-            {219, 112, 147},
-            {176,  48,  96},
-            {199,  21, 133},
-            {199,  21, 133},
-            {208,  32, 144},
-            {208,  32, 144},
-            {255,   0, 255},
-            {238, 130, 238},
-            {221, 160, 221},
-            {218, 112, 214},
-            {186,  85, 211},
-            {186,  85, 211},
-            {153,  50, 204},
-            {153,  50, 204},
-            {148,   0, 211},
-            {148,   0, 211},
-            {138,  43, 226},
-            {138,  43, 226},
-            {160,  32, 240},
-            {147, 112, 219},
-            {147, 112, 219},
-            {216, 191, 216},
-            {255, 250, 250},
-            {238, 233, 233},
-            {205, 201, 201},
-            {139, 137, 137},
-            {255, 245, 238},
-            {238, 229, 222},
-            {205, 197, 191},
-            {139, 134, 130},
-            {255, 239, 219},
-            {238, 223, 204},
-            {205, 192, 176},
-            {139, 131, 120},
-            {255, 228, 196},
-            {238, 213, 183},
-            {205, 183, 158},
-            {139, 125, 107},
-            {255, 218, 185},
-            {238, 203, 173},
-            {205, 175, 149},
-            {139, 119, 101},
-            {255, 222, 173},
-            {238, 207, 161},
-            {205, 179, 139},
-            {139, 121, 94},
-            {255, 250, 205},
-            {238, 233, 191},
-            {205, 201, 165},
-            {139, 137, 112},
-            {255, 248, 220},
-            {238, 232, 205},
-            {205, 200, 177},
-            {139, 136, 120},
-            {255, 255, 240},
-            {238, 238, 224},
-            {205, 205, 193},
-            {139, 139, 131},
-            {240, 255, 240},
-            {224, 238, 224},
-            {193, 205, 193},
-            {131, 139, 131},
-            {255, 240, 245},
-            {238, 224, 229},
-            {205, 193, 197},
-            {139, 131, 134},
-            {255, 228, 225},
-            {238, 213, 210},
-            {205, 183, 181},
-            {139, 125, 123},
-            {240, 255, 255},
-            {224, 238, 238},
-            {193, 205, 205},
-            {131, 139, 139},
-            {131, 111, 255},
-            {122, 103, 238},
-            {105,  89, 205},
-            { 71,  60, 139},
-            { 72, 118, 255},
-            { 67, 110, 238},
-            { 58,  95, 205},
-            { 39,  64, 139},
-            {  0,   0, 255},
-            {  0,   0, 238},
-            {  0,   0, 205},
-            {  0,   0, 139},
-            { 30, 144, 255},
-            { 28, 134, 238},
-            { 24, 116, 205},
-            { 16,  78, 139},
-            { 99, 184, 255},
-            { 92, 172, 238},
-            { 79, 148, 205},
-            { 54, 100, 139},
-            {  0, 191, 255},
-            {  0, 178, 238},
-            {  0, 154, 205},
-            {  0, 104, 139},
-            {135, 206, 255},
-            {126, 192, 238},
-            {108, 166, 205},
-            { 74, 112, 139},
-            {176, 226, 255},
-            {164, 211, 238},
-            {141, 182, 205},
-            { 96, 123, 139},
-            {198, 226, 255},
-            {185, 211, 238},
-            {159, 182, 205},
-            {108, 123, 139},
-            {202, 225, 255},
-            {188, 210, 238},
-            {162, 181, 205},
-            {110, 123, 139},
-            {191, 239, 255},
-            {178, 223, 238},
-            {154, 192, 205},
-            {104, 131, 139},
-            {224, 255, 255},
-            {209, 238, 238},
-            {180, 205, 205},
-            {122, 139, 139},
-            {187, 255, 255},
-            {174, 238, 238},
-            {150, 205, 205},
-            {102, 139, 139},
-            {152, 245, 255},
-            {142, 229, 238},
-            {122, 197, 205},
-            { 83, 134, 139},
-            {  0, 245, 255},
-            {  0, 229, 238},
-            {  0, 197, 205},
-            {  0, 134, 139},
-            {  0, 255, 255},
-            {  0, 238, 238},
-            {  0, 205, 205},
-            {  0, 139, 139},
-            {151, 255, 255},
-            {141, 238, 238},
-            {121, 205, 205},
-            { 82, 139, 139},
-            {127, 255, 212},
-            {118, 238, 198},
-            {102, 205, 170},
-            { 69, 139, 116},
-            {193, 255, 193},
-            {180, 238, 180},
-            {155, 205, 155},
-            {105, 139, 105},
-            { 84, 255, 159},
-            { 78, 238, 148},
-            { 67, 205, 128},
-            { 46, 139, 87},
-            {154, 255, 154},
-            {144, 238, 144},
-            {124, 205, 124},
-            { 84, 139, 84},
-            {  0, 255, 127},
-            {  0, 238, 118},
-            {  0, 205, 102},
-            {  0, 139, 69},
-            {  0, 255,  0},
-            {  0, 238,  0},
-            {  0, 205,  0},
-            {  0, 139,  0},
-            {127, 255,  0},
-            {118, 238,  0},
-            {102, 205,  0},
-            { 69, 139,  0},
-            {192, 255, 62},
-            {179, 238, 58},
-            {154, 205, 50},
-            {105, 139, 34},
-            {202, 255, 112},
-            {188, 238, 104},
-            {162, 205, 90},
-            {110, 139, 61},
-            {255, 246, 143},
-            {238, 230, 133},
-            {205, 198, 115},
-            {139, 134, 78},
-            {255, 236, 139},
-            {238, 220, 130},
-            {205, 190, 112},
-            {139, 129, 76},
-            {255, 255, 224},
-            {238, 238, 209},
-            {205, 205, 180},
-            {139, 139, 122},
-            {255, 255,  0},
-            {238, 238,  0},
-            {205, 205,  0},
-            {139, 139,  0},
-            {255, 215,  0},
-            {238, 201,  0},
-            {205, 173,  0},
-            {139, 117,  0},
-            {255, 193, 37},
-            {238, 180, 34},
-            {205, 155, 29},
-            {139, 105, 20},
-            {255, 185, 15},
-            {238, 173, 14},
-            {205, 149, 12},
-            {139, 101,  8},
-            {255, 193, 193},
-            {238, 180, 180},
-            {205, 155, 155},
-            {139, 105, 105},
-            {255, 106, 106},
-            {238,  99, 99},
-            {205,  85, 85},
-            {139,  58, 58},
-            {255, 130, 71},
-            {238, 121, 66},
-            {205, 104, 57},
-            {139,  71, 38},
-            {255, 211, 155},
-            {238, 197, 145},
-            {205, 170, 125},
-            {139, 115, 85},
-            {255, 231, 186},
-            {238, 216, 174},
-            {205, 186, 150},
-            {139, 126, 102},
-            {255, 165, 79},
-            {238, 154, 73},
-            {205, 133, 63},
-            {139,  90, 43},
-            {255, 127, 36},
-            {238, 118, 33},
-            {205, 102, 29},
-            {139,  69, 19},
-            {255,  48, 48},
-            {238,  44, 44},
-            {205,  38, 38},
-            {139,  26, 26},
-            {255,  64, 64},
-            {238,  59, 59},
-            {205,  51, 51},
-            {139,  35, 35},
-            {255, 140, 105},
-            {238, 130,  98},
-            {205, 112,  84},
-            {139,  76,  57},
-            {255, 160, 122},
-            {238, 149, 114},
-            {205, 129,  98},
-            {139,  87,  66},
-            {255, 165,   0},
-            {238, 154,   0},
-            {205, 133,   0},
-            {139,  90,   0},
-            {255, 127,   0},
-            {238, 118,   0},
-            {205, 102,   0},
-            {139,  69,   0},
-            {255, 114,  86},
-            {238, 106,  80},
-            {205,  91,  69},
-            {139,  62,  47},
-            {255,  99,  71},
-            {238,  92,  66},
-            {205,  79,  57},
-            {139,  54,  38},
-            {255,  69,   0},
-            {238,  64,   0},
-            {205,  55,   0},
-            {139,  37,   0},
-            {255,   0,   0},
-            {238,   0,   0},
-            {205,   0,   0},
-            {139,   0,   0},
-            {255,  20, 147},
-            {238,  18, 137},
-            {205,  16, 118},
-            {139,  10,  80},
-            {255, 110, 180},
-            {238, 106, 167},
-            {205,  96, 144},
-            {139,  58,  98},
-            {255, 181, 197},
-            {238, 169, 184},
-            {205, 145, 158},
-            {139,  99, 108},
-            {255, 174, 185},
-            {238, 162, 173},
-            {205, 140, 149},
-            {139,  95, 101},
-            {255, 130, 171},
-            {238, 121, 159},
-            {205, 104, 137},
-            {139,  71,  93},
-            {255,  52, 179},
-            {238,  48, 167},
-            {205,  41, 144},
-            {139,  28,  98},
-            {255,  62, 150},
-            {238,  58, 140},
-            {205,  50, 120},
-            {139,  34,  82},
-            {255,   0, 255},
-            {238,   0, 238},
-            {205,   0, 205},
-            {139,   0, 139},
-            {255, 131, 250},
-            {238, 122, 233},
-            {205, 105, 201},
-            {139,  71, 137},
-            {255, 187, 255},
-            {238, 174, 238},
-            {205, 150, 205},
-            {139, 102, 139},
-            {224, 102, 255},
-            {209,  95, 238},
-            {180,  82, 205},
-            {122,  55, 139},
-            {191,  62, 255},
-            {178,  58, 238},
-            {154,  50, 205},
-            {104,  34, 139},
-            {155,  48, 255},
-            {145,  44, 238},
-            {125,  38, 205},
-            { 85,  26, 139},
-            {171, 130, 255},
-            {159, 121, 238},
-            {137, 104, 205},
-            { 93,  71, 139},
-            {255, 225, 255},
-            {238, 210, 238},
-            {205, 181, 205},
-            {139, 123, 139},
-            {  0,   0,   0},
-            {  0,   0,   0},
-            {  3,   3,   3},
-            {  3,   3,   3},
-            {  5,   5,   5},
-            {  5,   5,   5},
-            {  8,   8,   8},
-            {  8,   8,   8},
-            { 10,  10,  10},
-            { 10,  10,  10},
-            { 13,  13,  13},
-            { 13,  13,  13},
-            { 15,  15,  15},
-            { 15,  15,  15},
-            { 18,  18,  18},
-            { 18,  18,  18},
-            { 20,  20,  20},
-            { 20,  20,  20},
-            { 23,  23,  23},
-            { 23,  23,  23},
-            { 26,  26,  26},
-            { 26,  26,  26},
-            { 28,  28,  28},
-            { 28,  28,  28},
-            { 31,  31,  31},
-            { 31,  31,  31},
-            { 33,  33,  33},
-            { 33,  33,  33},
-            { 36,  36,  36},
-            { 36,  36,  36},
-            { 38,  38,  38},
-            { 38,  38,  38},
-            { 41,  41,  41},
-            { 41,  41,  41},
-            { 43,  43,  43},
-            { 43,  43,  43},
-            { 46,  46,  46},
-            { 46,  46,  46},
-            { 48,  48,  48},
-            { 48,  48,  48},
-            { 51,  51,  51},
-            { 51,  51,  51},
-            { 54,  54,  54},
-            { 54,  54,  54},
-            { 56,  56,  56},
-            { 56,  56,  56},
-            { 59,  59,  59},
-            { 59,  59,  59},
-            { 61,  61,  61},
-            { 61,  61,  61},
-            { 64,  64,  64},
-            { 64,  64,  64},
-            { 66,  66,  66},
-            { 66,  66,  66},
-            { 69,  69,  69},
-            { 69,  69,  69},
-            { 71,  71,  71},
-            { 71,  71,  71},
-            { 74,  74,  74},
-            { 74,  74,  74},
-            { 77,  77,  77},
-            { 77,  77,  77},
-            { 79,  79,  79},
-            { 79,  79,  79},
-            { 82,  82,  82},
-            { 82,  82,  82},
-            { 84,  84,  84},
-            { 84,  84,  84},
-            { 87,  87,  87},
-            { 87,  87,  87},
-            { 89,  89,  89},
-            { 89,  89,  89},
-            { 92,  92,  92},
-            { 92,  92,  92},
-            { 94,  94,  94},
-            { 94,  94,  94},
-            { 97,  97,  97},
-            { 97,  97,  97},
-            { 99,  99,  99},
-            { 99,  99,  99},
-            {102, 102, 102},
-            {102, 102, 102},
-            {105, 105, 105},
-            {105, 105, 105},
-            {107, 107, 107},
-            {107, 107, 107},
-            {110, 110, 110},
-            {110, 110, 110},
-            {112, 112, 112},
-            {112, 112, 112},
-            {115, 115, 115},
-            {115, 115, 115},
-            {117, 117, 117},
-            {117, 117, 117},
-            {120, 120, 120},
-            {120, 120, 120},
-            {122, 122, 122},
-            {122, 122, 122},
-            {125, 125, 125},
-            {125, 125, 125},
-            {127, 127, 127},
-            {127, 127, 127},
-            {130, 130, 130},
-            {130, 130, 130},
-            {133, 133, 133},
-            {133, 133, 133},
-            {135, 135, 135},
-            {135, 135, 135},
-            {138, 138, 138},
-            {138, 138, 138},
-            {140, 140, 140},
-            {140, 140, 140},
-            {143, 143, 143},
-            {143, 143, 143},
-            {145, 145, 145},
-            {145, 145, 145},
-            {148, 148, 148},
-            {148, 148, 148},
-            {150, 150, 150},
-            {150, 150, 150},
-            {153, 153, 153},
-            {153, 153, 153},
-            {156, 156, 156},
-            {156, 156, 156},
-            {158, 158, 158},
-            {158, 158, 158},
-            {161, 161, 161},
-            {161, 161, 161},
-            {163, 163, 163},
-            {163, 163, 163},
-            {166, 166, 166},
-            {166, 166, 166},
-            {168, 168, 168},
-            {168, 168, 168},
-            {171, 171, 171},
-            {171, 171, 171},
-            {173, 173, 173},
-            {173, 173, 173},
-            {176, 176, 176},
-            {176, 176, 176},
-            {179, 179, 179},
-            {179, 179, 179},
-            {181, 181, 181},
-            {181, 181, 181},
-            {184, 184, 184},
-            {184, 184, 184},
-            {186, 186, 186},
-            {186, 186, 186},
-            {189, 189, 189},
-            {189, 189, 189},
-            {191, 191, 191},
-            {191, 191, 191},
-            {194, 194, 194},
-            {194, 194, 194},
-            {196, 196, 196},
-            {196, 196, 196},
-            {199, 199, 199},
-            {199, 199, 199},
-            {201, 201, 201},
-            {201, 201, 201},
-            {204, 204, 204},
-            {204, 204, 204},
-            {207, 207, 207},
-            {207, 207, 207},
-            {209, 209, 209},
-            {209, 209, 209},
-            {212, 212, 212},
-            {212, 212, 212},
-            {214, 214, 214},
-            {214, 214, 214},
-            {217, 217, 217},
-            {217, 217, 217},
-            {219, 219, 219},
-            {219, 219, 219},
-            {222, 222, 222},
-            {222, 222, 222},
-            {224, 224, 224},
-            {224, 224, 224},
-            {227, 227, 227},
-            {227, 227, 227},
-            {229, 229, 229},
-            {229, 229, 229},
-            {232, 232, 232},
-            {232, 232, 232},
-            {235, 235, 235},
-            {235, 235, 235},
-            {237, 237, 237},
-            {237, 237, 237},
-            {240, 240, 240},
-            {240, 240, 240},
-            {242, 242, 242},
-            {242, 242, 242},
-            {245, 245, 245},
-            {245, 245, 245},
-            {247, 247, 247},
-            {247, 247, 247},
-            {250, 250, 250},
-            {250, 250, 250},
-            {252, 252, 252},
-            {252, 252, 252},
-            {255, 255, 255},
-            {255, 255, 255},
-            {169, 169, 169},
-            {169, 169, 169},
-            {169, 169, 169},
-            {169, 169, 169},
-            {0,     0, 139},
-            {0,     0, 139},
-            {0,   139, 139},
-            {0,   139, 139},
-            {139,   0, 139},
-            {139,   0, 139},
-            {139,   0,   0},
-            {139,   0,   0},
-            {144, 238, 144},
-            {144, 238, 144}
-    };
-    
-    static String rgbnames[] = {
-            "snow",
-            "ghost white",
-            "GhostWhite",
-            "white smoke",
-            "WhiteSmoke",
-            "gainsboro",
-            "floral white",
-            "FloralWhite",
-            "old lace",
-            "OldLace",
-            "linen",
-            "antique white",
-            "AntiqueWhite",
-            "papaya whip",
-            "PapayaWhip",
-            "blanched almond",
-            "BlanchedAlmond",
-            "bisque",
-            "peach puff",
-            "PeachPuff",
-            "navajo white",
-            "NavajoWhite",
-            "moccasin",
-            "cornsilk",
-            "ivory",
-            "lemon chiffon",
-            "LemonChiffon",
-            "seashell",
-            "honeydew",
-            "mint cream",
-            "MintCream",
-            "azure",
-            "alice blue",
-            "AliceBlue",
-            "lavender",
-            "lavender blush",
-            "LavenderBlush",
-            "misty rose",
-            "MistyRose",
-            "white",
-            "black",
-            "dark slate gray",
-            "DarkSlateGray",
-            "dark slate grey",
-            "DarkSlateGrey",
-            "dim gray",
-            "DimGray",
-            "dim grey",
-            "DimGrey",
-            "slate gray",
-            "SlateGray",
-            "slate grey",
-            "SlateGrey",
-            "light slate gray",
-            "LightSlateGray",
-            "light slate grey",
-            "LightSlateGrey",
-            "gray",
-            "grey",
-            "light grey",
-            "LightGrey",
-            "light gray",
-            "LightGray",
-            "midnight blue",
-            "MidnightBlue",
-            "navy",
-            "navy blue",
-            "NavyBlue",
-            "cornflower blue",
-            "CornflowerBlue",
-            "dark slate blue",
-            "DarkSlateBlue",
-            "slate blue",
-            "SlateBlue",
-            "medium slate blue",
-            "MediumSlateBlue",
-            "light slate blue",
-            "LightSlateBlue",
-            "medium blue",
-            "MediumBlue",
-            "royal blue",
-            "RoyalBlue",
-            "blue",
-            "dodger blue",
-            "DodgerBlue",
-            "deep sky blue",
-            "DeepSkyBlue",
-            "sky blue",
-            "SkyBlue",
-            "light sky blue",
-            "LightSkyBlue",
-            "steel blue",
-            "SteelBlue",
-            "light steel blue",
-            "LightSteelBlue",
-            "light blue",
-            "LightBlue",
-            "powder blue",
-            "PowderBlue",
-            "pale turquoise",
-            "PaleTurquoise",
-            "dark turquoise",
-            "DarkTurquoise",
-            "medium turquoise",
-            "MediumTurquoise",
-            "turquoise",
-            "cyan",
-            "light cyan",
-            "LightCyan",
-            "cadet blue",
-            "CadetBlue",
-            "medium aquamarine",
-            "MediumAquamarine",
-            "aquamarine",
-            "dark green",
-            "DarkGreen",
-            "dark olive green",
-            "DarkOliveGreen",
-            "dark sea green",
-            "DarkSeaGreen",
-            "sea green",
-            "SeaGreen",
-            "medium sea green",
-            "MediumSeaGreen",
-            "light sea green",
-            "LightSeaGreen",
-            "pale green",
-            "PaleGreen",
-            "spring green",
-            "SpringGreen",
-            "lawn green",
-            "LawnGreen",
-            "green",
-            "chartreuse",
-            "medium spring green",
-            "MediumSpringGreen",
-            "green yellow",
-            "GreenYellow",
-            "lime green",
-            "LimeGreen",
-            "yellow green",
-            "YellowGreen",
-            "forest green",
-            "ForestGreen",
-            "olive drab",
-            "OliveDrab",
-            "dark khaki",
-            "DarkKhaki",
-            "khaki",
-            "pale goldenrod",
-            "PaleGoldenrod",
-            "light goldenrod yellow",
-            "LightGoldenrodYellow",
-            "light yellow",
-            "LightYellow",
-            "yellow",
-            "gold",
-            "light goldenrod",
-            "LightGoldenrod",
-            "goldenrod",
-            "dark goldenrod",
-            "DarkGoldenrod",
-            "rosy brown",
-            "RosyBrown",
-            "indian red",
-            "IndianRed",
-            "saddle brown",
-            "SaddleBrown",
-            "sienna",
-            "peru",
-            "burlywood",
-            "beige",
-            "wheat",
-            "sandy brown",
-            "SandyBrown",
-            "tan",
-            "chocolate",
-            "firebrick",
-            "brown",
-            "dark salmon",
-            "DarkSalmon",
-            "salmon",
-            "light salmon",
-            "LightSalmon",
-            "orange",
-            "dark orange",
-            "DarkOrange",
-            "coral",
-            "light coral",
-            "LightCoral",
-            "tomato",
-            "orange red",
-            "OrangeRed",
-            "red",
-            "hot pink",
-            "HotPink",
-            "deep pink",
-            "DeepPink",
-            "pink",
-            "light pink",
-            "LightPink",
-            "pale violet red",
-            "PaleVioletRed",
-            "maroon",
-            "medium violet red",
-            "MediumVioletRed",
-            "violet red",
-            "VioletRed",
-            "magenta",
-            "violet",
-            "plum",
-            "orchid",
-            "medium orchid",
-            "MediumOrchid",
-            "dark orchid",
-            "DarkOrchid",
-            "dark violet",
-            "DarkViolet",
-            "blue violet",
-            "BlueViolet",
-            "purple",
-            "medium purple",
-            "MediumPurple",
-            "thistle",
-            "snow1",
-            "snow2",
-            "snow3",
-            "snow4",
-            "seashell1",
-            "seashell2",
-            "seashell3",
-            "seashell4",
-            "AntiqueWhite1",
-            "AntiqueWhite2",
-            "AntiqueWhite3",
-            "AntiqueWhite4",
-            "bisque1",
-            "bisque2",
-            "bisque3",
-            "bisque4",
-            "PeachPuff1",
-            "PeachPuff2",
-            "PeachPuff3",
-            "PeachPuff4",
-            "NavajoWhite1",
-            "NavajoWhite2",
-            "NavajoWhite3",
-            "NavajoWhite4",
-            "LemonChiffon1",
-            "LemonChiffon2",
-            "LemonChiffon3",
-            "LemonChiffon4",
-            "cornsilk1",
-            "cornsilk2",
-            "cornsilk3",
-            "cornsilk4",
-            "ivory1",
-            "ivory2",
-            "ivory3",
-            "ivory4",
-            "honeydew1",
-            "honeydew2",
-            "honeydew3",
-            "honeydew4",
-            "LavenderBlush1",
-            "LavenderBlush2",
-            "LavenderBlush3",
-            "LavenderBlush4",
-            "MistyRose1",
-            "MistyRose2",
-            "MistyRose3",
-            "MistyRose4",
-            "azure1",
-            "azure2",
-            "azure3",
-            "azure4",
-            "SlateBlue1",
-            "SlateBlue2",
-            "SlateBlue3",
-            "SlateBlue4",
-            "RoyalBlue1",
-            "RoyalBlue2",
-            "RoyalBlue3",
-            "RoyalBlue4",
-            "blue1",
-            "blue2",
-            "blue3",
-            "blue4",
-            "DodgerBlue1",
-            "DodgerBlue2",
-            "DodgerBlue3",
-            "DodgerBlue4",
-            "SteelBlue1",
-            "SteelBlue2",
-            "SteelBlue3",
-            "SteelBlue4",
-            "DeepSkyBlue1",
-            "DeepSkyBlue2",
-            "DeepSkyBlue3",
-            "DeepSkyBlue4",
-            "SkyBlue1",
-            "SkyBlue2",
-            "SkyBlue3",
-            "SkyBlue4",
-            "LightSkyBlue1",
-            "LightSkyBlue2",
-            "LightSkyBlue3",
-            "LightSkyBlue4",
-            "SlateGray1",
-            "SlateGray2",
-            "SlateGray3",
-            "SlateGray4",
-            "LightSteelBlue1",
-            "LightSteelBlue2",
-            "LightSteelBlue3",
-            "LightSteelBlue4",
-            "LightBlue1",
-            "LightBlue2",
-            "LightBlue3",
-            "LightBlue4",
-            "LightCyan1",
-            "LightCyan2",
-            "LightCyan3",
-            "LightCyan4",
-            "PaleTurquoise1",
-            "PaleTurquoise2",
-            "PaleTurquoise3",
-            "PaleTurquoise4",
-            "CadetBlue1",
-            "CadetBlue2",
-            "CadetBlue3",
-            "CadetBlue4",
-            "turquoise1",
-            "turquoise2",
-            "turquoise3",
-            "turquoise4",
-            "cyan1",
-            "cyan2",
-            "cyan3",
-            "cyan4",
-            "DarkSlateGray1",
-            "DarkSlateGray2",
-            "DarkSlateGray3",
-            "DarkSlateGray4",
-            "aquamarine1",
-            "aquamarine2",
-            "aquamarine3",
-            "aquamarine4",
-            "DarkSeaGreen1",
-            "DarkSeaGreen2",
-            "DarkSeaGreen3",
-            "DarkSeaGreen4",
-            "SeaGreen1",
-            "SeaGreen2",
-            "SeaGreen3",
-            "SeaGreen4",
-            "PaleGreen1",
-            "PaleGreen2",
-            "PaleGreen3",
-            "PaleGreen4",
-            "SpringGreen1",
-            "SpringGreen2",
-            "SpringGreen3",
-            "SpringGreen4",
-            "green1",
-            "green2",
-            "green3",
-            "green4",
-            "chartreuse1",
-            "chartreuse2",
-            "chartreuse3",
-            "chartreuse4",
-            "OliveDrab1",
-            "OliveDrab2",
-            "OliveDrab3",
-            "OliveDrab4",
-            "DarkOliveGreen1",
-            "DarkOliveGreen2",
-            "DarkOliveGreen3",
-            "DarkOliveGreen4",
-            "khaki1",
-            "khaki2",
-            "khaki3",
-            "khaki4",
-            "LightGoldenrod1",
-            "LightGoldenrod2",
-            "LightGoldenrod3",
-            "LightGoldenrod4",
-            "LightYellow1",
-            "LightYellow2",
-            "LightYellow3",
-            "LightYellow4",
-            "yellow1",
-            "yellow2",
-            "yellow3",
-            "yellow4",
-            "gold1",
-            "gold2",
-            "gold3",
-            "gold4",
-            "goldenrod1",
-            "goldenrod2",
-            "goldenrod3",
-            "goldenrod4",
-            "DarkGoldenrod1",
-            "DarkGoldenrod2",
-            "DarkGoldenrod3",
-            "DarkGoldenrod4",
-            "RosyBrown1",
-            "RosyBrown2",
-            "RosyBrown3",
-            "RosyBrown4",
-            "IndianRed1",
-            "IndianRed2",
-            "IndianRed3",
-            "IndianRed4",
-            "sienna1",
-            "sienna2",
-            "sienna3",
-            "sienna4",
-            "burlywood1",
-            "burlywood2",
-            "burlywood3",
-            "burlywood4",
-            "wheat1",
-            "wheat2",
-            "wheat3",
-            "wheat4",
-            "tan1",
-            "tan2",
-            "tan3",
-            "tan4",
-            "chocolate1",
-            "chocolate2",
-            "chocolate3",
-            "chocolate4",
-            "firebrick1",
-            "firebrick2",
-            "firebrick3",
-            "firebrick4",
-            "brown1",
-            "brown2",
-            "brown3",
-            "brown4",
-            "salmon1",
-            "salmon2",
-            "salmon3",
-            "salmon4",
-            "LightSalmon1",
-            "LightSalmon2",
-            "LightSalmon3",
-            "LightSalmon4",
-            "orange1",
-            "orange2",
-            "orange3",
-            "orange4",
-            "DarkOrange1",
-            "DarkOrange2",
-            "DarkOrange3",
-            "DarkOrange4",
-            "coral1",
-            "coral2",
-            "coral3",
-            "coral4",
-            "tomato1",
-            "tomato2",
-            "tomato3",
-            "tomato4",
-            "OrangeRed1",
-            "OrangeRed2",
-            "OrangeRed3",
-            "OrangeRed4",
-            "red1",
-            "red2",
-            "red3",
-            "red4",
-            "DeepPink1",
-            "DeepPink2",
-            "DeepPink3",
-            "DeepPink4",
-            "HotPink1",
-            "HotPink2",
-            "HotPink3",
-            "HotPink4",
-            "pink1",
-            "pink2",
-            "pink3",
-            "pink4",
-            "LightPink1",
-            "LightPink2",
-            "LightPink3",
-            "LightPink4",
-            "PaleVioletRed1",
-            "PaleVioletRed2",
-            "PaleVioletRed3",
-            "PaleVioletRed4",
-            "maroon1",
-            "maroon2",
-            "maroon3",
-            "maroon4",
-            "VioletRed1",
-            "VioletRed2",
-            "VioletRed3",
-            "VioletRed4",
-            "magenta1",
-            "magenta2",
-            "magenta3",
-            "magenta4",
-            "orchid1",
-            "orchid2",
-            "orchid3",
-            "orchid4",
-            "plum1",
-            "plum2",
-            "plum3",
-            "plum4",
-            "MediumOrchid1",
-            "MediumOrchid2",
-            "MediumOrchid3",
-            "MediumOrchid4",
-            "DarkOrchid1",
-            "DarkOrchid2",
-            "DarkOrchid3",
-            "DarkOrchid4",
-            "purple1",
-            "purple2",
-            "purple3",
-            "purple4",
-            "MediumPurple1",
-            "MediumPurple2",
-            "MediumPurple3",
-            "MediumPurple4",
-            "thistle1",
-            "thistle2",
-            "thistle3",
-            "thistle4",
-            "gray0",
-            "grey0",
-            "gray1",
-            "grey1",
-            "gray2",
-            "grey2",
-            "gray3",
-            "grey3",
-            "gray4",
-            "grey4",
-            "gray5",
-            "grey5",
-            "gray6",
-            "grey6",
-            "gray7",
-            "grey7",
-            "gray8",
-            "grey8",
-            "gray9",
-            "grey9",
-            "gray10",
-            "grey10",
-            "gray11",
-            "grey11",
-            "gray12",
-            "grey12",
-            "gray13",
-            "grey13",
-            "gray14",
-            "grey14",
-            "gray15",
-            "grey15",
-            "gray16",
-            "grey16",
-            "gray17",
-            "grey17",
-            "gray18",
-            "grey18",
-            "gray19",
-            "grey19",
-            "gray20",
-            "grey20",
-            "gray21",
-            "grey21",
-            "gray22",
-            "grey22",
-            "gray23",
-            "grey23",
-            "gray24",
-            "grey24",
-            "gray25",
-            "grey25",
-            "gray26",
-            "grey26",
-            "gray27",
-            "grey27",
-            "gray28",
-            "grey28",
-            "gray29",
-            "grey29",
-            "gray30",
-            "grey30",
-            "gray31",
-            "grey31",
-            "gray32",
-            "grey32",
-            "gray33",
-            "grey33",
-            "gray34",
-            "grey34",
-            "gray35",
-            "grey35",
-            "gray36",
-            "grey36",
-            "gray37",
-            "grey37",
-            "gray38",
-            "grey38",
-            "gray39",
-            "grey39",
-            "gray40",
-            "grey40",
-            "gray41",
-            "grey41",
-            "gray42",
-            "grey42",
-            "gray43",
-            "grey43",
-            "gray44",
-            "grey44",
-            "gray45",
-            "grey45",
-            "gray46",
-            "grey46",
-            "gray47",
-            "grey47",
-            "gray48",
-            "grey48",
-            "gray49",
-            "grey49",
-            "gray50",
-            "grey50",
-            "gray51",
-            "grey51",
-            "gray52",
-            "grey52",
-            "gray53",
-            "grey53",
-            "gray54",
-            "grey54",
-            "gray55",
-            "grey55",
-            "gray56",
-            "grey56",
-            "gray57",
-            "grey57",
-            "gray58",
-            "grey58",
-            "gray59",
-            "grey59",
-            "gray60",
-            "grey60",
-            "gray61",
-            "grey61",
-            "gray62",
-            "grey62",
-            "gray63",
-            "grey63",
-            "gray64",
-            "grey64",
-            "gray65",
-            "grey65",
-            "gray66",
-            "grey66",
-            "gray67",
-            "grey67",
-            "gray68",
-            "grey68",
-            "gray69",
-            "grey69",
-            "gray70",
-            "grey70",
-            "gray71",
-            "grey71",
-            "gray72",
-            "grey72",
-            "gray73",
-            "grey73",
-            "gray74",
-            "grey74",
-            "gray75",
-            "grey75",
-            "gray76",
-            "grey76",
-            "gray77",
-            "grey77",
-            "gray78",
-            "grey78",
-            "gray79",
-            "grey79",
-            "gray80",
-            "grey80",
-            "gray81",
-            "grey81",
-            "gray82",
-            "grey82",
-            "gray83",
-            "grey83",
-            "gray84",
-            "grey84",
-            "gray85",
-            "grey85",
-            "gray86",
-            "grey86",
-            "gray87",
-            "grey87",
-            "gray88",
-            "grey88",
-            "gray89",
-            "grey89",
-            "gray90",
-            "grey90",
-            "gray91",
-            "grey91",
-            "gray92",
-            "grey92",
-            "gray93",
-            "grey93",
-            "gray94",
-            "grey94",
-            "gray95",
-            "grey95",
-            "gray96",
-            "grey96",
-            "gray97",
-            "grey97",
-            "gray98",
-            "grey98",
-            "gray99",
-            "grey99",
-            "gray100",
-            "grey100",
-            "dark grey",
-            "DarkGrey",
-            "dark gray",
-            "DarkGray",
-            "dark blue",
-            "DarkBlue",
-            "dark cyan",
-            "DarkCyan",
-            "dark magenta",
-            "DarkMagenta",
-            "dark red",
-            "DarkRed",
-            "light"
-    };
-    
-    // rgbents, rgbnames
-    public static boolean debugflag=false;
-    
-    static void debug(String msg)
-    {
-        if(debugflag)
-            System.out.println(msg);
-    }
-    
-    // look up string name of color. return int[3] of rgb, or
-    // null if color not found
-    public static int[] NameToRGB3(String str)
-    {
-        int rsize=rgbnames.length;
-        
-        for(int count=0;count<rsize; count++)
-        {
-            if(str.equalsIgnoreCase(rgbnames[count]))
-            {
-                return rgbents[count];
-            }
-        }
-        
-        return null;
-    }
-    
-    // This returns an int. If the int were represented as
-    // 0xffffffff, then the format would match data as
-    // 0x00rrggbb
-    //BUT.. returns 0xffffffff if color not found
-    public static int NameToRGB(String str)
-    {
-        int rsize=rgbnames.length;
-        
-        if(str.charAt(0)=='#'){
-            // Have to deal with rrggbb, OR rrrrggggbbbb
-            // Erm.. except this only deals with
-            // #rrggbb, it looks like... ?!!
-            String Substr=str.substring(1,7);
-            int rgb=Integer.parseInt(Substr,16);
-            rgb|=0xff000000;
-            return rgb;
-        }
-        
-        for(int count=0;count<rsize; count++)
-        {
-            if(str.equalsIgnoreCase(rgbnames[count]))
-            {
-                int ret;
-                ret =   0xff000000 |
-                (rgbents[count][0]<<16) |
-                (rgbents[count][1]<<8) |
-                rgbents[count][2];
-                
-                return ret;
-            }
-        }
-        if(!str.equalsIgnoreCase("None"))
-            debug("NameToRGB: Could not find match for color "+str);
-        return 0x00000000;
-    }
-    
-    public static String RGB3ToName(int val[])
-    {
-        if(val.length != 3)
-            return null;
-        
-        int rsize=rgbnames.length;
-        for(int count=0; count<rsize; count++)
-        {
-            if(val[0] ==rgbents[count][0])
-                if(val[1] ==rgbents[count][1])
-                    if(val[2] ==rgbents[count][2])
-                        return rgbnames[count];
-        }
-        
-        return null;
-    }
-    
-    
-    /************************************************************
-     * This part implements reading in xpm data, and doing something
-     * USEFUL with it. This is the only public routine that people
-     * will probably care about.
-     * xpm is possibly copyright/trademarked by Arnaud LE HORS,
-     * BULL Research, France. lehors@sophia.inria.fr
-     ************************************************************/
-    
-    // we dont care/try to deal with mono conversion
-    public static Image XpmToImage(String xpm) {
-        debug(xpm);
-        /* general rules I'm going to follow:
-         *
-         * skip all  (* xxxx*) but possibly insist on initial
-         *    (* XPM *)
-         * skip static char .....
-         * read "<width> <height> <colors> <charsperpixel>" <hotx,hoty>?
-         * Then in main reading;
-         * take c FIRST. fall back to s. fall back to g. fall back to g4.
-         *     fall back to m.
-         *
-         *
-         */
-        
-        if (xpm == null) {
-            debug("XpmToImage : Provided xpm is null!");
-            return null;
-        }
-        
-        int parse, parseend;
-        int width, height,colcount,charsperpixel;
-        Hashtable colorlookup = new Hashtable();
-        // add default val for "transparent"
-        // the initial 0xff should mean it should not show up
-        
-        
-        if(! xpm.startsWith("/* XPM */"))
-        {
-            debug("xpm data doesn't start with XPM magic. exit");
-            debug(xpm.substring(0,10));
-            return null;
-        }
-        
-        /*********************************************
-         * Do initial width/size,etc parsing
-         **********************************************/
-        parse          =       xpm.indexOf('"', 9);
-        parse+=1;
-        
-        parseend=xpm.indexOf(' ', parse);
-        width=Integer.parseInt(xpm.substring(parse,parseend));
-        
-        parse=parseend+1;
-        parseend=xpm.indexOf(' ', parse);
-        height=Integer.parseInt(xpm.substring(parse,parseend));
-        
-        parse=parseend+1;
-        parseend=xpm.indexOf(' ', parse);
-        colcount=Integer.parseInt(xpm.substring(parse,parseend));
-        
-        parse=parseend+1;
-        parseend=xpm.indexOf('"',parse);
-        if(parseend==-1){
-            return null;
-        }
-        charsperpixel=Integer.parseInt(xpm.substring(parse,parseend));
-        
-        debug("width="+width+",height="+height+
-                ",colcount="+colcount+",cpp="+charsperpixel);
-        
-        
-        
-        if(charsperpixel==1){
-            colorlookup.put(new Integer(' '),
-                    new Integer(0x00000000));
-        } else {
-            int tmpchar=(' ' &0xff) <<8;
-            tmpchar |=  (' '&0xff);
-            colorlookup.put(new Integer((tmpchar&0xffff)),
-                    new Integer(0x00000000));
-            
-        }
-        
-        /**************************************************
-         * Now do parsing of color naming/indexing
-         **************************************************/
-        Image image;
-        int imageb[];
-        
-        imageb = new int[width * height];
-        int bytecount=0; // counting bytes into image array
-        
-        parse=xpm.indexOf('"', parseend+1)+1;
-        
-        while(colcount-->0)
-        {
-            if(parse==0){
-                debug("ERROR: expecting color def");
-                return null;
-            }
-            
-            Integer colref;
-            Integer rgb;
-            parseend=xpm.indexOf('"', parse+1);
-            
-            String colorname =
-                getColorName(xpm.substring(parse, parseend));
-            
-            if(debugflag){
-                debug("colorname on line is "+colorname);
-                debug("now parsing "+
-                        xpm.substring(parse,parse+charsperpixel));
-                
-            }
-            
-            if(charsperpixel==1){
-                colref=new Integer(xpm.charAt(parse++));
-            } else{
-                int tmpchar=xpm.charAt(parse++);
-                tmpchar = (tmpchar&0xff)<<8;
-                tmpchar |= xpm.charAt(parse++) & 0xff;
-                
-                if(debugflag){
-                    debug("two charsperpixel: substre==" +
-                            xpm.substring(parse-2,parse)+
-                            " which generates char "+
-                            (tmpchar&0xffff));
-                }
-                
-                colref=new Integer(tmpchar&0xffff);
-            }
-            
-            
-            
-            rgb = new Integer(NameToRGB(colorname));
-            
-            if(debugflag){
-                debug("Color num parsed for \"" +colorname+"\"("+
-                        Integer.toHexString(colref.intValue())+
-                        ") is #"+
-                        Integer.toHexString(rgb.intValue()) );
-            }
-            
-            
-            colorlookup.put(colref, rgb);
-            parse=xpm.indexOf('"', parseend+1)+1;
-            
-            
-        }
-        
-        debug("Done with color defs");
-        
-        /****************************************************
-         * Finally, now that we have all the data,
-         * fully interpret the actual image
-         ***************************************************/
-        
-        parse = xpm.indexOf("\n\"", parseend+1);
-        if(parse==-1)
-        {
-            debug("ERROR; incomplete Xpm data");
-            return null;
-        }
-        parse+=1;
-        
-        debug("Xpm starting image parse");
-        while(xpm.charAt(parse) =='"')
-        {
-            parse++;
-            parseend = xpm.indexOf('"', parse);
-            
-            debug("Xpm; parsing \""+xpm.substring(parse, parseend)+"\"");
-            
-            for(int pix=parse; pix<parseend;pix++)
-            {
-                int tmpchar;
-                Integer pixchar;
-                Integer pixval;
-                
-                if(charsperpixel==1){
-                    tmpchar=xpm.charAt(pix);
-                } else{
-                    tmpchar=xpm.charAt(pix++);
-                    tmpchar = (tmpchar&0xff)<<8;
-                    tmpchar |= xpm.charAt(pix) & 0xff;
-                    
-                }
-                pixchar=new Integer(tmpchar&0xffff);
-                
-                
-                pixval = (Integer)colorlookup.get(pixchar);
-                if(pixval==null){
-                    if(debugflag){
-                        debug("HEY MORON: no value stored "+
-                                " for int "+
-                                Integer.toHexString(tmpchar)+
-                                ", char substring "+
-                                xpm.substring(pix-charsperpixel,
-                                        pix));
-                    }
-                    
-                }
-                imageb[bytecount++]=pixval.intValue();
-            }
-            
-            parse=xpm.indexOf('"', parseend+1);
-            if(parse==-1)
-                break;
-        }
-        
-        if(bytecount<(width * height -1))
-        {
-            debug("Warning.. pixmap truncated!");
-        }
-        
-        //printbytes(imageb);
-        image=BytesToImage(imageb, width, height);
-        
-        return image;
-        
-        
-    }
-    
-    static Image BytesToImage(int bytes[], int width, int height)
-    {
-        Image myimage;
-        Toolkit tk = Toolkit.getDefaultToolkit();
-        myimage=tk.createImage(new MemoryImageSource(width, height, bytes, 0, width));
-        
-        return myimage;
-        
-    }
-    
-    // debug routine
-    static void printbytes(int b[])
-    {
-        int index;
-        for(index=0; index<b.length; index++)
-        {
-            System.out.print(" "+Integer.toHexString(b[index]));
-        }
-        System.out.println(" ");
-    }
-    
-    // This just parses out the string that defines the colorname
-    // we do NOT interpret. we just split it out from the rest of
-    // the line. Call NameToRGB() on the result.
-    // We make the assumption that our string does NOT
-    // have a trailing '"'
-    static String getColorName(String xpmline)
-    {
-        //debug("getColorName passed: "+xpmline);
-        
-        int parsemid, parsemidend;
-        parsemid = xpmline.indexOf("\tc");
-        if(parsemid <=0)
-            parsemid = xpmline.indexOf(" c");
-        if(parsemid <=0)
-        {
-            debug("Xpm: oops. no c found, in: "+xpmline);
-            return null;
-        }
-        parsemid+=3;
-        parsemidend=xpmline.indexOf('\t',parsemid);
-        if(parsemidend==-1)
-            parsemidend=xpmline.length();
-        
-        return xpmline.substring(parsemid, parsemidend);
-        
-        
-    }
-    
-    
-    
-}
diff --git a/src/org/biojava/dasobert/dasregistry/Das1Validator.java b/src/org/biojava/dasobert/dasregistry/Das1Validator.java
deleted file mode 100755 (executable)
index e87ecd8..0000000
+++ /dev/null
@@ -1,514 +0,0 @@
-/*                    BioJava development code
- *
- * This code may be freely distributed and modified under the
- * terms of the GNU Lesser General Public Licence.  This should
- * be distributed with the code.  If you do not have a copy,
- * see:
- *
- *      http://www.gnu.org/copyleft/lesser.html
- *
- * Copyright for this code is held jointly by the individual
- * authors.  These should be listed in @author doc comments.
- *
- * For more information on the BioJava project and its aims,
- * or to join the biojava-l mailing list, visit the home page
- * at:
- *
- *      http://www.biojava.org/
- *
- * Created on 30.08.2005
- * @author Andreas Prlic
- *
- */
-
-
-package org.biojava.dasobert.dasregistry ;
-
-//import org.biojava.services.das.*;
-//xml stuff
-import org.xml.sax.*;
-import javax.xml.parsers.*;
-import java.util.ArrayList                    ;
-import java.util.Map                          ;
-import java.util.List                         ;
-import java.io.InputStream                    ;
-
-import java.net.URL                           ;
-
-
-//for validation add dependency on SPICE... :-/
-import java.net.HttpURLConnection;
-import org.biojava.dasobert.das.*;
-import org.biojava.dasobert.das.DAS_Entry_Points_Handler;
-import org.biojava.dasobert.das.DAS_Types_Handler;
-
-
-
-public class Das1Validator {
-
-    public final static String[] DAS_CAPABILITIES = {
-        "sequence",
-        "structure",
-        "alignment",
-        "types",
-        "features",
-        "entry_points",
-        "dna",
-        "stylesheet"
-    } ;
-
-
-    //private final static String DATASOURCE_NAME = "jdbc/mysql";
-    String validationMessage;
-
-    public boolean VALIDATION = false; // DTD validation ..
-
-    List all_capabilities;
-    public Das1Validator() {
-        validationMessage = "" ;
-        all_capabilities = new ArrayList();
-        for ( int i = 0 ; i< DAS_CAPABILITIES.length; i++ ) {
-            all_capabilities.add(DAS_CAPABILITIES[i]);
-        }
-    }
-
-    /** return which errors have been produced during validation... */
-    public String getValidationMessage(){
-        return validationMessage;
-    }
-
-
-
-    public String[] validate(String url, DasCoordinateSystem[] coords, String[] capabilities){
-        validationMessage="";
-        // a list containing all valid DAS requests ...
-
-        List lst =new ArrayList();
-
-        char lastChar = url.charAt(url.length()-1);
-        if ( lastChar  != '/')
-            url += "/";
-
-        validateURL(url);
-
-
-        // test if all specified capabilities really work
-        for ( int c = 0 ; c < capabilities.length ; c++) {
-            String capability = capabilities[c];
-            if ( all_capabilities.contains(capability)) {
-                //System.out.println("testing " + capability);
-
-                if ( capability.equals("sequence")) {
-                    for ( int i=0;i< coords.length;i++){
-                        DasCoordinateSystem ds =coords[i];
-                        String testcode = ds.getTestCode();
-
-                        // do a DAS sequence retreive
-                        if (  validateSequence(url,testcode) )
-                            lst.add(capability);
-
-                    }
-
-                }
-                else if ( capability.equals("structure")) {
-
-                }
-                else if ( capability.equals("features")){
-                    for ( int i=0;i< coords.length;i++){
-                        DasCoordinateSystem ds =coords[i];
-                        String testcode = ds.getTestCode();
-
-
-                        if ( validateFeatures(url,testcode))
-                            lst.add(capability);
-
-                    }
-                }
-                else if ( capability.equals("alignment")){
-
-                } else if ( capability.equals("types")){
-                    if ( validateTypes(url))
-                        lst.add(capability);
-                    //else
-                    //    error =true ;
-
-                } else if ( capability.equals("entry_points")) {
-                    if ( validateEntry_Points(url))
-                        lst.add(capability);
-                    //else
-                    //    error = true;
-                } else if ( capability.equals("stylesheet")) {
-                    if ( validateStylesheet(url))
-                        lst.add(capability);
-                    //} else
-                    //    error = true;
-                } else if ( capability.equals("dna")){
-                    for ( int i=0;i< coords.length;i++){
-                        DasCoordinateSystem ds =coords[i];
-                        String testcode = ds.getTestCode();
-
-                        if ( validateDNA(url,testcode))
-                            lst.add(capability);
-                    }
-                }
-                else {
-                    validationMessage += "<br/>---<br/> test of capability " + capability + " not implemented,yet.";
-                    lst.add(capability);
-                }
-            }
-        }
-
-        //if ( error) {
-        //    System.out.println("DasValidator: "+ validationMessage);
-        //}
-        //this.validationMessage = validationMessage;
-        return (String[])lst.toArray(new String[lst.size()]);
-
-    }
-
-    /** make sure the URL matches the DAS spec
-     returns true if URL looks o.k...
-     */
-    public  boolean validateURL(String url) {
-        String[] spl = url.split("/");
-
-        //for (int i = 0 ; i < spl.length  ; i++ ) {
-        //    System.out.println("spl["+i+"]:"+spl[i]);
-        //}
-
-        if (spl == null ) {
-            validationMessage +="---<br/> URL is not well formed" ;
-            return false;
-        }
-
-        if ( spl.length <= 4) {
-            validationMessage +="---<br/> URL is not well formed <br/>" +
-            "should be http[s]://site.specific.prefix/das/dassourcename/";
-            return false;
-        }
-
-        //System.out.println("split 0 : " + spl[0]);
-        if ( ! (spl[0].equals("http:"))) {
-            if ( ! ( spl[0].equals("https:"))){
-                validationMessage +="---<br/> URL is not well formed (does not start with http:// or https://)" ;
-                return false;
-            }
-
-        }
-
-        String dastxt = spl[spl.length-2] ;
-        //System.out.println("should be >das< " + dastxt);
-        if ( ! dastxt.equals("das")) {
-            String suggestion = spl[0] + "//" ;
-            String wrong      = spl[0] + "//" ;
-            for (int i = 2 ; i < spl.length -2 ; i++ ) {
-                suggestion += spl[i] + "/" ;
-                wrong += spl[i] + "/" ;
-            }
-            suggestion +="<b>das</b>/"+spl[spl.length-1];
-            wrong +="<b>" + spl[spl.length-2] + "</b>/"+spl[spl.length-1];
-            validationMessage +="--<br/> the URL does not match the DAS spec. it should be <br/>"+
-            " http[s]://site.specific.prefix/das/dassourcename/ <br/>" +
-            " found >" + dastxt +" < instead of >das< <br/>" +
-            " suggested url: " + suggestion + "<br/>"+
-            " instead of: " + wrong ;
-            return false;
-        }
-        return true;
-
-    }
-
-    private boolean validateDNA(String url, String testcode){
-        try {
-            String cmd = url+"dna?segment="+testcode;
-            URL strurl = new URL(cmd);
-            InputStream dasInStream = open(strurl);
-
-            XMLReader xmlreader = getXMLReader();
-
-            DAS_DNA_Handler cont_handle = new DAS_DNA_Handler() ;
-
-            xmlreader.setContentHandler(cont_handle);
-            xmlreader.setErrorHandler(new org.xml.sax.helpers.DefaultHandler());
-            InputSource insource = new InputSource() ;
-
-            insource.setByteStream(dasInStream);
-            xmlreader.parse(insource);
-            String sequence = cont_handle.get_sequence();
-            if ( sequence.length() > 0 ) {
-                return true;
-            } else {
-                validationMessage  +="<br/>---<br/> contacting " + cmd + "<br/>";
-                validationMessage += " no sequence was returned";
-
-                return false;
-            }
-
-
-        } catch ( Exception e) {
-            //e.printStackTrace();
-            validationMessage += "<br/>---<br/> contacting " + url + "dna?segment="+testcode + "<br/>";
-
-            Throwable cause = e.getCause();
-            if ( cause != null)
-                validationMessage += cause.toString();
-            else
-                validationMessage += e.toString();
-        }
-        return false;
-
-    }
-
-    private boolean validateStylesheet(String url) {
-        try {
-            DAS_StylesheetRetrieve dsr = new DAS_StylesheetRetrieve();
-            URL styleurl = new URL(url+"stylesheet");
-
-            Map[] stylesheet = dsr.retrieve(styleurl);
-            if (( stylesheet != null ) && ( stylesheet.length > 0))
-                return true;
-            else {
-                validationMessage  +="<br/>---<br/> contacting " + url + "stylesheet<br/>";
-                validationMessage += " no stylesheet was returned";
-                return false;
-            }
-        } catch (Exception e) {
-            validationMessage += "<br/>---<br/> contacting " + url+"stylesheet <br/>";
-
-            Throwable cause = e.getCause();
-            if ( cause != null)
-                validationMessage += cause.toString();
-            else
-                validationMessage += e.toString();
-        }
-        return false;
-    }
-
-
-    private boolean validateEntry_Points(String url){
-        try {
-            URL u = new URL(url+"entry_points");
-
-            InputStream dasInStream = open(u);
-
-            XMLReader xmlreader = getXMLReader();
-
-            DAS_Entry_Points_Handler cont_handle = new DAS_Entry_Points_Handler() ;
-
-            xmlreader.setContentHandler(cont_handle);
-            xmlreader.setErrorHandler(new org.xml.sax.helpers.DefaultHandler());
-            InputSource insource = new InputSource() ;
-            insource.setByteStream(dasInStream);
-            xmlreader.parse(insource);
-            String version = cont_handle.getVersion();
-            if ( version != null ) {
-                return true;
-            } else {
-                validationMessage  +="<br/>---<br/> contacting " + url +"entry_points <br/>";
-                validationMessage += " no version was returned";
-
-                return false;
-            }
-
-
-        } catch ( Exception e) {
-            //e.printStackTrace();
-            validationMessage += "<br/>---<br/> contacting " + url+ "types <br/>";
-
-            Throwable cause = e.getCause();
-            if ( cause != null)
-                validationMessage += cause.toString();
-            else
-                validationMessage += e.toString();
-        }
-        return false;
-    }
-
-    private boolean validateTypes(String url){
-        try {
-            URL u = new URL(url+"types");
-            InputStream dasInStream = open(u);
-            XMLReader xmlreader = getXMLReader();
-
-            DAS_Types_Handler cont_handle = new DAS_Types_Handler() ;
-
-            xmlreader.setContentHandler(cont_handle);
-            xmlreader.setErrorHandler(new org.xml.sax.helpers.DefaultHandler());
-            InputSource insource = new InputSource() ;
-            insource.setByteStream(dasInStream);
-            xmlreader.parse(insource);
-            String[] types = cont_handle.getTypes();
-            if ( types.length > 0 ) {
-                return true;
-            } else {
-                validationMessage  +="<br/>---<br/> contacting " + url +"types <br/>";
-                validationMessage += " no types were returned";
-
-                return false;
-            }
-
-
-        } catch ( Exception e) {
-            //e.printStackTrace();
-            validationMessage += "<br/>---<br/> contacting " + url+ "types <br/>";
-
-            Throwable cause = e.getCause();
-            if ( cause != null)
-                validationMessage += cause.toString();
-            else
-                validationMessage += e.toString();
-        }
-        return false;
-    }
-
-
-    private boolean validateFeatures(String url, String testcode){
-        try {
-            URL u = new URL(url+"features?segment="+testcode);
-            InputStream dasInStream = open(u);
-            XMLReader xmlreader = getXMLReader();
-
-            DAS_Feature_Handler cont_handle = new DAS_Feature_Handler() ;
-            cont_handle.setDASCommand(url.toString());
-            xmlreader.setContentHandler(cont_handle);
-            xmlreader.setErrorHandler(new org.xml.sax.helpers.DefaultHandler());
-            InputSource insource = new InputSource() ;
-            insource.setByteStream(dasInStream);
-            xmlreader.parse(insource);
-            List features = cont_handle.get_features();
-            if ( features.size() > 0 ) {
-                return true;
-            } else {
-                validationMessage  +="<br/>---<br/> contacting " + url+"features?segment="+testcode + "<br/>";
-                validationMessage += " no features were returned";
-
-                return false;
-            }
-
-        } catch ( Exception e) {
-            //e.printStackTrace();
-            validationMessage += "<br/>---<br/> contacting " + url+"features?segment="+testcode + "<br/>";
-
-            Throwable cause = e.getCause();
-            if ( cause != null)
-                validationMessage += cause.toString();
-            else
-                validationMessage += e.toString();
-        }
-        return false;
-    }
-     private boolean validateSequence(String url, String testcode) {
-        URL dasUrl;
-        String cmd = url+"sequence?segment="+testcode;
-        try {
-            dasUrl = new URL(cmd);
-
-        } catch ( Exception e) {
-            e.printStackTrace();
-            return false;
-        }
-        try {
-            InputStream dasInStream =open(dasUrl);
-            SAXParserFactory spfactory =
-                SAXParserFactory.newInstance();
-            spfactory.setValidating(true);
-
-            SAXParser saxParser = null ;
-
-            try{
-                saxParser =
-                    spfactory.newSAXParser();
-            } catch (ParserConfigurationException e) {
-                e.printStackTrace();
-            }
-            XMLReader xmlreader = saxParser.getXMLReader();
-
-            try {
-                xmlreader.setFeature("http://xml.org/sax/features/validation", VALIDATION);
-            } catch (SAXException e) {
-                e.printStackTrace();
-            }
-            try {
-                xmlreader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd",VALIDATION);
-            } catch (SAXNotRecognizedException e){
-                e.printStackTrace();
-            }
-
-            DAS_Sequence_Handler cont_handle = new DAS_Sequence_Handler() ;
-            xmlreader.setContentHandler(cont_handle);
-            xmlreader.setErrorHandler(new org.xml.sax.helpers.DefaultHandler());
-            InputSource insource = new InputSource() ;
-            insource.setByteStream(dasInStream);
-            xmlreader.parse(insource);
-            String sequence = cont_handle.get_sequence();
-            if ( ( sequence==null) || (sequence.equals(""))) {
-                validationMessage += "---<br/>contacting " + cmd +"<br/>";
-                validationMessage += "no sequence found";
-                return false;
-            }
-            return true;
-        } catch (Exception e) {
-            validationMessage += "---<br/>contacting " + cmd +"<br/>";
-
-            Throwable cause = e.getCause();
-            if ( cause != null)
-                validationMessage += cause.toString();
-            else
-                validationMessage += e.toString();
-            //e.printStackTrace();
-        }
-        return false;
-    }
-
-    private XMLReader getXMLReader() throws SAXException{
-        SAXParserFactory spfactory =
-            SAXParserFactory.newInstance();
-
-        spfactory.setValidating(false) ;
-        SAXParser saxParser = null ;
-
-        try{
-            saxParser =
-                spfactory.newSAXParser();
-        } catch (ParserConfigurationException e) {
-            e.printStackTrace();
-        }
-
-        XMLReader xmlreader = saxParser.getXMLReader();
-        boolean validation = VALIDATION;
-        //XMLReader xmlreader = XMLReaderFactory.createXMLReader();
-        try {
-            xmlreader.setFeature("http://xml.org/sax/features/validation", validation);
-        } catch (SAXException e) {
-            e.printStackTrace();
-        }
-
-        try {
-            xmlreader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd",validation);
-        } catch (SAXNotRecognizedException e){
-            e.printStackTrace();
-        }
-        return xmlreader;
-
-    }
-
-
-
-    private InputStream open(URL url) throws Exception{
-
-        // TODO Auto-generated method stub
-
-        InputStream inStream = null;
-
-        HttpURLConnection huc = null;
-        huc = (HttpURLConnection) url.openConnection();
-        //String contentEncoding = huc.getContentEncoding();
-        inStream = huc.getInputStream();
-        return inStream;
-    }
-
-
-
-
-
-}
diff --git a/src/org/biojava/dasobert/dasregistry/DasSourceValidator.java b/src/org/biojava/dasobert/dasregistry/DasSourceValidator.java
deleted file mode 100755 (executable)
index 3e857b5..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- *                  BioJava development code
- *
- * This code may be freely distributed and modified under the
- * terms of the GNU Lesser General Public Licence.  This should
- * be distributed with the code.  If you do not have a copy,
- * see:
- *
- *      http://www.gnu.org/copyleft/lesser.html
- *
- * Copyright for this code is held jointly by the individual
- * authors.  These should be listed in @author doc comments.
- *
- * For more information on the BioJava project and its aims,
- * or to join the biojava-l mailing list, visit the home page
- * at:
- *
- *      http://www.biojava.org/
- *
- * Created on Mar 20, 2006
- *
- */
-package org.biojava.dasobert.dasregistry;
-
-import org.biojava.dasobert.das2.Das2Source;
-
-public class DasSourceValidator {
-
-    public DasSourceValidator() {
-        super();
-
-    }
-
-    public void validateDasSource(DasSource ds) throws Exception {
-
-        if ( ds instanceof Das2Source ){
-
-            Das2Source d2s = (Das2Source)ds;
-
-            Das2Validator validator = new Das2Validator();
-            boolean ok = validator.validate(d2s);
-            if ( ! ok)
-                throw new Exception("coul not validate DasSource");
-
-        } else {
-
-            // a DAS 1 source ...
-
-            String url =ds.getUrl();
-            String[] caps = ds.getCapabilities();
-            //String testCode = ds.getTestCode();
-
-            Das1Validator validator = new Das1Validator();
-
-            String[] okcaps = validator.validate(url,ds.getCoordinateSystem(),caps);
-            String validationMessage = validator.getValidationMessage();
-            if ( okcaps.length != caps.length){
-                throw new Exception("could not validate DasSource " + validationMessage);
-            }
-
-
-        }
-
-    }
-
-}