<classpathentry kind="lib" path="lib/commons-codec-1.3.jar"/>
<classpathentry kind="lib" path="lib/Jmol-12.2.4.jar"/>
<classpathentry kind="lib" path="appletlib/JmolApplet-12.2.4.jar"/>
+ <classpathentry kind="lib" path="lib/jdas-1.0.3.jar" sourcepath="/jdas"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/plugin.jar"/>
<classpathentry kind="output" path="classes"/>
</classpath>
{
String token = st.nextToken();
int bar = token.indexOf("|");
+ // TODO: replace with JDAS source object.
Das1Source source = new Das1Source();
source.setUrl(token.substring(bar + 1));
if (source.getUrl().startsWith("sequence:"))
*/\r
package jalview.gui;\r
\r
+import java.security.interfaces.DSAKey;\r
+import java.text.ParseException;\r
import java.util.*;\r
+import java.util.List;\r
\r
import java.awt.*;\r
import java.awt.event.*;\r
import javax.swing.event.*;\r
import javax.swing.table.*;\r
\r
-import org.biojava.dasobert.dasregistry.*;\r
+import org.biodas.jdas.dassources.Capabilities;\r
+import org.biodas.jdas.dassources.utils.DasTimeFormat;\r
+import org.biodas.jdas.schema.sources.CAPABILITY;\r
+import org.biodas.jdas.schema.sources.COORDINATES;\r
+import org.biodas.jdas.schema.sources.MAINTAINER;\r
+import org.biodas.jdas.schema.sources.PROP;\r
+import org.biodas.jdas.schema.sources.SOURCE;\r
+import org.biodas.jdas.schema.sources.SOURCES;\r
+import org.biodas.jdas.schema.sources.VERSION;\r
+\r
import jalview.jbgui.*;\r
import jalview.util.*;\r
\r
public class DasSourceBrowser extends GDasSourceBrowser implements\r
Runnable, ListSelectionListener\r
{\r
- static DasSource[] dasSources = null;\r
+ static org.biodas.jdas.schema.sources.SOURCE[] dasSources = null;\r
\r
Hashtable localSources = null;\r
\r
Object[][] data = new Object[dSize][2];\r
for (int i = 0; i < dSize; i++)\r
{\r
- data[i][0] = dasSources[i].getNickname();\r
+ data[i][0] = dasSources[i]. // what's equivalent of nickname\r
data[i][1] = new Boolean(selectedSources.contains(dasSources[i]\r
.getNickname()));\r
}\r
worker.start();\r
}\r
\r
- private void setCapabilities(DasSource[] sources)\r
+ private boolean isLaterThan(String ref, String newer)\r
{\r
- Vector authority = new Vector();\r
- Vector type = new Vector();\r
- Vector label = new Vector();\r
-\r
- authority.addElement("Any");\r
- type.addElement("Any");\r
- label.addElement("Any");\r
+ Date refdate=null,newdate=null;\r
+ try {\r
+ refdate=DasTimeFormat.fromDASString(ref);\r
+ \r
+ }\r
+ catch (ParseException x)\r
+ {\r
+ return false;\r
+ }\r
+ try {\r
+ newdate = DasTimeFormat.fromDASString(newer);\r
+ }\r
+ catch (ParseException e) {\r
+ // TODO: handle exception\r
+ }\r
+ if (refdate!=null)\r
+ {\r
+ if (newdate!=null)\r
+ {\r
+ return refdate.before(newdate);\r
+ }\r
+ return false;\r
+ }\r
+ if (newdate!=null)\r
+ {\r
+ return true;\r
+ }\r
+ // assume first instance of source is newest in list. - TODO: check if natural ordering of source versions is newest first or oldest first\r
+ return false;\r
+ }\r
+ private void setCapabilities(SOURCE[] sources)\r
+ {\r
+ Vector<String> authority = new Vector<String>();\r
+ Vector<String> type = new Vector<String>();\r
+ Vector<String> label = new Vector<String>();\r
+ Vector<String> taxIds=new Vector<String>();\r
+ authority.add("Any");\r
+ type.add("Any");\r
+ label.add("Any");\r
+ \r
\r
for (int i = 0; i < sources.length; i++)\r
{\r
- DasSource ds = sources[i];\r
-\r
- DasCoordinateSystem[] dcs = ds.getCoordinateSystem();\r
-\r
- for (int j = 0; j < dcs.length; j++)\r
+ SOURCE ds = sources[i];\r
+ VERSION latest=null;\r
+ for (VERSION v:ds.getVERSION()) {\r
+ if (latest==null || isLaterThan(latest.getCreated(),v.getCreated()))\r
+ {\r
+ // TODO: das 1.6 - should just get the first version - ignore other versions since not specified how to construct URL from version's URI + source URI\r
+ latest=v;\r
+ }\r
+ }\r
+ \r
+ for (COORDINATES cs: latest.getCOORDINATES())\r
{\r
- if (!type.contains(dcs[j].getCategory()))\r
+ if (!type.contains(cs.getSource()))\r
{\r
- type.addElement(dcs[j].getCategory());\r
+ type.add(cs.getSource()); // source==category\r
}\r
\r
- if (!authority.contains(dcs[j].getName()))\r
+ if (!authority.contains(cs.getAuthority()))\r
{\r
- authority.addElement(dcs[j].getName());\r
+ authority.add(cs.getAuthority());\r
}\r
}\r
\r
- String[] slabels = ds.getLabels();\r
- for (int s = 0; s < slabels.length; s++)\r
+ for (PROP slabel:latest.getPROP())\r
{\r
- if (!label.contains(slabels[s]))\r
+ if (slabel.getName().equalsIgnoreCase("LABEL") && !label.contains(slabel.getValue()))\r
{\r
- label.addElement(slabels[s]);\r
+ label.add(slabel.getValue());\r
}\r
}\r
\r
filter1.setListData(authority);\r
filter2.setListData(type);\r
filter3.setListData(label);\r
+ // filter4 taxIds\r
\r
javax.swing.SwingUtilities.invokeLater(new Runnable()\r
{\r
{\r
int selectedRow = table.getSelectionModel().getMinSelectionIndex();\r
nickname = table.getValueAt(selectedRow, 0).toString();\r
- url = ((DasSource) localSources.get(nickname)).getUrl();\r
- seqsrc = ((DasSource) localSources.get(nickname))\r
- .hasCapability("sequence");\r
+ url = ((SOURCE) localSources.get(nickname)).getUri();\r
+ seqsrc = ((SOURCE) localSources.get(nickname)).getVERSION().get(0).getCAPABILITY().contains(Capabilities.SEQUENCE);\r
}\r
\r
JTextField nametf = new JTextField(nickname, 40);\r
urltf.setText(urltf.getText() + "/");\r
}\r
\r
- Das1Source local = new Das1Source();\r
+ // build using pattern from test: sourcesclientImplTest\r
+ {\r
+ SOURCE source = new SOURCE();\r
+ String uri = "http://das.sanger.ac.uk/das/dummysource";\r
+ source.setUri("http://das.sanger.ac.uk/das/dummysource");\r
+ source.setDescription("Dummy Test Source, should not be in a working registry sources doc");\r
+ VERSION version = new VERSION();\r
+ version.setUri(uri);\r
+ COORDINATES coord = new COORDINATES();\r
+ coord.setAuthority("NCBI");\r
+ coord.setSource("Chromosome");\r
+ coord.setTaxid("9606");\r
+ coord.setVersion("35");\r
+ version.getCOORDINATES().add(coord);\r
+ CAPABILITY cap = new CAPABILITY();\r
+ cap.setQueryUri(uri + "features");\r
+ cap.setType("das1:" + Capabilities.FEATURES.getName());\r
+ version.getCAPABILITY().add(cap);\r
+ source.getVERSION().add(version);\r
+ MAINTAINER m = new MAINTAINER();\r
+ m.setEmail("jw12@sanger.ac.uk");\r
+ source.setMAINTAINER(m);\r
+ source.setTitle("dummy title");\r
+\r
+ }\r
+ SOURCE local = new Das1Source();\r
\r
local.setUrl(urltf.getText());\r
local.setNickname(nametf.getText());\r
+++ /dev/null
-/**
- * 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 java.io.*;
-import java.lang.reflect.*;
-import java.net.*;
-import java.util.*;
-import java.util.logging.*;
-import javax.xml.parsers.*;
-
-import org.xml.sax.*;
-
-/**
- * A class to perform a DAS features request
- *
- * @author Andreas Prlic Adapted for jalview use.
- * @author Andrew Waterhouse Updated to Das 1.53e feature spec.
- * @author Jim Procter
- */
-public class DAS_FeatureRetrieve
-{
- String version;
-
- List features;
-
- Logger logger;
-
- int comeBackLater;
-
- URL url;
-
- /**
- * @param url
- * the URL the features should be downloaded from
- *
- */
- public DAS_FeatureRetrieve(URL url)
- {
- super();
-
- logger = Logger.getLogger("org.biojava.spice");
- features = new ArrayList();
- comeBackLater = -1;
- this.url = url;
- reload();
- }
-
- /**
- * contact the DAS-feature server again. Usually it is not necessary to call
- * this again, because the constructor already does, but if comeBackLater > -1
- * this should be called again.
- *
- */
- public void reload()
- {
-
- try
- {
-
- InputStream dasInStream = null;
- try
- {
- dasInStream = open(url);
- } catch (Exception e)
- {
- comeBackLater = -1;
- System.out.println("NO RESPONSE FROM " + url);
- logger.log(Level.FINE, "could not open connection to " + url, e);
- return;
- }
-
- SAXParserFactory spfactory = SAXParserFactory.newInstance();
-
- spfactory.setValidating(false);
-
- SAXParser saxParser = null;
-
- try
- {
- saxParser = spfactory.newSAXParser();
- } catch (ParserConfigurationException e)
- {
- e.printStackTrace();
- }
-
- String vali = System.getProperty("XMLVALIDATION");
-
- boolean validation = false;
- if (vali != null)
- {
- if (vali.equals("true"))
- {
- validation = true;
- }
- }
-
- XMLReader xmlreader = saxParser.getXMLReader();
-
- // XMLReader xmlreader = XMLReaderFactory.createXMLReader();
- try
- {
- xmlreader.setFeature("http://xml.org/sax/features/validation",
- validation);
- } catch (SAXException e)
- {
- logger.log(Level.FINE, "Cannot set validation " + validation);
- }
-
- try
- {
- xmlreader
- .setFeature(
- "http://apache.org/xml/features/nonvalidating/load-external-dtd",
- validation);
- } catch (SAXNotRecognizedException e)
- {
- e.printStackTrace();
- logger
- .log(Level.FINE, "Cannot set load-external-dtd "
- + validation);
-
- }
-
- 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);
-
- try
- {
- xmlreader.parse(insource);
- features = cont_handle.get_features();
- version = cont_handle.getVersion();
-
- comeBackLater = cont_handle.getComBackLater();
- } catch (Exception e)
- {
- System.out
- .println("Error parsing response from: " + url + "\n" + e);
- logger.log(Level.FINE, "error while parsing response from " + url);
- comeBackLater = -1;
- features = new ArrayList();
- }
- } catch (Exception ex)
- {
- ex.printStackTrace();
- comeBackLater = -1;
- }
- }
-
- /**
- * open HttpURLConnection. Recommended way to open HttpURLConnections, since
- * this take care of setting timeouts properly for java 1.4 and 1.5
- */
- public static HttpURLConnection openHttpURLConnection(URL url)
- throws IOException, ConnectException
- {
- HttpURLConnection huc = null;
- huc = (HttpURLConnection) url.openConnection();
-
- String os_name = java.lang.System.getProperty("os.name");
- String os_version = java.lang.System.getProperty("os.version");
- String os_arch = java.lang.System.getProperty("os.arch");
- String VERSION = "1.0";
-
- String userAgent = "Jalview " + VERSION + "(" + os_name + "; "
- + os_arch + " ; " + os_version + ")";
- // e.g. "Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.7.2) Gecko/20040803"
- huc.addRequestProperty("User-Agent", userAgent);
- // logger.finest("opening "+url);
-
- int timeout = 10000;
- System
- .setProperty("sun.net.client.defaultConnectTimeout", timeout
- + "");
- System.setProperty("sun.net.client.defaultReadTimeout", timeout + "");
-
- // use reflection to determine if get and set timeout methods for
- // urlconnection are available
- // seems java 1.5 does not watch the System properties any longer...
- // and java 1.4 did not provide these...
- // for 1.4 see setSystemProperties
-
- try
- {
- // try to use reflection to set timeout property
- Class urlconnectionClass = Class
- .forName("java.net.HttpURLConnection");
-
- Method setconnecttimeout = urlconnectionClass.getMethod(
- "setConnectTimeout", new Class[]
- { int.class });
- setconnecttimeout.invoke(huc, new Object[]
- { new Integer(timeout) });
-
- Method setreadtimeout = urlconnectionClass.getMethod(
- "setReadTimeout", new Class[]
- { int.class });
- setreadtimeout.invoke(huc, new Object[]
- { new Integer(timeout) });
- // System.out.println("successfully set java 1.5 timeout");
- } catch (Exception e)
- {
- // e.printStackTrace();
- // most likely it was a NoSuchMEthodException and we are running java 1.4.
- }
- return huc;
- }
-
- private InputStream open(URL url) throws java.io.IOException,
- java.net.ConnectException
- {
- InputStream inStream = null;
-
- HttpURLConnection huc = openHttpURLConnection(url);
-
- inStream = huc.getInputStream();
-
- return inStream;
-
- }
-
- /**
- * returns a List of Features
- *
- * @return a List of Maps containing the features
- */
- public List get_features()
- {
-
- return features;
- }
-
- /**
- * Get the version string of the reference object. If it does not match the
- * version string that is obtained from the reference server there is a
- * version problem!
- *
- * @return version string. (e.g. a MD5 digest of the reference sequence)
- */
- public String getVersion()
- {
- return version;
- }
-
- public void setVersion(String version)
- {
- this.version = version;
- }
-
- /**
- * returns the comeBackLater value - if a server returned suchh -
- *
- * @return comeBackLater in seconds, or -1 if not provided by server
- */
- public int getComeBackLater()
- {
-
- return comeBackLater;
-
- }
-
-}
+++ /dev/null
-/*
- * 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 java.util.*;
-
-import org.xml.sax.*;
-import org.xml.sax.helpers.*;
-
-/**
- * a class to parse the response of a DAS - Feature request
- *
- * @author Andreas Prlic Adapted for jalview use.
- * @author Andrew Waterhouse Updated to Das 1.53e feature spec.
- * @author Jim Procter
- *
- */
-public class DAS_Feature_Handler extends DefaultHandler
-{
-
- /**
- *
- */
- List features;
-
- boolean first_flag;
-
- HashMap feature;
-
- String featurefield;
-
- StringBuffer characterdata;
-
- String dasCommand;
-
- int comeBackLater;
-
- int maxFeatures;
-
- String segmentId;
-
- String version;
-
- String type_id;
-
- String type_category;
-
- public DAS_Feature_Handler()
- {
- super();
-
- features = new ArrayList();
- first_flag = true;
- featurefield = "";
- characterdata = new StringBuffer();
- dasCommand = "";
- comeBackLater = -1;
- maxFeatures = -1;
- segmentId = "";
- version = "";
- type_id = "";
- type_category = "";
- }
-
- /**
- * get the id information specified int the SEGMENT field of the DAS response
- *
- * @return the segmentId or an emtpy string if not available
- */
- public String getSegmentId()
- {
- return segmentId;
- }
-
- /**
- * get the version informationspecified in the SEGMENT field of the DAS
- * response
- *
- * @return the version information of an empty string if not available
- */
- public String getVersion()
- {
- return version;
- }
-
- public boolean isMD5Checksum()
- {
-
- if ((version != null) && (version.length() == 32))
- return true;
- return false;
- }
-
- /**
- * specifies a maximum number of features to be downloaded. if a server
- * returns more, they will be ignored. default is to load all features
- *
- * @param max
- * the maximium number of features to be downloaded
- */
-
- public void setMaxFeatures(int max)
- {
- maxFeatures = max;
- }
-
- public int getMaxFeatures()
- {
- return maxFeatures;
- }
-
- public void setDASCommand(String cmd)
- {
- dasCommand = cmd;
- }
-
- public String getDASCommand()
- {
- return dasCommand;
- }
-
- public List get_features()
- {
- return features;
- }
-
- public int getComBackLater()
- {
- return comeBackLater;
- }
-
- void start_feature(String uri, String name, String qName, Attributes atts)
- {
-
- if ((maxFeatures > 0) && (features.size() > maxFeatures))
- {
- characterdata = new StringBuffer();
- return;
- }
- feature = new HashMap();
- String id = atts.getValue("id");
- feature.put("id", id);
- feature.put("dassource", dasCommand);
- characterdata = new StringBuffer();
- }
-
- void add_featuredata(String uri, String name, String qName)
- {
- // System.out.println("featurefield "+featurefield+ " data "+characterdata);
- // NOTE can have multiple lines ..
-
- if ((maxFeatures > 0) && (features.size() > maxFeatures))
- {
- return;
- }
-
- String data = (String) feature.get(featurefield);
- String featureText = characterdata.toString();
- if (data != null)
- {
- featureText = data + " " + featureText;
- }
-
- if (qName.equals("TYPE"))
- {
- if (featureText.length() < 1)
- featureText = type_id;
-
- feature.put("TYPE_ID", type_id);
- feature.put("TYPE_CATEGORY", type_category);
- type_id = "";
- type_category = "";
- }
-
- feature.put(featurefield, featureText);
- featurefield = "";
- characterdata = new StringBuffer();
- }
-
- private void addLink(String uri, String name, String qName,
- Attributes atts)
- {
- String href = atts.getValue("href");
- feature.put("LINK", href);
- characterdata = new StringBuffer();
- featurefield = "LINK-TEXT";
-
- }
-
- private void addGroup(String uri, String name, String qName,
- Attributes atts)
- {
- String id = atts.getValue("id");
- feature.put("GROUP", id);
- characterdata = new StringBuffer();
- featurefield = "GROUP";
- }
-
- public void startElement(String uri, String name, String qName,
- Attributes atts)
- {
- // System.out.println("new element "+qName);
-
- if (qName.equals("FEATURE"))
- {
- start_feature(uri, name, qName, atts);
- }
- else if (qName.equals("LINK"))
- {
- addLink(uri, name, qName, atts);
- }
- else if (qName.equals("GROUP"))
- {
- addGroup(uri, name, qName, atts);
- }
- else if (qName.equals("METHOD") || qName.equals("TYPE")
- || qName.equals("START") || qName.equals("END")
- || qName.equals("NOTE") || qName.equals("SCORE")
- || qName.equals("ORIENTATION"))
- {
- characterdata = new StringBuffer();
- featurefield = qName;
- }
- else if (qName.equals("SEGMENT"))
- {
- String id = atts.getValue("id");
- if (id != null)
- segmentId = id;
- String v = atts.getValue("version");
- if (v != null)
- version = v;
-
- }
- if (qName.equals("TYPE"))
- {
- type_id = atts.getValue("id");
- type_category = atts.getValue("category");
- }
-
- }
-
- public void startDocument()
- {
- }
-
- public void endDocument()
- {
- }
-
- public void endElement(String uri, String name, String qName)
- {
-
- if (qName.equals("METHOD") || qName.equals("TYPE")
- || qName.equals("START") || qName.equals("END")
- || qName.equals("NOTE") || qName.equals("LINK")
- || qName.equals("SCORE") || qName.equals("ORIENTATION")
- || qName.equals("GROUP"))
- {
- add_featuredata(uri, name, qName);
- }
- else if (qName.equals("FEATURE"))
- {
-
- if (maxFeatures > 0)
- {
- if (features.size() < maxFeatures)
- {
- features.add(feature);
- }
- }
- else
- {
- // no restriction
- features.add(feature);
- }
- }
- }
-
- public void characters(char ch[], int start, int length)
- {
- if (maxFeatures > 0)
- if (features.size() > maxFeatures)
- return;
-
- for (int i = start; i < start + length; i++)
- {
-
- characterdata.append(ch[i]);
- }
-
- }
-
-}
+++ /dev/null
-/*
- * 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
-{
-
- StringBuffer sequence;
-
- int length;
-
- int maxLength;
-
- String version;
-
- boolean dna_flag;
-
- /**
- *
- */
- public DAS_Sequence_Handler()
- {
- super();
-
- sequence = new StringBuffer();
- length = 0;
- dna_flag = false;
- maxLength = -1;
- version = "";
- }
-
- /**
- * set a maximum length of sequence that should be loaded default: -1. if -1
- * no length restriction is being supplied
- *
- * @return the maximum length or -1 if no restriction
- */
- public int getMaxLength()
- {
- return maxLength;
- }
-
- /**
- * set a maximum length of sequence that should be loaded default: -1. if -1
- * no length restriction is being supplied
- *
- * @param maxLength
- * the maximum length or -1 if unrestricted
- */
- public void setMaxLength(int maxLength)
- {
- this.maxLength = maxLength;
- }
-
- public void startElement(String uri, String name, String qName,
- Attributes atts)
- {
-
- if (qName.equals("SEQUENCE"))
- {
- version = atts.getValue("version");
- String lenstr = atts.getValue("stop");
- length = Integer.parseInt(lenstr);
- dna_flag = true;
- }
-
- }
-
- public void characters(char ch[], int start, int length)
- {
-
- if (maxLength > 0)
- if (sequence.length() > maxLength)
- return;
-
- if (dna_flag)
- for (int i = start; i < start + length; i++)
- {
-
- // all sorts of characters can be found in "seqeunces" ... ignore
- // them...
- 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.append(ch[i]);
-
- break;
- }
- }
-
- }
-
- public String get_sequence()
- {
-
- if (maxLength < 0)
- {
- if (length != sequence.length())
- {
- Logger logger = Logger.getLogger("org.biojava.spice");
- logger.warning("Sequence does not match specified length!");
- }
- }
-
- return sequence.toString();
- }
-
- public String getVersion()
- {
- return version;
- }
-
-}
+++ /dev/null
-/*
- * 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 21.09.2004
- * @author Andreas Prlic
- *
- */
-
-package org.biojava.dasobert.das;
-
-import java.net.*;
-import java.util.*;
-import java.util.logging.*;
-
-import org.biojava.dasobert.dasregistry.*;
-import org.biojava.dasobert.eventmodel.*;
-
-/**
- * a thread that connects to a DAS - Feature service and gets the features
- *
- * @author Andreas Prlic
- */
-
-public class FeatureThread implements Runnable
-{
-
- /**
- * number of times the client tries to reconnect to the server if a "come back
- * later" is returned. the server should provide a reasonable estimation how
- * long it will take him to create results. if this number of requests is
- * still not successfull, give up.
- */
- public static int MAX_COME_BACK_ITERATIONS = 5;
-
- public static int MAX_NR_FEATURES = 300;
-
- static Logger logger = Logger.getLogger("org.biojava.spice");
-
- Das1Source dasSource;
-
- String ac;
-
- List featureListeners;
-
- Thread thread;
-
- public FeatureThread(String accessionCode, Das1Source dasSource)
- {
- this.dasSource = dasSource;
- this.ac = accessionCode;
- featureListeners = new ArrayList();
- }
-
- public void addFeatureListener(FeatureListener li)
- {
- featureListeners.add(li);
- }
-
- public void clearFeatureListeners()
- {
- featureListeners.clear();
- }
-
- public synchronized void stop()
- {
- thread = null;
- notify();
- }
-
- public void run()
- {
- Thread me = Thread.currentThread();
- while (thread == me)
- {
- String url = dasSource.getUrl();
- String queryString = url + "features?segment=" + ac;
- URL cmd = null;
- try
- {
- cmd = new URL(queryString);
- } catch (MalformedURLException e)
- {
- logger.warning("got MalformedURL from das source " + dasSource);
- e.printStackTrace();
-
- }
-
- logger.info("requesting features from " + cmd);
- DAS_FeatureRetrieve ftmp = new DAS_FeatureRetrieve(cmd);
-
- int comeBackLater = ftmp.getComeBackLater();
- int securityCounter = 0;
- while ((thread == me) && (comeBackLater > 0))
- {
- securityCounter++;
- if (securityCounter >= MAX_COME_BACK_ITERATIONS)
- {
- comeBackLater = -1;
- break;
-
- }
- notifyComeBackLater(comeBackLater);
- // server is still calculating - asks us to come back later
- try
- {
- wait(comeBackLater);
- } catch (InterruptedException e)
- {
- comeBackLater = -1;
- break;
- }
-
- ftmp.reload();
- comeBackLater = ftmp.getComeBackLater();
- }
-
- if (!(thread == me))
- {
- break;
- }
-
- List features = ftmp.get_features();
- String version = ftmp.getVersion();
-
- // a fallback mechanism to prevent DAS sources from bringing down spice
- if (features.size() > MAX_NR_FEATURES)
- {
- logger
- .warning("DAS source returned more than " + MAX_NR_FEATURES
- + "features. "
- + " throwing away excess features at " + cmd);
- features = features.subList(0, MAX_NR_FEATURES);
- }
-
- // notify FeatureListeners
- Map[] feats = (Map[]) features.toArray(new Map[features.size()]);
- notifyFeatureListeners(feats, version);
-
- break;
-
- }
- thread = null;
-
- }
-
- public void start()
- {
- thread = new Thread(this);
- thread.start();
- }
-
- private void notifyFeatureListeners(Map[] feats, String version)
- {
- logger.finest("FeatureThread found " + feats.length + " features");
- FeatureEvent fevent = new FeatureEvent(feats, dasSource, version);
- Iterator fiter = featureListeners.iterator();
- while (fiter.hasNext())
- {
- FeatureListener fi = (FeatureListener) fiter.next();
- fi.newFeatures(fevent);
- }
- }
-
- /**
- * the Annotation server requested to be queried again in a while
- *
- * @param comeBackLater
- */
- private void notifyComeBackLater(int comeBackLater)
- {
- FeatureEvent event = new FeatureEvent(new HashMap[0], dasSource, "");
- event.setComeBackLater(comeBackLater);
- Iterator fiter = featureListeners.iterator();
- while (fiter.hasNext())
- {
- FeatureListener fi = (FeatureListener) fiter.next();
- fi.comeBackLater(event);
- }
-
- }
-
-}
+++ /dev/null
-/*
- * 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;
-
- String version;
-
- 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();
- version = "";
- }
-
- 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
- {
- version = "";
-
- String sequence = retrieveSequence(connstr);
- // TODO: discriminate exceptions caused by connection/server errors and ones caused by the sequence not being found in the reference source.
- if (sequence!=null)
- {
- // bug in aristotle das source?
- sequence.replaceAll(" ", "");
- gotSequence = true;
- // set the sequence ...
-
- triggerNewSequence(sp_accession, sequence, ds, version);
- }
- 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,
- Das1Source source, String version)
- {
-
- Iterator iter = seqListeners.iterator();
- while (iter.hasNext())
- {
- SequenceListener li = (SequenceListener) iter.next();
- // SequenceEvent event = new SequenceEvent(sequence);
- SequenceEvent event = new SequenceEvent(sp_accession, sequence,
- version);
- event.setSource(source);
- 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);
- }
- if (dasInStream==null)
- {
- return null;
- }
- // 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();
- version = cont_handle.getVersion();
- // 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;
- }
-
- }
-
-}
+++ /dev/null
-/*
- * 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 Feb 9, 2006
- *
- */
-package org.biojava.dasobert.das2;
-
-public interface Das2Capability
-{
-
- public boolean equals(Das2Capability other);
-
- public int hashCode();
-
- public void setCapability(String type);
-
- public String getCapability();
-
- public void setQueryUri(String id);
-
- public String getQueryUri();
-
- public void setFormats(String[] formats);
-
- public String[] getFormats();
-
- /**
- * checks if this capability is actually of das1 style
- *
- * @return boolean true if the capability is in DAS1 style
- */
- public boolean isDas1Style();
-
-}
+++ /dev/null
-/*
- * 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 Feb 9, 2006
- *
- */
-package org.biojava.dasobert.das2;
-
-public class Das2CapabilityImpl implements Das2Capability
-{
-
- String capability;
-
- String[] formats;
-
- String queryId;
-
- public static String DAS1_CAPABILITY_PREFIX = "das1:";
-
- public Das2CapabilityImpl()
- {
- super();
- capability = "undef";
- queryId = "";
- formats = new String[0];
-
- }
-
- public boolean isDas1Style()
- {
-
- if (capability == null)
- {
- return false;
- }
- if (capability.length() < DAS1_CAPABILITY_PREFIX.length())
- {
- return false;
- }
- if (capability.substring(0, DAS1_CAPABILITY_PREFIX.length()).equals(
- DAS1_CAPABILITY_PREFIX))
- {
- return true;
- }
- return false;
-
- }
-
- public boolean equals(Das2Capability other)
- {
-
- boolean status = true;
-
- if (!capability.equals(other.getCapability()))
- {
- status = false;
- }
- if (!queryId.equals(other.getQueryUri()))
- {
- status = false;
- }
-
- return status;
- }
-
- public int hashCode()
- {
- int h = 7;
- h = 31 * h + (null == capability ? 0 : capability.hashCode());
- h = 31 * h + (null == queryId ? 0 : queryId.hashCode());
-
- return h;
- }
-
- public String toString()
- {
- String txt = "capability " + capability + " queryId " + queryId;
- return txt;
- }
-
- public String getCapability()
- {
-
- return capability;
- }
-
- public String[] getFormats()
- {
- return formats;
- }
-
- public String getQueryUri()
- {
- return queryId;
- }
-
- public void setCapability(String type)
- {
- capability = type;
-
- }
-
- public void setFormats(String[] formats)
- {
-
- this.formats = formats;
- }
-
- public void setQueryUri(String id)
- {
- queryId = id;
-
- }
-
-}
+++ /dev/null
-/*
- * 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 Feb 9, 2006
- *
- */
-package org.biojava.dasobert.das2;
-
-import org.biojava.dasobert.dasregistry.*;
-
-public interface Das2Source extends DasSource
-{
-
- public Das2Capability[] getDas2Capabilities();
-
- public void setDas2Capabilities(Das2Capability[] capabilities);
-
- /**
- * test if this is a DAS1 source represented as a DAS2 source if true - this
- * source can be converted into a DAS1 source by using
- * DasSourceConverter.toDas1(Das2Source);
- *
- * @return true if the DasSource has DAS1 capabilties
- */
- public boolean hasDas1Capabilities();
-}
+++ /dev/null
-/*
- * 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 Feb 9, 2006
- *
- */
-package org.biojava.dasobert.das2;
-
-import org.biojava.dasobert.dasregistry.*;
-
-public class Das2SourceImpl extends Das1Source implements Das2Source
-
-{
-
- Das2Capability[] capabilities;
-
- public Das2SourceImpl()
- {
- super();
-
- capabilities = new Das2Capability[0];
- }
-
- /**
- * compare if two DasSources are identical
- *
- */
- public boolean equals(DasSource other)
- {
-
- if (this == other)
- {
- return true;
- }
-
- if ((other == null) || (other.getClass() != this.getClass()))
- {
- return false;
- }
-
- // to compare if two Das2Sources are identical we do the following:
- // we check the capabilities
-
- Das2SourceImpl d2o = (Das2SourceImpl) other;
-
- if (nickname.equals(d2o.getNickname()))
- {
- return true;
- }
-
- Das2Capability[] othercaps = d2o.getDas2Capabilities();
-
- if (!(capabilities.length == othercaps.length))
- {
- return false;
- }
-
- for (int x = 0; x < capabilities.length; x++)
- {
- Das2Capability tmpcap = capabilities[x];
- boolean foundCap = false;
- for (int y = 0; y < othercaps.length; y++)
- {
- Das2Capability tmpcapo = othercaps[y];
- if (tmpcap.equals(tmpcapo))
- {
- foundCap = true;
- }
- }
- if (!foundCap)
- {
- return false;
- }
- }
-
- // TODO?
- // should we add a check for coordinate systems?
- // but we already check for the endpoints, that should be enough...
-
- return true;
-
- }
-
- public int hashCode()
- {
- int h = 7;
-
- h = 31 * h + (null == nickname ? 0 : nickname.hashCode());
-
- for (int x = 0; x < capabilities.length; x++)
- {
- Das2Capability cap = capabilities[x];
- h = 31 * h + cap.hashCode();
- }
-
- return h;
- }
-
- public boolean hasDas1Capabilities()
- {
-
- // test if any of the capabilities is a das1 capabilitiy
-
- for (int i = 0; i < capabilities.length; i++)
- {
- Das2Capability cap = capabilities[i];
- if (cap.isDas1Style())
- {
- return true;
- }
- }
- return false;
-
- }
-
- public String[] getCapabilities()
- {
- // todo mark as not needed / not appropriate ...
- return super.getCapabilities();
- }
-
- public void setCapabilities(String[] u)
- {
- // TODO Auto-generated method stub
- super.setCapabilities(u);
- }
-
- public Das2Capability[] getDas2Capabilities()
- {
- // TODO Auto-generated method stub
- return capabilities;
- }
-
- public void setDas2Capabilities(Das2Capability[] capabilities)
- {
- // TODO Auto-generated method stub
- this.capabilities = capabilities;
-
- }
-
-}
+++ /dev/null
-/*
- * 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 23, 2006
- *
- */
-package org.biojava.dasobert.das2;
-
-// import org.biojava.bio.program.das.dasalignment.DASException;
-import org.biojava.dasobert.dasregistry.*;
-
-public class DasSourceConverter
-{
-
- public DasSourceConverter()
- {
- super();
-
- }
-
- /**
- * convert a das2 source to a das 1 source. This only will work if is passes
- * the Das2Source.isDas1Source() test i.e. this is really a das1 server there
- *
- * @param das2source
- * a DAS2Source to be converted
- * @return a Das1Source
- * @throws DASException
- */
- public static Das1Source toDas1Source(Das2Source das2source)
- throws Exception
- {
- if (!das2source.hasDas1Capabilities())
- {
- throw new Exception(
- "this das source does not have das1 capabilitites");
- }
-
- Das1Source ds = new Das1Source();
- ds.setAdminemail(das2source.getAdminemail());
- ds.setDescription(das2source.getDescription());
- ds.setHelperurl(das2source.getHelperurl());
- ds.setRegisterDate(das2source.getRegisterDate());
- ds.setLeaseDate(das2source.getLeaseDate());
- ds.setLabels(das2source.getLabels());
- ds.setCoordinateSystem(das2source.getCoordinateSystem());
- ds.setNickname(das2source.getNickname());
- ds.setId(das2source.getId());
- ds.setLabels(das2source.getLabels());
-
- // convert the capabilitites to das1 capabiltities and get the url
- Das2Capability[] caps = das2source.getDas2Capabilities();
- String[] das1capabilitites = new String[caps.length];
- int DASPREFIXLENGTH = Das2CapabilityImpl.DAS1_CAPABILITY_PREFIX
- .length();
-
- for (int i = 0; i < caps.length; i++)
- {
- Das2Capability cap = caps[i];
-
- String c = cap.getCapability();
-
- das1capabilitites[i] = c.substring(DASPREFIXLENGTH, c.length());
-
- String query_uri = cap.getQueryUri();
-
- String url = query_uri.substring(0,
- (query_uri.length() - c.length() + DASPREFIXLENGTH));
- ds.setUrl(url);
- }
- ds.setCapabilities(das1capabilitites);
-
- return ds;
- }
-
-}
+++ /dev/null
-/*
- * 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 15, 2006
- *
- */
-package org.biojava.dasobert.das2.io;
-
-import java.util.*;
-
-import org.biojava.dasobert.das2.*;
-import org.biojava.dasobert.dasregistry.*;
-import org.xml.sax.*;
-import org.xml.sax.helpers.*;
-
-/**
- * a parser for the DAS2 sources response
- *
- * @author Andreas Prlic
- * @since 6:53:45 PM
- * @version %I% %G%
- */
-public class DAS2SourceHandler extends DefaultHandler
-{
-
- List sources;
-
- Das2Source currentSource;
-
- List coordinates;
-
- List capabilities;
-
- List labels;
-
- public static final String LABELPROPERTY = "label";
-
- public DAS2SourceHandler()
- {
- super();
-
- sources = new ArrayList();
- currentSource = new Das2SourceImpl();
- coordinates = new ArrayList();
- capabilities = new ArrayList();
- labels = new ArrayList();
- }
-
- private void startSource(String uri, String name, String qName,
- Attributes atts)
- {
-
- String id = atts.getValue("uri");
- String title = atts.getValue("title");
- String doc_ref = atts.getValue("doc_href");
- String description = atts.getValue("description");
-
- currentSource.setId(id);
- currentSource.setNickname(title);
- currentSource.setHelperurl(doc_ref);
- currentSource.setDescription(description);
-
- }
-
- private DasCoordinateSystem getCoordinateSystem(String uri, String name,
- String qname, Attributes atts)
- {
- // e.g. uri="http://das.sanger.ac.uk/dasregistry/coordsys/CS_LOCAL6"
- // source="Protein Sequence" authority="UniProt" test_range="P06213" />
- DasCoordinateSystem dcs = new DasCoordinateSystem();
- String id = atts.getValue("uri");
- dcs.setUniqueId(id);
-
- String source = atts.getValue("source");
- dcs.setCategory(source);
-
- String authority = atts.getValue("authority");
- dcs.setName(authority);
-
- String test_range = atts.getValue("test_range");
- dcs.setTestCode(test_range);
-
- try
- {
- String taxidstr = atts.getValue("taxid");
- int taxid = Integer.parseInt(taxidstr);
- dcs.setNCBITaxId(taxid);
- } catch (Exception e)
- {
- }
-
- String version = atts.getValue("version");
- if (version != null)
- {
- dcs.setVersion(version);
- }
-
- return dcs;
- }
-
- public void startElement(String uri, String name, String qName,
- Attributes atts)
- {
- // System.out.println("new element "+qName);
-
- if (qName.equals("SOURCE"))
- {
- // System.out.println("new Source " + atts.getValue(uri));
- currentSource = new Das2SourceImpl();
- coordinates = new ArrayList();
- capabilities = new ArrayList();
-
- startSource(uri, name, qName, atts);
-
- }
- else if (qName.equals("MAINTAINER"))
- {
- String email = atts.getValue("email");
- currentSource.setAdminemail(email);
- }
- else if (qName.equals("COORDINATES"))
- {
- DasCoordinateSystem dcs = getCoordinateSystem(uri, name, qName, atts);
- coordinates.add(dcs);
-
- }
- else if (qName.equals("CAPABILITY"))
- {
- Das2Capability cap = getCapability(uri, name, qName, atts);
- capabilities.add(cap);
- }
- else if (qName.equals("PROPERTY"))
- {
- addProperty(uri, name, qName, atts);
- }
- }
-
- private Das2Capability getCapability(String uri, String name,
- String qName, Attributes atts)
- {
- // e.g <CAPABILITY type="features"
- // query_id="http://das.biopackages.net/das/genome/yeast/S228C/feature" />
- Das2Capability cap = new Das2CapabilityImpl();
-
- String type = atts.getValue("type");
- cap.setCapability(type);
- String query_uri = atts.getValue("query_uri");
- cap.setQueryUri(query_uri);
- return cap;
-
- }
-
- private void addProperty(String uri, String name, String qName,
- Attributes atts)
- {
- String pname = atts.getValue("name");
- String label = atts.getValue("value");
- if (pname.equals(LABELPROPERTY))
- {
- labels.add(label);
- }
- }
-
- public void startDocument()
- {
- sources = new ArrayList();
- coordinates = new ArrayList();
- capabilities = new ArrayList();
- }
-
- public void endElement(String uri, String name, String qName)
- {
- if (qName.equals("SOURCE"))
- {
- currentSource.setDas2Capabilities((Das2Capability[]) capabilities
- .toArray(new Das2Capability[capabilities.size()]));
- // System.out.println("got coordinates " + coordinates.size());
- currentSource.setCoordinateSystem((DasCoordinateSystem[]) coordinates
- .toArray(new DasCoordinateSystem[coordinates.size()]));
-
- currentSource.setLabels((String[]) labels.toArray(new String[labels
- .size()]));
- labels.clear();
-
- // System.out.println("Das2SourceHandler endElement name " + name + " uri
- // " + uri + " qName " + qName);
- // System.out.println("Das2SourceHandler adding to source: " +
- // currentSource.getId());
- sources.add(currentSource);
- currentSource = new Das2SourceImpl();
- }
- }
-
- public DasSource[] getSources()
- {
- // System.out.println("Das2SourceHandler: source size: " + sources.size());
- return (DasSource[]) sources.toArray(new DasSource[sources.size()]);
- }
-
-}
+++ /dev/null
-/*
- * 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 Feb 24, 2006
- *
- */
-package org.biojava.dasobert.das2.io;
-
-import java.io.*;
-
-import org.biojava.dasobert.dasregistry.*;
-
-public interface DasSourceReader
-{
-
- public DasSource[] readDasSource(InputStream stream);
-}
+++ /dev/null
-/*
- * 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 Feb 24, 2006
- *
- */
-package org.biojava.dasobert.das2.io;
-
-import java.io.*;
-import java.net.*;
-import javax.xml.parsers.*;
-
-import org.biojava.dasobert.das.*;
-import org.biojava.dasobert.dasregistry.*;
-import org.xml.sax.*;
-
-public class DasSourceReaderImpl implements DasSourceReader
-{
-
- Exception loggedException;
-
- public DasSourceReaderImpl()
- {
- super();
- loggedException = null;
-
- // open the stream to a server and then parse the result ...
- }
-
- private InputStream open(URL url) throws java.io.IOException,
- java.net.ConnectException
- {
- InputStream inStream = null;
-
- HttpURLConnection huc = DAS_FeatureRetrieve.openHttpURLConnection(url);
-
- inStream = huc.getInputStream();
-
- return inStream;
-
- }
-
- public DasSource[] readDasSource(URL url)
- {
- DasSource[] sources = new DasSource[0];
-
- try
- {
- InputStream stream = open(url);
-
- sources = readDasSource(stream);
- } catch (Exception e)
- {
- System.err.println("Exception for url:"+url);
- e.printStackTrace();
- loggedException = e;
- }
- return sources;
- }
-
- /**
- * read a DAS2 sources response and return a list of DAS sources.
- *
- */
- public DasSource[] readDasSource(InputStream stream)
- {
-
- DasSource[] sources = new DasSource[0];
-
- try
- {
- SAXParserFactory spfactory = SAXParserFactory.newInstance();
-
- spfactory.setValidating(false);
-
- SAXParser saxParser = null;
-
- try
- {
- saxParser = spfactory.newSAXParser();
- } catch (ParserConfigurationException e)
- {
- e.printStackTrace();
- loggedException = e;
- }
-
- String vali = System.getProperty("XMLVALIDATION");
-
- boolean validation = false;
- if (vali != null)
- {
- if (vali.equals("true"))
- {
- validation = true;
- }
- }
-
- XMLReader xmlreader = saxParser.getXMLReader();
-
- // XMLReader xmlreader = XMLReaderFactory.createXMLReader();
- try
- {
- xmlreader.setFeature("http://xml.org/sax/features/validation",
- validation);
- } catch (SAXException e)
- {
- // logger.log(Level.FINE,"Cannot set validation " + validation);
- }
-
- try
- {
- xmlreader
- .setFeature(
- "http://apache.org/xml/features/nonvalidating/load-external-dtd",
- validation);
- } catch (SAXNotRecognizedException e)
- {
- e.printStackTrace();
- // logger.log(Level.FINE,"Cannot set load-external-dtd "+validation);
-
- }
-
- DAS2SourceHandler cont_handle = new DAS2SourceHandler();
-
- xmlreader.setContentHandler(cont_handle);
- xmlreader.setErrorHandler(new org.xml.sax.helpers.DefaultHandler());
- InputSource insource = new InputSource();
- insource.setByteStream(stream);
-
- xmlreader.parse(insource);
- sources = cont_handle.getSources();
-
- } catch (Exception e)
- {
- e.printStackTrace();
- loggedException = e;
- }
- return sources;
- }
-
- public Exception getLoggedException()
- {
- return loggedException;
- }
-
- public static void main(String[] args)
- {
- String url = "http://www.spice-3d.org/dasregistry/das2/sources/";
- DasSourceReaderImpl reader = new DasSourceReaderImpl();
- try
- {
- URL u = new URL(url);
- DasSource[] sources = reader.readDasSource(u);
- for (int i = 0; i < sources.length; i++)
- {
- DasSource ds = sources[i];
- System.out.println(ds.toString());
- }
-
- } catch (Exception e)
- {
- e.printStackTrace();
- }
-
- }
-
-}
+++ /dev/null
-/*
- * 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 15.04.2004
- * @author Andreas Prlic
- *
- */
-package org.biojava.dasobert.dasregistry;
-
-import java.util.*;
-
-// import org.biojava.dasobert.das2.io.DasSourceWriter;
-// import org.biojava.dasobert.das2.io.DasSourceWriterImpl;
-// import org.biojava.utils.xml.PrettyXMLWriter;
-
-/**
- * a simple Bean class to be returned via SOAP
- *
- * @author Andreas Prlic
- */
-
-public class Das1Source implements DasSource
-{
- String url;
-
- protected String nickname;
-
- String adminemail;
-
- String description;
-
- DasCoordinateSystem[] coordinateSystem;
-
- String[] capabilities;
-
- String[] labels;
-
- String helperurl;
-
- Date registerDate;
-
- Date leaseDate;
-
- String id;
-
- boolean local;
-
- Map properties;
-
- boolean alertAdmin;
-
- public static String EMPTY_ID = "UNK:-1";
-
- public Das1Source()
- {
- id = EMPTY_ID;
- url = "";
- adminemail = "";
- description = "";
- // String empty = "" ;
- nickname = "";
- coordinateSystem = new DasCoordinateSystem[0];
- // coordinateSystem[0] = new DasCoordinateSystem();
- capabilities = new String[0];
- labels = new String[0];
- // capabilities[0] = empty ;
- registerDate = new Date();
- leaseDate = new Date();
- helperurl = "";
- local = true;
- }
-
- public boolean equals(DasSource other)
- {
- System.out.println("Das1Source equals, comparing with other DasSource");
- if (!(other instanceof Das1Source))
- {
- return false;
- }
-
- Das1Source ods = (Das1Source) other;
-
- if (ods.getUrl().equals(url))
- {
- return true;
- }
- if (ods.getNickname().equals(nickname))
- {
- return true;
- }
- return false;
- }
-
- public int hashCode()
- {
- int h = 7;
-
- h = 31 * h + (null == nickname ? 0 : nickname.hashCode());
- h = 31 * h + (null == url ? 0 : url.hashCode());
-
- return h;
- }
-
- /**
- * the DAS2 string representation of this DAS source
- *
- * public String toString() {
- *
- * StringWriter writer = new StringWriter();
- *
- * PrintWriter pw = new PrintWriter(writer); PrettyXMLWriter xw = new
- * PrettyXMLWriter(pw);
- *
- * DasSourceWriter dswriter = new DasSourceWriterImpl(); try {
- * dswriter.writeDasSource(xw,this); } catch (IOException e){
- * e.printStackTrace(); }
- *
- * return writer.toString();
- * }
- */
- public void setLocal(boolean flag)
- {
- local = flag;
- }
-
- public boolean isLocal()
- {
- return local;
- }
-
- public void setId(String i)
- {
- id = i;
- }
-
- /**
- * get a the Id of the DasSource. The Id is a unique db identifier. The public
- * DAS-Registry has Auto_Ids that look like DASSOURCE:12345; public look like
- * XYZ:12345, where the XYZ prefix can be configured in the config file.
- */
- public String getId()
- {
- return id;
- }
-
- public void setNickname(String name)
- {
- nickname = name;
- }
-
- public String getNickname()
- {
- return nickname;
- }
-
- public void setUrl(String u)
- {
- char lastChar = u.charAt(u.length() - 1);
- if (lastChar != '/')
- {
- u += "/";
- }
-
- url = u;
- }
-
- public void setAdminemail(String u)
- {
- adminemail = u;
- }
-
- public void setDescription(String u)
- {
- description = u;
- }
-
- public void setCoordinateSystem(DasCoordinateSystem[] u)
- {
- coordinateSystem = u;
- }
-
- public void setCapabilities(String[] u)
- {
- capabilities = u;
- }
-
- public String getUrl()
- {
- return url;
- }
-
- public String getAdminemail()
- {
- return adminemail;
- }
-
- public String getDescription()
- {
- return description;
- }
-
- public String[] getCapabilities()
- {
- return capabilities;
- }
-
- /**
- * test if a this source has a particular capability
- *
- * @param testCapability
- * @return <code>true</code> if the server has this capability.
- */
- public boolean hasCapability(String testCapability)
- {
- for (int i = 0; i < capabilities.length; i++)
- {
- String cap = capabilities[i];
- if (cap.equals(testCapability))
- return true;
- }
- return false;
- }
-
- public DasCoordinateSystem[] getCoordinateSystem()
- {
- return coordinateSystem;
- }
-
- public void setRegisterDate(Date d)
- {
- registerDate = d;
- }
-
- public Date getRegisterDate()
- {
- return registerDate;
- }
-
- public void setLeaseDate(Date d)
- {
- leaseDate = d;
- }
-
- public Date getLeaseDate()
- {
- return leaseDate;
- }
-
- public void setLabels(String[] ls)
- {
- labels = ls;
- }
-
- public String[] getLabels()
- {
- return labels;
- }
-
- public void setHelperurl(String url)
- {
- helperurl = url;
- }
-
- public String getHelperurl()
- {
- return helperurl;
- }
-
- public void setAlertAdmin(boolean flag)
- {
- alertAdmin = flag;
- }
-
- public boolean getAlertAdmin()
- {
- return alertAdmin;
- }
-
- public Map getProperties()
- {
- return properties;
- }
-
- public void setProperties(Map properties)
- {
- this.properties = properties;
- }
-
-}
+++ /dev/null
-/*
- * 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.*;
-
-public class Das2Validator
-{
-
- public Das2Validator()
- {
- super();
-
- }
-
- public boolean validate(Das2Source ds)
- {
-
- // TODO this bit still needs to be implemented!
-
- return true;
- }
-
-}
+++ /dev/null
-/*
- * 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 15.04.2004
- * @author Andreas Prlic
- *
- */
-
-package org.biojava.dasobert.dasregistry;
-
-import java.util.*;
-
-/**
- * a comparator to sort DasSources
- *
- * @author Andreas Prlic
- */
-
-public abstract class DasCoordSysComparator implements Comparator
-{
-
- private final String name;
-
- private static final Map COMPS_BY_NAME;
-
- public DasCoordSysComparator(String str)
- {
- // System.out.println("new dasSourceComparator " + str);
- name = str;
- }
-
- public static final Comparator BY_NAME = new DasCoordSysComparator("name")
- {
- protected Comparable getField(DasCoordinateSystem ds)
- {
- return ds.getName();
- }
- };
-
- public static final Comparator BY_ID = new DasCoordSysComparator("id")
- {
- protected Comparable getField(DasCoordinateSystem ds)
- {
- return ds.getUniqueId();
- }
- };
-
- public static final Comparator BY_CATEGORY = new DasCoordSysComparator(
- "category")
- {
- protected Comparable getField(DasCoordinateSystem ds)
- {
- return ds.getCategory();
- }
- };
-
- public static final Comparator BY_ORGANISM = new DasCoordSysComparator(
- "organism")
- {
- protected Comparable getField(DasCoordinateSystem ds)
- {
- return ds.getOrganismName();
- }
- };
-
- public static final Comparator BY_TAXID = new DasCoordSysComparator(
- "taxid")
- {
- protected Comparable getField(DasCoordinateSystem ds)
- {
- return ds.getNCBITaxId() + "";
- }
- };
-
- static
- {
- COMPS_BY_NAME = new HashMap();
- COMPS_BY_NAME.put(BY_ID.toString(), BY_ID);
- COMPS_BY_NAME.put(BY_NAME.toString(), BY_NAME);
- COMPS_BY_NAME.put(BY_CATEGORY.toString(), BY_CATEGORY);
- COMPS_BY_NAME.put(BY_ORGANISM.toString(), BY_ORGANISM);
- COMPS_BY_NAME.put(BY_TAXID.toString(), BY_TAXID);
- }
-
- public static Comparator fromString(String name)
- {
- if (COMPS_BY_NAME.containsKey(name))
- {
- return (Comparator) COMPS_BY_NAME.get(name);
- }
- else
- {
- throw new IllegalArgumentException("Can't compare by key " + name);
- }
- }
-
- protected abstract Comparable getField(DasCoordinateSystem ds);
-
- /** compare two DasCoordSys objects */
- public int compare(Object a, Object b)
- {
- DasCoordinateSystem x = (DasCoordinateSystem) a;
- DasCoordinateSystem y = (DasCoordinateSystem) b;
- return getField(x).compareTo(getField(y));
- }
-
- public String toString()
- {
- return name;
- }
-
-}
+++ /dev/null
-/*
- * 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 15.04.2004
- * @author Andreas Prlic
- *
- */
-package org.biojava.dasobert.dasregistry;
-
-/**
- * a Bean to be returned via SOAP. It takes care of the DAS - coordinate Systems
- *
- * @author Andreas Prlic
- */
-public class DasCoordinateSystem
-{
-
- String name;
-
- String category;
-
- String organism_name;
-
- int ncbi_tax_id;
-
- String uniqueId;
-
- String version;
-
- String testCode;
-
- public DasCoordinateSystem()
- {
- uniqueId = "";
- name = "";
- category = "";
- organism_name = "";
- ncbi_tax_id = 0;
- version = "";
- testCode = "";
- }
-
- public boolean equals(DasCoordinateSystem other)
- {
- boolean match = true;
- System.out.println("comparing " + this.toString() + " to "
- + other.toString());
- // URI has piority
- if ((!uniqueId.equals("")) && (uniqueId.equals(other.getUniqueId())))
- {
- return true;
- }
-
- if (ncbi_tax_id != other.getNCBITaxId())
- {
- System.out.println("mismatch in ncbi tax id " + ncbi_tax_id + " != "
- + other.getNCBITaxId());
- match = false;
- }
- if (!version.equals(other.getVersion()))
- {
- System.out.println("mismatch in version");
- match = false;
- }
- if (!category.equals(other.getCategory()))
- {
- System.out.println("mismatch in category");
- match = false;
- }
- if (!name.equals(other.getName()))
- {
- System.out.println("mismatch in name");
- match = false;
- }
- System.out.println(" match: " + match);
-
- return match;
- }
-
- public int hashCode()
- {
- int h = 7;
-
- h = 31 * h + (null == name ? 0 : name.hashCode());
- h = 31 * h + (null == category ? 0 : category.hashCode());
-
- return h;
- }
-
- public Object clone()
- {
- DasCoordinateSystem d = new DasCoordinateSystem();
- d.setTestCode(testCode);
- d.setCategory(category);
- d.setName(name);
- d.setNCBITaxId(ncbi_tax_id);
- d.setUniqueId(getUniqueId());
- d.setOrganismName(getOrganismName());
- d.setVersion(getVersion());
- return d;
- }
-
- public String getTestCode()
- {
- return testCode;
- }
-
- public void setTestCode(String testCode)
- {
- if (testCode == null)
- {
- testCode = "";
- }
- this.testCode = testCode;
- }
-
- public void setUniqueId(String id)
- {
- uniqueId = id;
- }
-
- public String getUniqueId()
- {
- return uniqueId;
- }
-
- public void setName(String n)
- {
- name = n;
- }
-
- public String getName()
- {
- return name;
- }
-
- public void setCategory(String c)
- {
- category = c;
- }
-
- public String getCategory()
- {
- return category;
- }
-
- public void setOrganismName(String t)
- {
- organism_name = t;
- }
-
- public String getOrganismName()
- {
- return organism_name;
- }
-
- public void setNCBITaxId(int id)
- {
- ncbi_tax_id = id;
- }
-
- public int getNCBITaxId()
- {
- return ncbi_tax_id;
- }
-
- public String getVersion()
- {
- return version;
- }
-
- public void setVersion(String version)
- {
- if (version == null)
- {
- version = "";
- }
- this.version = version;
- }
-
- public String toString()
- {
- String nam = name;
- if (!version.equals(""))
- {
- nam += "_" + version;
- }
-
- if (organism_name.equals(""))
- {
- return nam + "," + category;
- }
- else
- {
- return nam + "," + category + "," + organism_name;
- }
- }
-
- public static DasCoordinateSystem fromString(String rawString)
- {
- String[] spl = rawString.split(",");
- DasCoordinateSystem dcs = new DasCoordinateSystem();
- if (spl.length == 2)
- {
- dcs.setName(spl[0]);
- dcs.setCategory(spl[1]);
- }
- if (spl.length == 3)
- {
- dcs.setName(spl[0]);
- dcs.setCategory(spl[1]);
- dcs.setOrganismName(spl[2]);
- }
- return dcs;
- }
-
-}
+++ /dev/null
-/*
- * 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 Feb 8, 2006
- *
- */
-package org.biojava.dasobert.dasregistry;
-
-import java.util.*;
-
-public interface DasSource
-{
-
- public void setLocal(boolean flag);
-
- public boolean isLocal();
-
- /**
- * compare if two das sources are equal
- *
- * @param ds
- * @return returns true if two DAS sources are equivalent
- */
- public boolean equals(DasSource ds);
-
- /**
- * classes that implement equals, should also implement hashKey
- *
- * @return the hash code of a das source
- */
- public int hashCode();
-
- public void setId(String i);
-
- /**
- * get a the Id of the DasSource. The Id is a unique db identifier. The public
- * DAS-Registry has Auto_Ids that look like DASSOURCE:12345; public look like
- * XYZ:12345, where the XYZ prefix can be configured in the config file.
- *
- * @return String the ID of a Das Source
- */
- public String getId();
-
- public void setNickname(String name);
-
- public String getNickname();
-
- public void setUrl(String u);
-
- public void setAdminemail(String u);
-
- public void setDescription(String u);
-
- public void setCoordinateSystem(DasCoordinateSystem[] u);
-
- public void setCapabilities(String[] u);
-
- /**
- * test if a this source has a particular capability
- *
- * @param testCapability
- * @return <code>true</code> if the server has this capability.
- */
- public boolean hasCapability(String testCapability);
-
- public String getUrl();
-
- public String getAdminemail();
-
- public String getDescription();
-
- public String[] getCapabilities();
-
- public DasCoordinateSystem[] getCoordinateSystem();
-
- public void setRegisterDate(Date d);
-
- public Date getRegisterDate();
-
- public void setLeaseDate(Date d);
-
- public Date getLeaseDate();
-
- public void setLabels(String[] ls);
-
- public String[] getLabels();
-
- public void setHelperurl(String url);
-
- public String getHelperurl();
-
- // TestCode is now part of the coordinate system!
- // public void setTestCode(String code);
- // public String getTestCode();
-
- public void setAlertAdmin(boolean flag);
-
- public boolean getAlertAdmin();
-
- /**
- * set Properties for this DAS source, e.g. project name
- *
- * @param properties
- */
- public void setProperties(Map properties);
-
- /**
- * get Properties for this DAS source
- *
- * @return Properties
- */
- public Map getProperties();
-
-}
\ No newline at end of file
+++ /dev/null
-/*
- * 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 15.04.2004
- * @author Andreas Prlic
- *
- */
-
-package org.biojava.dasobert.dasregistry;
-
-import java.util.*;
-
-/**
- * a comparator to sort DasSources
- *
- * @author Andreas Prlic, Thomas Down
- */
-
-public abstract class DasSourceComparator implements Comparator
-{
-
- private final String name;
-
- private static final Map COMPS_BY_NAME;
-
- private static final int TWODAYS = 1000 * 60 * 60 * 24 * 2;
-
- public DasSourceComparator(String str)
- {
- // System.out.println("new dasSourceComparator " + str);
- name = str;
- }
-
- public static final Comparator BY_ID = new DasSourceComparator("id")
- {
- protected Comparable getField(DasSource ds)
- {
- return ds.getId();
- }
- };
-
- public static final Comparator BY_NICKNAME = new DasSourceComparator(
- "nickname")
- {
- protected Comparable getField(DasSource ds)
- {
- return ds.getNickname();
- }
- };
-
- public static final Comparator BY_STATUS = new DasSourceComparator(
- "status")
- {
- protected Comparable getField(DasSource ds)
- {
-
- Date now = new Date();
-
- if (ds.getLeaseDate().getTime() < (now.getTime() - TWODAYS))
- return new Integer(0);
- return new Integer(1);
- }
- };
-
- public static final Comparator BY_REGISTER_DATE = new DasSourceComparator(
- "registerdate")
- {
- protected Comparable getField(DasSource ds)
- {
- return ds.getRegisterDate();
- }
- };
-
- public static final Comparator BY_LEASE_DATE = new DasSourceComparator(
- "leasedate")
- {
- protected Comparable getField(DasSource ds)
- {
- return ds.getLeaseDate();
- }
- };
-
- public static final Comparator BY_URL = new DasSourceComparator("url")
- {
- protected Comparable getField(DasSource ds)
- {
- return ds.getUrl();
- }
- };
-
- public static final Comparator BY_ADMIN_EMAIL = new DasSourceComparator(
- "adminemail")
- {
- protected Comparable getField(DasSource ds)
- {
- return ds.getAdminemail();
- }
- };
-
- public static final Comparator BY_DESCRIPTION = new DasSourceComparator(
- "description")
- {
- protected Comparable getField(DasSource ds)
- {
- return ds.getDescription();
- }
- };
-
- public static final Comparator BY_CAPABILITIES = new DasSourceComparator(
- "capabilities")
- {
- protected Comparable getField(DasSource ds)
- {
- String[] caps = ds.getCapabilities();
- return caps.length == 0 ? "" : caps[0];
- }
- };
-
- public static final Comparator BY_COORDINATE_SYSTEM = new DasSourceComparator(
- "coordinateSystem")
- {
- protected Comparable getField(DasSource ds)
- {
- DasCoordinateSystem[] dcss = ds.getCoordinateSystem();
- return dcss.length == 0 ? "" : dcss[0].toString();
- }
- };
-
- static
- {
- COMPS_BY_NAME = new HashMap();
- COMPS_BY_NAME.put(BY_ID.toString(), BY_ID);
- COMPS_BY_NAME.put(BY_NICKNAME.toString(), BY_NICKNAME);
- COMPS_BY_NAME.put(BY_REGISTER_DATE.toString(), BY_REGISTER_DATE);
- COMPS_BY_NAME.put(BY_LEASE_DATE.toString(), BY_LEASE_DATE);
- COMPS_BY_NAME.put(BY_URL.toString(), BY_URL);
- COMPS_BY_NAME.put(BY_ADMIN_EMAIL.toString(), BY_ADMIN_EMAIL);
- COMPS_BY_NAME.put(BY_DESCRIPTION.toString(), BY_DESCRIPTION);
- COMPS_BY_NAME.put(BY_CAPABILITIES.toString(), BY_CAPABILITIES);
- COMPS_BY_NAME
- .put(BY_COORDINATE_SYSTEM.toString(), BY_COORDINATE_SYSTEM);
- COMPS_BY_NAME.put(BY_STATUS.toString(), BY_STATUS);
-
- }
-
- public static Comparator fromString(String name)
- {
- if (COMPS_BY_NAME.containsKey(name))
- {
- return (Comparator) COMPS_BY_NAME.get(name);
- }
- else
- {
- throw new IllegalArgumentException("Can't compare by key " + name);
- }
- }
-
- protected abstract Comparable getField(DasSource ds);
-
- /** compare two DasSource objects */
- public int compare(Object a, Object b)
- {
-
- DasSource x = (DasSource) a;
- DasSource y = (DasSource) b;
- return getField(x).compareTo(getField(y));
- }
-
- public String toString()
- {
- return name;
- }
-
-}
+++ /dev/null
-/*
- * 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 17, 2006
- *
- */
-
-package org.biojava.dasobert.eventmodel;
-
-import org.biojava.dasobert.dasregistry.Das1Source;
-
-public class AbstractDasEvent
-{
-
- Das1Source dasSource;
-
- public Das1Source getSource()
- {
- return dasSource;
- }
-
- public void setSource(Das1Source source)
- {
- this.dasSource = source;
- }
-
-}
+++ /dev/null
-/*
- * 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 Oct 28, 2005
- *
- */
-package org.biojava.dasobert.eventmodel;
-
-import java.util.*;
-
-import org.biojava.dasobert.dasregistry.*;
-
-public class FeatureEvent extends AbstractDasEvent
-{
-
- Map[] features;
-
- int comeBackLater;
-
- String version;
-
- public FeatureEvent(Map[] features, Das1Source dasSource, String version)
- {
- super();
- this.features = features;
- this.dasSource = dasSource;
- comeBackLater = -1;
- this.version = version;
- }
-
- public int getComeBackLater()
- {
- return comeBackLater;
- }
-
- public void setComeBackLater(int comeBackLater)
- {
- this.comeBackLater = comeBackLater;
- }
-
- /**
- * get the features that have been found.
- *
- * do something like Map[] features = event.getFeatures();
- *
- * <pre>
- * for (int i = 0; i < features; i++)
- * {
- * Map f = features[i];
- * String type = (String) f.get("TYPE");
- * System.out.println(type);
- * }
- * </pre>
- *
- * @return a Map containng the features
- */
- public Map[] getFeatures()
- {
- return features;
- }
-
- /**
- * Get the version of the reference object that has been annotated. Compare
- * the version string with the version string obtained from the reference
- * server. If they don;t match there is a version problem between the
- * annotation and the reference!
- *
- * @return the version string (e.g. an MD5 digest of the reference sequence)
- */
- public String getVersion()
- {
- return version;
- }
-
- public void setVersion(String version)
- {
- this.version = version;
- }
-
-}
+++ /dev/null
-/*
- * 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 Oct 28, 2005
- *
- */
-package org.biojava.dasobert.eventmodel;
-
-// import org.biojava.spice.multipanel.eventmodel.FeatureEvent;
-
-/**
- * a feature listener that returns the raw features as returned by a DAS source.
- *
- */
-public interface FeatureListener
-{
-
- /**
- * new features have been returned from the Annotation server
- *
- * @param e
- */
- public void newFeatures(FeatureEvent e);
-
- /**
- * the server says that he is busy and we should try again in x seconds
- *
- * @param e
- */
- public void comeBackLater(FeatureEvent e);
-
-}
+++ /dev/null
-/*
- * 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 1, 2005
- *
- */
-package org.biojava.dasobert.eventmodel;
-
-/**
- * an interface for the listeners of new PDB code requested / new Uniprot code
- * requested
- *
- * @author Andreas Prlic
- *
- */
-public interface ObjectListener
-{
-
- /**
- * a new object has been requested
- *
- * @param accessionCode
- */
- public void newObjectRequested(String accessionCode);
-
- /**
- * no object with that accessionCode has been found
- *
- * @param accessionCode
- */
- public void noObjectFound(String accessionCode);
-
- // public void exceptionOccured(Exception e);
-
-}
+++ /dev/null
-/*
- * 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.eventmodel;
-
-public class SequenceEvent extends AbstractDasEvent
-{
-
- String sequence;
-
- String accessionCode;
-
- String version;
-
- public SequenceEvent(String accessionCode, String seq, String version)
- {
- super();
- sequence = seq;
- this.accessionCode = accessionCode;
- this.version = version; // bugfix here ?
- }
-
- public String getAccessionCode()
- {
- return accessionCode;
- }
-
- public String getSequence()
- {
- return sequence;
- }
-
- public String getVersion()
- {
- return version;
- }
-
- public void setVersion(String version)
- {
- this.version = version;
- }
-
-}
+++ /dev/null
-/*
- * 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 Jun 10, 2005
- *
- */
-package org.biojava.dasobert.eventmodel;
-
-/**
- * An interface fore events related to selections of sequence position, sequence
- * range and locking of the selection.
- *
- * @author Andreas Prlic
- *
- */
-public interface SequenceListener extends ObjectListener
-{
-
- /* select a certain sequence position */
- public void selectedSeqPosition(int position);
-
- /**
- * select a certain range of a sequence
- *
- * @param start
- * the start
- * @param end
- * the end of the range
- */
- public void selectedSeqRange(int start, int end);
-
- /**
- * the current selecetion is locked and can not be changed
- *
- * @param flag
- * true if selection should be locked
- */
- public void selectionLocked(boolean flag);
-
- public void newSequence(SequenceEvent e);
-
- /**
- * clear what has been selected
- *
- *
- */
- public void clearSelection();
-}
+++ /dev/null
-/*
- * 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 Feb 9, 2005
- *
- */
-package org.biojava.dasobert.feature;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * An Abstract class representing a Feature as being diplayed in the
- * SeqFeaturePanel A feature corresponds to everything that is visible in a
- * "line" and can contain one or multiple Segments.
- *
- *
- * @author Andreas Prlic
- *
- */
-public abstract class AbstractFeatureTrack implements FeatureTrack,
- Cloneable
-{
-
- String name;
-
- String method;
-
- String type;
-
- List segments;
-
- String note;
-
- String link;
-
- String source;
-
- String score;
-
- String orientation;
-
- String typeID;
-
- String typeCategory;
-
- public AbstractFeatureTrack()
- {
- source = "Unknown";
- method = "Unknown";
- type = "Unknown";
- note = "";
- link = "";
- score = "";
- orientation = null;
- segments = new ArrayList();
-
- }
-
- public abstract Object clone();
-
- public String toString()
- {
- String str = "Feature: method: " + method + " type: " + type;
- if (name != null)
- str += " name: " + name;
-
- if ((note != null) && (!note.equals("null")))
- {
- if (note.length() > 40)
- str += "note: " + note.substring(0, 39) + "...";
- else
- str += " note: " + note;
- }
- str += " # segments: " + segments.size();
- return str;
- }
-
- /**
- * returns true if the specified sequence position is within the range of this
- * Feature
- *
- * @param seqPosition
- * the position to check
- * @return true if the position is within the ranges of the segments of this
- * feature
- */
- public boolean overlaps(int seqPosition)
- {
- List segments = getSegments();
- Iterator iter = segments.iterator();
-
- while (iter.hasNext())
- {
-
- Segment seg = (Segment) iter.next();
- if (seg.overlaps(seqPosition))
- return true;
- }
-
- return false;
- }
-
- public void setSource(String s)
- {
- source = s;
- }
-
- public String getSource()
- {
- return source;
- };
-
- public void setName(String nam)
- {
- name = nam;
- }
-
- public String getName()
- {
- return name;
- }
-
- public void setMethod(String methd)
- {
- method = methd;
- }
-
- public String getMethod()
- {
- return method;
- }
-
- public void setType(String typ)
- {
- type = typ;
- }
-
- public String getType()
- {
- return type;
- }
-
- public void setNote(String nte)
- {
- if (nte != null)
- note = nte;
- }
-
- public String getNote()
- {
- return note;
- }
-
- public void setLink(String lnk)
- {
- link = lnk;
- }
-
- public String getLink()
- {
- return link;
- }
-
- public void setScore(String s)
- {
- score = s;
- }
-
- public String getScore()
- {
- return score;
- }
-
- /** add a segment to this feature */
- public void addSegment(int start, int end, String name)
- {
- Segment s = new SegmentImpl();
- s.setStart(start);
- s.setEnd(end);
- s.setName(name);
- s.setParent(this);
- segments.add(s);
- }
-
- public void addSegment(Segment s)
- {
- s.setParent(this);
- segments.add(s);
- }
-
- public List getSegments()
- {
- return segments;
- }
-
- public String getOrientation()
- {
- return orientation;
- }
-
- public void setOrientation(String orientation)
- {
- this.orientation = orientation;
- }
-
- /**
- * test if two features are equivalent important: only comares type,method and
- * source. The individual segments are not compared!
- *
- */
- public boolean equals(FeatureTrack feat)
- {
- // if ( note == null) {
- // if (( feat.getNote() == null ) ||
- // ( feat.getNote().equals(""))) {
- // } else if ( this.note.equals(feat.getNote())){
- // return true;
- // }
- if (this.type.equals(feat.getType()))
- {
- if (this.method.equals(feat.getMethod()))
- {
- if (this.source.equals(feat.getSource()))
- {
- if (this.note.equals(feat.getNote()))
- {
- return true;
- }
- }
- }
- }
- return false;
-
- }
-
- public String getTypeCategory()
- {
- // TODO Auto-generated method stub
- return typeCategory;
- }
-
- public String getTypeID()
- {
- // TODO Auto-generated method stub
- return typeID;
- }
-
- public void setTypeCategory(String typeCategory)
- {
- this.typeCategory = typeCategory;
-
- }
-
- public void setTypeID(String typeID)
- {
- this.typeID = typeID;
-
- }
-
-}
+++ /dev/null
-/*
- * 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 May 22, 2007
- *
- */
-
-package org.biojava.dasobert.feature;
-
-import java.awt.Color;
-
-public abstract class AbstractSegment implements Segment, Cloneable
-{
- int start;
-
- int end;
-
- String name;
-
- Color color;
-
- FeatureTrack parent;
-
- String txtColor;
-
- String note;
-
- public abstract Object clone();
-
- /*
- * (non-Javadoc)
- *
- * @see org.biojava.spice.feature.SegmentIF#toString()
- */
- public String toString()
- {
- String str = "Segment: " + name + " " + start + " " + end;
- if ((note != null) && (!note.equals("null")))
- if (note.length() > 40)
- str += note.substring(0, 39) + "...";
- else
- str += note;
- return str;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.biojava.spice.feature.SegmentIF#getNote()
- */
- public String getNote()
- {
- return note;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.biojava.spice.feature.SegmentIF#setNote(java.lang.String)
- */
- public void setNote(String note)
- {
- this.note = note;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.biojava.spice.feature.SegmentIF#setStart(int)
- */
- public void setStart(int strt)
- {
- start = strt;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.biojava.spice.feature.SegmentIF#getStart()
- */
- public int getStart()
- {
- return start;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.biojava.spice.feature.SegmentIF#setEnd(int)
- */
- public void setEnd(int ed)
- {
- end = ed;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.biojava.spice.feature.SegmentIF#getEnd()
- */
- public int getEnd()
- {
- return end;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.biojava.spice.feature.SegmentIF#setName(java.lang.String)
- */
- public void setName(String nam)
- {
- name = nam;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.biojava.spice.feature.SegmentIF#getName()
- */
- public String getName()
- {
- return name;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.biojava.spice.feature.SegmentIF#setColor(java.awt.Color)
- */
- public void setColor(Color col)
- {
- color = col;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.biojava.spice.feature.SegmentIF#getColor()
- */
- public Color getColor()
- {
- return color;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.biojava.spice.feature.SegmentIF#setParent(org.biojava.spice.feature.Feature)
- */
- public void setParent(FeatureTrack f)
- {
- parent = f;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.biojava.spice.feature.SegmentIF#getParent()
- */
- public FeatureTrack getParent()
- {
- return parent;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.biojava.spice.feature.SegmentIF#setTxtColor(java.lang.String)
- */
- public void setTxtColor(String str)
- {
- txtColor = str;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.biojava.spice.feature.SegmentIF#getTxtColor()
- */
- public String getTxtColor()
- {
- return txtColor;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.biojava.spice.feature.SegmentIF#overlaps(int)
- */
- public boolean overlaps(int seqPosition)
- {
- if ((getStart() <= seqPosition) && (getEnd() >= seqPosition))
- {
- return true;
- }
- return false;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.biojava.spice.feature.SegmentIF#overlaps(org.biojava.spice.feature.Segment)
- */
- public boolean overlaps(Segment segment)
- {
- if (!(this.start <= this.end))
- throw new IndexOutOfBoundsException("start > end for segment" + this);
-
- if (!(segment.getStart() <= segment.getEnd()))
- throw new IndexOutOfBoundsException("start > end for segment"
- + segment);
-
- // start must be in region of other
- if (this.start >= segment.getStart())
- {
- if (this.start <= segment.getEnd())
- {
- return true;
- }
- }
- // or end must be in region of other..
- if (this.end >= segment.getStart())
- {
- if (this.end <= segment.getEnd())
- {
- return true;
- }
- }
-
- if (this.start <= segment.getStart())
- {
- if (this.end >= segment.getEnd())
- {
- return true;
- }
- }
- return false;
- }
-}
+++ /dev/null
-/*
- * 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 23.09.2004
- * @author Andreas Prlic
- *
- */
-
-package org.biojava.dasobert.feature;
-
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * a comparator to sort Features byt type
- *
- * @author Andreas Prlic
- */
-
-public class FeatureComparator implements Comparator
-{
-
- public FeatureComparator()
- {
- }
-
- public int compare(Object a, Object b)
- {
- FeatureTrack x = (FeatureTrack) a;
- FeatureTrack y = (FeatureTrack) b;
-
- String typea = x.getType();
- String typeb = y.getType();
-
- if (!typea.equals(typeb))
- return typea.compareTo(typeb);
-
- List s1 = x.getSegments();
- List s2 = y.getSegments();
-
- Iterator iter1 = s1.iterator();
- Iterator iter2 = s2.iterator();
-
- while (iter1.hasNext())
- {
- Segment seg1 = (Segment) iter1.next();
- int start1 = seg1.getStart();
-
- while (iter2.hasNext())
- {
- Segment seg2 = (Segment) iter2.next();
- int start2 = seg2.getStart();
-
- if (start1 < start2)
- {
- return -1;
- }
- if (start1 > start2)
- {
- return 1;
- }
-
- }
- }
-
- return 0;
-
- }
-
-}
+++ /dev/null
-/*
- * 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 23.09.2004
- * @author Andreas Prlic
- *
- */
-
-package org.biojava.dasobert.feature;
-
-import java.util.Comparator;
-import java.util.Map;
-
-/**
- * a comparator to sort Features if they are still in a Map ( sorts by type )
- *
- * @author Andreas Prlic
- */
-
-public class FeatureMapComparator implements Comparator
-{
-
- public FeatureMapComparator()
- {
- }
-
- public int compare(Object a, Object b)
- {
- Map x = (Map) a;
- Map y = (Map) b;
-
- String typea = (String) x.get("TYPE");
- String typeb = (String) y.get("TYPE");
-
- if (isSecstruc(typea) && isSecstruc(typeb))
- {
- return 0;
- }
- return typea.compareTo(typeb);
- }
-
- public boolean isSecstruc(String type)
- {
- if (type.equals("HELIX") || type.equals("STRAND")
- || type.equals("TURN"))
- {
- return true;
- }
- return false;
- }
-
-}
+++ /dev/null
-/*
- * 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 Feb 9, 2005
- *
- */
-package org.biojava.dasobert.feature;
-
-import java.util.List;
-
-/**
- * A feature corresponds to a track in Ensembl
- *
- * @author Andreas Prlic
- *
- */
-public interface FeatureTrack
-{
-
- public Object clone();
-
- /**
- * returns true if the specified sequence position is within the range of this
- * Feature
- *
- * @param seqPosition
- * the position to check
- * @return true if the position is within the ranges of the segments of this
- * feature
- */
- public boolean overlaps(int seqPosition);
-
- public String toString();
-
- public void setSource(String s);
-
- public String getSource();
-
- public void setName(String nam);
-
- public String getName();
-
- public void setMethod(String methd);
-
- public String getMethod();
-
- public void setType(String typ);
-
- public String getType();
-
- public void setNote(String nte);
-
- public String getNote();
-
- public void setLink(String lnk);
-
- public String getLink();
-
- public void setScore(String score);
-
- public String getScore();
-
- public void setOrientation(String orientation);
-
- public String getOrientation();
-
- /**
- * test if two features are equivalent
- *
- * @param feat
- * feature to compare with
- * @return true if equivalend
- */
- public abstract boolean equals(FeatureTrack feat);
-
- /**
- * add a segment to this feature
- *
- * @param start
- * position
- * @param end
- * position
- * @param name
- * of feature
- */
- public abstract void addSegment(int start, int end, String name);
-
- public abstract void addSegment(Segment s);
-
- public abstract List getSegments();
-
- /**
- * set the data from the DAS - type - id field (used for Ontology support)
- *
- * @param typeID
- */
- public void setTypeID(String typeID);
-
- /**
- * set the data from the DAS - type - category field (used for Ontology
- * support)
- *
- * @param typeCategory
- */
- public void setTypeCategory(String typeCategory);
-
- public String getTypeID();
-
- public String getTypeCategory();
-
-}
\ No newline at end of file
+++ /dev/null
-/*
- * 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 5, 2007
- *
- */
-
-package org.biojava.dasobert.feature;
-
-import java.awt.Color;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-/**
- * converts the features from their "raw" representation as a Map into a Feature
- * class
- *
- * @author Andreas Prlic
- *
- */
-public class FeatureTrackConverter
-{
-
- public static final Color HELIX_COLOR = new Color(255, 51, 51);
-
- public static final Color STRAND_COLOR = new Color(255, 204, 51);
-
- public static final Color TURN_COLOR = new Color(204, 204, 204);
-
- // some annotation types, for which there is a special treatment
- public static final String DISULFID_TYPE = "DISULFID";
-
- public static final String SECSTRUC_TYPE = "SECSTRUC";
-
- public static final String METAL_TYPE = "METAL";
-
- public static final String MSD_SITE_TYPE = "MSD_SITE";
-
- String type;
-
- public static final String TYPE_HISTOGRAM = "histogram";
-
- public static final String TYPE_DEFAULT = "default";
-
- // rotate between these colors
- public static final Color[] entColors = new Color[]
- { new Color(51, 51, 255), // blue
- new Color(102, 255, 255), // cyan
- new Color(153, 255, 153), // green
- new Color(153, 255, 153), // green
- new Color(255, 153, 153), // pink
- new Color(255, 51, 51), // red
- new Color(255, 51, 255) // pink
- };
-
- public static final String[] txtColors = new String[]
- { "blue", "pink", "green", "yellow", "red", "cyan", "pink" };
-
- Map[] stylesheet;
-
- boolean isHistogram = false;
-
- public FeatureTrackConverter()
- {
- type = TYPE_DEFAULT;
- stylesheet = new Map[0];
- }
-
- public FeatureTrackConverter(Map[] stylesheet)
- {
-
- if (stylesheet == null)
- stylesheet = new Map[0];
-
- this.stylesheet = stylesheet;
-
- }
-
- public FeatureTrackConverter(Map[] stylesheet, boolean isHistogram)
- {
- this(stylesheet);
- this.isHistogram = isHistogram;
- if (isHistogram)
- type = TYPE_HISTOGRAM;
- }
-
- public String getType()
- {
- return type;
- }
-
- public void setType(String type)
- {
- if (type.equals(TYPE_HISTOGRAM))
- isHistogram = true;
- this.type = type;
- }
-
- public boolean isHistogram()
- {
- return isHistogram;
- }
-
- public void setHistogram(boolean isHistogram)
- {
- this.isHistogram = isHistogram;
- }
-
- public FeatureTrack[] convertMap2Features(Map[] mapfeatures)
- {
- List features = new ArrayList();
-
- boolean first = true;
- boolean secstruc = false;
- boolean isGroup = false;
-
- FeatureTrack feat = null;
- Segment segment = null;
-
- int featuresCounter = 0;
- String prevGroup = null;
-
- for (int i = 0; i < mapfeatures.length; i++)
- {
-
- Map currentFeatureMap = mapfeatures[i];
- String type = (String) currentFeatureMap.get("TYPE");
-
- String group = (String) currentFeatureMap.get("GROUP");
- if (group != null)
- {
- if (prevGroup != null)
- {
- if (group.equals(prevGroup))
- {
- feat.setName(group);
- isGroup = true;
- }
- else
- {
- isGroup = false;
- }
- }
- else
- {
- isGroup = false;
- }
- }
- else
- {
- isGroup = false;
- }
-
- // we are skipping literature references for the moment
- // TODO: add a display to spice for non-positional features
- //
- if (type.equals("reference") || type.equals("GOA"))
- {
- continue;
- }
-
- if (!first)
- {
- // if not first feature
-
- if ((!secstruc) && (!isGroup))
- {
-
- // if not secondary structure and not in a group ...
- features = testAddFeatures(features, feat);
-
- }
- else if (!(type.equals("HELIX") || type.equals("STRAND") || type
- .equals("TURN")))
- {
- // end of secondary structure
- secstruc = false;
- if (feat != null && (!isGroup))
- {
- features = testAddFeatures(features, feat);
- }
-
- }
- } // end of not first
-
- first = false;
- if ((!secstruc) && (!isGroup))
- {
- featuresCounter += 1;
- feat = getNewFeat(currentFeatureMap);
- }
-
- if (type.equals("STRAND"))
- {
- secstruc = true;
- currentFeatureMap.put("colorTxt", "yellow");
- feat.setName("SECSTRUC");
- feat.setType("SECSTRUC");
- }
-
- else if (type.equals("HELIX"))
- {
- secstruc = true;
- currentFeatureMap.put("colorTxt", "red");
- feat.setName("SECSTRUC");
- feat.setType("SECSTRUC");
- }
-
- else if (type.equals("TURN"))
- {
- secstruc = true;
- currentFeatureMap.put("colorTxt", "white");
-
- feat.setName("SECSTRUC");
- feat.setType("SECSTRUC");
- }
- else
- {
- secstruc = false;
- currentFeatureMap.put("colorTxt", txtColors[featuresCounter
- % txtColors.length]);
- if (!isGroup)
- {
- try
- {
- feat.setName(type);
-
- } catch (NullPointerException e)
- {
- // e.printStackTrace();
- feat.setName("null");
- }
- }
- }
-
- segment = getNewSegment(currentFeatureMap);
-
- feat.addSegment(segment);
- prevGroup = group;
- }
-
- if (feat != null)
- features = testAddFeatures(features, feat);
-
- return (FeatureTrack[]) features.toArray(new FeatureTrack[features
- .size()]);
- }
-
- /**
- * test if this features is added as a new feature to the features list, or if
- * it is joint with an already existing one...
- *
- * @param features
- * @param newFeature
- * @return a List of FeatureTrack objects
- */
- protected List testAddFeatures(List features, FeatureTrack newFeature)
- {
-
- // System.out.println("testing " + newFeature + " " +
- // newFeature.getScore());
- Iterator iter = features.iterator();
-
- if (isHistogramFeatureType(newFeature))
- {
-
- // return histogram type features
- type = TYPE_HISTOGRAM;
-
- Segment seg = getHistogramSegmentFromFeature(newFeature);
-
- while (iter.hasNext())
- {
- FeatureTrack knownFeature = (FeatureTrack) iter.next();
- String knownType = knownFeature.getType();
-
- // System.out.println("found histogram style " + feat);
- // set type of this DAS source to being HISTOGRAM style
-
- if (knownType.equals(newFeature.getType()))
- {
- // convert the feature into a HistogramSegment and add to the already
- // known feature
-
- knownFeature.addSegment(seg);
- // we can return now
- return features;
- }
-
- }
- // we could not link this to any existing feature
- // convert it to a new HistogramFeature
- HistogramFeature hfeat = new HistogramFeature();
-
- hfeat.setLink(newFeature.getLink());
- hfeat.setMethod(newFeature.getMethod());
- hfeat.setName(newFeature.getName());
- hfeat.setNote(newFeature.getNote());
- hfeat.setScore("0");
- hfeat.setSource(newFeature.getSource());
- hfeat.addSegment(seg);
- hfeat.setType(newFeature.getType());
-
- newFeature = hfeat;
- features.add(newFeature);
- return features;
- }
-
- while (iter.hasNext())
- {
- FeatureTrack knownFeature = (FeatureTrack) iter.next();
- // this only compares method source and type ...
- boolean sameFeat = false;
- if (knownFeature.equals(newFeature))
- sameFeat = true;
-
- if ((knownFeature.getSource().equals(newFeature.getSource()))
- && (knownFeature.getMethod().equals(newFeature.getMethod()))
- && (knownFeature.getNote().equals(newFeature.getNote()))
- && isSecondaryStructureFeat(knownFeature)
- && isSecondaryStructureFeat(newFeature))
- sameFeat = true;
-
- if (sameFeat)
- {
-
- // seems to be of same type, method and source, so check if the segments
- // can be joined
-
- List tmpsegs = knownFeature.getSegments();
- Iterator segiter = tmpsegs.iterator();
- List newsegs = newFeature.getSegments();
- Iterator newsegsiter = newsegs.iterator();
- boolean overlap = false;
- while (newsegsiter.hasNext())
- {
- Segment newseg = (Segment) newsegsiter.next();
-
- while (segiter.hasNext())
- {
- Segment tmpseg = (Segment) segiter.next();
-
- if (tmpseg.overlaps(newseg))
- overlap = true;
- }
- }
-
- if (!overlap)
- {
- // add all new segments to old features...
- newsegsiter = newsegs.iterator();
- while (newsegsiter.hasNext())
- {
- Segment newseg = (Segment) newsegsiter.next();
- knownFeature.addSegment(newseg);
- }
-
- return features;
- }
- }
-
- }
-
- // if we get here, the features could not be joint with any other one, so
- // there is always some overlap
- // add to the list of known features
- features.add(newFeature);
- return features;
- }
-
- private FeatureTrack getNewFeat(Map currentFeatureMap)
- {
- FeatureTrack feat = new FeatureTrackImpl();
- // logger.finest(currentFeatureMap);
- // System.out.println("DrawableDasSource " + currentFeatureMap);
- feat.setSource((String) currentFeatureMap.get("dassource"));
- feat.setName((String) currentFeatureMap.get("NAME"));
- feat.setType((String) currentFeatureMap.get("TYPE"));
- feat.setLink((String) currentFeatureMap.get("LINK"));
- feat.setNote((String) currentFeatureMap.get("NOTE"));
-
- String typeID = (String) currentFeatureMap.get("TYPE_ID");
- String typeCategory = (String) currentFeatureMap.get("TYPE_CATEGORY");
- feat.setTypeID(typeID);
- feat.setTypeCategory(typeCategory);
-
- String method = (String) currentFeatureMap.get("METHOD");
- if (method == null)
- {
- method = "";
- }
- feat.setMethod(method);
- feat.setScore((String) currentFeatureMap.get("SCORE"));
- return feat;
- }
-
- private Segment getNewSegment(Map featureMap)
- {
- Segment s = new SegmentImpl();
- String sstart = (String) featureMap.get("START");
- String send = (String) featureMap.get("END");
- int start = Integer.parseInt(sstart);
- int end = Integer.parseInt(send);
- s.setStart(start);
- s.setEnd(end);
- s.setName((String) featureMap.get("TYPE"));
- s.setTxtColor((String) featureMap.get("colorTxt"));
- s.setColor((Color) featureMap.get("color"));
- s.setNote((String) featureMap.get("NOTE"));
- return s;
-
- }
-
- private boolean isSecondaryStructureFeat(FeatureTrack feat)
- {
- String type = feat.getType();
- if (type.equals("HELIX") || type.equals("STRAND")
- || type.equals("TURN"))
- return true;
- return false;
- }
-
- private boolean isHistogramFeatureType(FeatureTrack feat)
- {
- String ftype = feat.getType();
-
- Map[] style = stylesheet;
-
- // System.out.println("is HistogramFeature type " + ftype + " " + style );
-
- // todo : move this info into a config file...
-
- if (ftype.equals("hydrophobicity"))
- {
- return true;
- }
- if (getType().equals(TYPE_HISTOGRAM))
- return true;
-
- if (style != null)
- {
-
- for (int i = 0; i < style.length; i++)
- {
- Map m = style[i];
-
- // make sure the stylesheet is for this feature type
- String styleType = (String) m.get("type");
- if (styleType != null)
- {
- if (!styleType.equals(ftype))
- {
- continue;
- }
- }
- else
- {
- continue;
- }
-
- String type = (String) m.get("style");
- if (type != null)
- {
- // System.out.println("stylesheet type " + type);
- if (type.equals("gradient") || (type.equals("lineplot"))
- || (type.equals("histogram")))
- {
-
- return true;
- }
- }
- }
- }
-
- return false;
- }
-
- private HistogramSegment getHistogramSegmentFromFeature(FeatureTrack feat)
- {
- HistogramSegment s = new HistogramSegment();
-
- double score = 0.0;
-
- try
- {
- score = Double.parseDouble(feat.getScore());
-
- } catch (Exception e)
- {
- // e.printStackTrace();
- }
- s.setScore(score);
- List segments = feat.getSegments();
- if (segments.size() > 0)
- {
- Segment seg = (Segment) segments.get(0);
- s.setName(seg.getName());
- s.setStart(seg.getStart());
- s.setEnd(seg.getEnd());
- s.setNote(seg.getNote());
- s.setColor(seg.getColor());
- s.setTxtColor(seg.getTxtColor());
- }
-
- return s;
- }
-
-}
+++ /dev/null
-/*
- * 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 22.09.2004
- * @author Andreas Prlic
- *
- */
-
-package org.biojava.dasobert.feature;
-
-import java.util.Iterator;
-
-/**
- * a class to store FeatureData and to visualize them coordinate system of
- * features is always UniProt ! PDBresnum features served by DAS need to be
- * converted into UniProt coord sys first.
- *
- * a feature consists of one or several segments. segmetns cotnains <start> and
- * <end> information.
- *
- * @author Andreas Prlic
- */
-public class FeatureTrackImpl extends AbstractFeatureTrack implements
- FeatureTrack
-
-{
-
- public Object clone()
- {
-
- FeatureTrack f = new FeatureTrackImpl();
- f.setName(name);
- f.setMethod(method);
- f.setType(type);
- f.setNote(note);
- f.setLink(link);
- f.setSource(source);
- f.setScore(score);
-
- Iterator iter = segments.iterator();
-
- while (iter.hasNext())
- {
- Segment s = (Segment) iter.next();
- f.addSegment((Segment) s.clone());
- }
-
- return f;
-
- }
-
-}
+++ /dev/null
-/*
- * 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 May 22, 2007
- *
- */
-
-package org.biojava.dasobert.feature;
-
-import java.util.Iterator;
-
-/**
- * a class that represents Histogram Style features in addition to normal
- * features they know about Max and Minimum scores for the whole line Histogram
- * feautes have only one (Histogram) Segment, which contains the scores for each
- * position
- *
- * @author Andreas Prlic
- *
- */
-public class HistogramFeature extends AbstractFeatureTrack
-{
-
- double max;
-
- double min;
-
- public HistogramFeature()
- {
- super();
- // TODO Auto-generated constructor stub
- }
-
- public double getMax()
- {
- return max;
- }
-
- public void setMax(double max)
- {
- this.max = max;
- }
-
- public double getMin()
- {
- return min;
- }
-
- public void setMin(double min)
- {
- this.min = min;
- }
-
- public Object clone()
- {
-
- HistogramFeature f = new HistogramFeature();
-
- f.setName(name);
- f.setMethod(method);
- f.setType(type);
- f.setNote(note);
- f.setLink(link);
- f.setSource(source);
- f.setScore(score);
-
- Iterator iter = segments.iterator();
-
- while (iter.hasNext())
- {
- Segment s = (Segment) iter.next();
- f.addSegment((Segment) s.clone());
- }
-
- return f;
-
- }
-
-}
+++ /dev/null
-/*
- * 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 May 22, 2007
- *
- */
-
-package org.biojava.dasobert.feature;
-
-/**
- * a Histogram segment is an extension of the standard Segment with a score
- *
- * @author Andreas Prlic
- *
- */
-public class HistogramSegment extends AbstractSegment
-{
-
- double score;
-
- public HistogramSegment()
- {
- super();
-
- }
-
- public double getScore()
- {
- return score;
- }
-
- public void setScore(double score)
- {
- this.score = score;
- }
-
- public Object clone()
- {
-
- Segment s = new HistogramSegment();
- s.setStart(start);
- s.setEnd(end);
- s.setName(name);
- s.setColor(color);
- s.setTxtColor(txtColor);
- s.setNote(note);
- return s;
-
- }
-
-}
+++ /dev/null
-/*
- * 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 22.09.2004
- * @author Andreas Prlic
- *
- */
-
-package org.biojava.dasobert.feature;
-
-import java.awt.Color;
-
-/** a class to keep track of location information for a feature */
-public interface Segment
-{
-
- public Object clone();
-
- public String toString();
-
- public String getNote();
-
- public void setNote(String note);
-
- public void setStart(int strt);
-
- public int getStart();
-
- public void setEnd(int ed);
-
- public int getEnd();
-
- public void setName(String nam);
-
- public String getName();
-
- public void setColor(Color col);
-
- public Color getColor();
-
- public void setParent(FeatureTrack f);
-
- public FeatureTrack getParent();
-
- public void setTxtColor(String str);
-
- public String getTxtColor();
-
- /**
- * returns true if the specified sequence position is within the range of this
- * Segment
- *
- * @param seqPosition
- * the position to check
- * @return true if seqPos >= start && seqPos <= end
- */
- public boolean overlaps(int seqPosition);
-
- /**
- * tests if two segments are overlapping
- *
- * @param segment
- * to compare with
- * @return true if segments overlap
- */
- public boolean overlaps(Segment segment);
-
-}
+++ /dev/null
-/*
- * 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 May 22, 2007
- *
- */
-
-package org.biojava.dasobert.feature;
-
-import java.util.Comparator;
-
-public class SegmentComparator implements Comparator
-{
-
- public int compare(Object arg0, Object arg1)
- {
-
- Segment s1 = (Segment) arg0;
- Segment s2 = (Segment) arg1;
-
- if (s1.getStart() < s2.getStart())
- return -1;
- if (s1.getStart() > s2.getStart())
- return 1;
-
- return 0;
- }
-
-}
+++ /dev/null
-/*
- * 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 May 22, 2007
- *
- */
-
-package org.biojava.dasobert.feature;
-
-import java.awt.Color;
-
-public class SegmentImpl extends AbstractSegment
-{
-
- public SegmentImpl()
- {
- super();
- start = 0;
- end = 0;
- name = "Unknown";
- color = Color.white;
- txtColor = "white";
- parent = null;
- note = "";
- }
-
- public boolean equals(Segment s)
- {
- if (s == null)
- return false;
-
- if ((start == s.getStart()) && (end == s.getEnd())
- && (name.equals(s.getName())))
- {
- if (note == null)
- {
- if (s.getNote() == null)
- return true;
- }
- else
- {
- if (s.getNote() != null)
- {
- if (s.getNote().equals(note))
- return true;
- }
- }
-
- }
-
- return false;
- }
-
- public Object clone()
- {
-
- Segment s = new SegmentImpl();
- s.setStart(start);
- s.setEnd(end);
- s.setName(name);
- s.setColor(color);
- s.setTxtColor(txtColor);
- s.setNote(note);
- return s;
-
- }
-}