From e4dca3706ab423352c26ac100f3ca5a3e7c3d2c4 Mon Sep 17 00:00:00 2001 From: amwaterhouse Date: Thu, 22 Jun 2006 08:48:48 +0000 Subject: [PATCH] Not used in Jalview --- .../biojava/dasobert/das/AlignmentParameters.java | 154 -- src/org/biojava/dasobert/das/DAS_DNA_Handler.java | 104 -- .../dasobert/das/DAS_Entry_Points_Handler.java | 58 - .../biojava/dasobert/das/DAS_Sequence_Handler.java | 108 -- .../dasobert/das/DAS_StylesheetRetrieve.java | 111 -- .../dasobert/das/DAS_Stylesheet_Handler.java | 205 --- .../biojava/dasobert/das/DAS_Types_Handler.java | 77 - src/org/biojava/dasobert/das/SequenceThread.java | 261 --- src/org/biojava/dasobert/das/SpiceDasSource.java | 151 -- src/org/biojava/dasobert/das/Xpm.java | 1903 -------------------- .../dasobert/dasregistry/Das1Validator.java | 514 ------ .../dasobert/dasregistry/DasSourceValidator.java | 66 - 12 files changed, 3712 deletions(-) delete mode 100755 src/org/biojava/dasobert/das/AlignmentParameters.java delete mode 100755 src/org/biojava/dasobert/das/DAS_DNA_Handler.java delete mode 100755 src/org/biojava/dasobert/das/DAS_Entry_Points_Handler.java delete mode 100755 src/org/biojava/dasobert/das/DAS_Sequence_Handler.java delete mode 100755 src/org/biojava/dasobert/das/DAS_StylesheetRetrieve.java delete mode 100755 src/org/biojava/dasobert/das/DAS_Stylesheet_Handler.java delete mode 100755 src/org/biojava/dasobert/das/DAS_Types_Handler.java delete mode 100755 src/org/biojava/dasobert/das/SequenceThread.java delete mode 100755 src/org/biojava/dasobert/das/SpiceDasSource.java delete mode 100755 src/org/biojava/dasobert/das/Xpm.java delete mode 100755 src/org/biojava/dasobert/dasregistry/Das1Validator.java delete mode 100755 src/org/biojava/dasobert/dasregistry/DasSourceValidator.java diff --git a/src/org/biojava/dasobert/das/AlignmentParameters.java b/src/org/biojava/dasobert/das/AlignmentParameters.java deleted file mode 100755 index faf6924..0000000 --- a/src/org/biojava/dasobert/das/AlignmentParameters.java +++ /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 index 49b1ad1..0000000 --- a/src/org/biojava/dasobert/das/DAS_DNA_Handler.java +++ /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 index 9afa621..0000000 --- a/src/org/biojava/dasobert/das/DAS_Entry_Points_Handler.java +++ /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 index 0d39e15..0000000 --- a/src/org/biojava/dasobert/das/DAS_Sequence_Handler.java +++ /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 index 8411aca..0000000 --- a/src/org/biojava/dasobert/das/DAS_StylesheetRetrieve.java +++ /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 index 561177b..0000000 --- a/src/org/biojava/dasobert/das/DAS_Stylesheet_Handler.java +++ /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 index 162cf39..0000000 --- a/src/org/biojava/dasobert/das/DAS_Types_Handler.java +++ /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 index 8f54a9f..0000000 --- a/src/org/biojava/dasobert/das/SequenceThread.java +++ /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 index a903af3..0000000 --- a/src/org/biojava/dasobert/das/SpiceDasSource.java +++ /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 index 0ebd92d..0000000 --- a/src/org/biojava/dasobert/das/Xpm.java +++ /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 " ? - * 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; pixdas< " + 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 +="das/"+spl[spl.length-1]; - wrong +="" + spl[spl.length-2] + "/"+spl[spl.length-1]; - validationMessage +="--
the URL does not match the DAS spec. it should be
"+ - " http[s]://site.specific.prefix/das/dassourcename/
" + - " found >" + dastxt +" < instead of >das<
" + - " suggested url: " + suggestion + "
"+ - " 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 +="
---
contacting " + cmd + "
"; - validationMessage += " no sequence was returned"; - - return false; - } - - - } catch ( Exception e) { - //e.printStackTrace(); - validationMessage += "
---
contacting " + url + "dna?segment="+testcode + "
"; - - 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 +="
---
contacting " + url + "stylesheet
"; - validationMessage += " no stylesheet was returned"; - return false; - } - } catch (Exception e) { - validationMessage += "
---
contacting " + url+"stylesheet
"; - - 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 +="
---
contacting " + url +"entry_points
"; - validationMessage += " no version was returned"; - - return false; - } - - - } catch ( Exception e) { - //e.printStackTrace(); - validationMessage += "
---
contacting " + url+ "types
"; - - 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 +="
---
contacting " + url +"types
"; - validationMessage += " no types were returned"; - - return false; - } - - - } catch ( Exception e) { - //e.printStackTrace(); - validationMessage += "
---
contacting " + url+ "types
"; - - 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 +="
---
contacting " + url+"features?segment="+testcode + "
"; - validationMessage += " no features were returned"; - - return false; - } - - } catch ( Exception e) { - //e.printStackTrace(); - validationMessage += "
---
contacting " + url+"features?segment="+testcode + "
"; - - 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 += "---
contacting " + cmd +"
"; - validationMessage += "no sequence found"; - return false; - } - return true; - } catch (Exception e) { - validationMessage += "---
contacting " + cmd +"
"; - - 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 index 3e857b5..0000000 --- a/src/org/biojava/dasobert/dasregistry/DasSourceValidator.java +++ /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); - } - - - } - - } - -} -- 1.7.10.2