From: jprocter Date: Sun, 4 Dec 2011 18:56:26 +0000 (+0000) Subject: removed all dasobert code and begun to replace with Jdas calls. X-Git-Tag: Jalview_2_9~532^2~31^2~26 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=c1aff0bc80c5a64ec93acd8b6c5844da2d6da509;p=jalview.git removed all dasobert code and begun to replace with Jdas calls. --- diff --git a/.classpath b/.classpath index 01cf242..4e2109f 100644 --- a/.classpath +++ b/.classpath @@ -40,6 +40,7 @@ + diff --git a/lib/jdas-1.0.3.jar b/lib/jdas-1.0.3.jar new file mode 100644 index 0000000..6cc4e91 Binary files /dev/null and b/lib/jdas-1.0.3.jar differ diff --git a/src/jalview/bin/Cache.java b/src/jalview/bin/Cache.java index 069589e..1bb15a2 100755 --- a/src/jalview/bin/Cache.java +++ b/src/jalview/bin/Cache.java @@ -595,6 +595,7 @@ public class Cache { 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:")) diff --git a/src/jalview/gui/DasSourceBrowser.java b/src/jalview/gui/DasSourceBrowser.java index c623530..6e77a6b 100755 --- a/src/jalview/gui/DasSourceBrowser.java +++ b/src/jalview/gui/DasSourceBrowser.java @@ -17,7 +17,10 @@ */ package jalview.gui; +import java.security.interfaces.DSAKey; +import java.text.ParseException; import java.util.*; +import java.util.List; import java.awt.*; import java.awt.event.*; @@ -25,14 +28,23 @@ import javax.swing.*; import javax.swing.event.*; import javax.swing.table.*; -import org.biojava.dasobert.dasregistry.*; +import org.biodas.jdas.dassources.Capabilities; +import org.biodas.jdas.dassources.utils.DasTimeFormat; +import org.biodas.jdas.schema.sources.CAPABILITY; +import org.biodas.jdas.schema.sources.COORDINATES; +import org.biodas.jdas.schema.sources.MAINTAINER; +import org.biodas.jdas.schema.sources.PROP; +import org.biodas.jdas.schema.sources.SOURCE; +import org.biodas.jdas.schema.sources.SOURCES; +import org.biodas.jdas.schema.sources.VERSION; + import jalview.jbgui.*; import jalview.util.*; public class DasSourceBrowser extends GDasSourceBrowser implements Runnable, ListSelectionListener { - static DasSource[] dasSources = null; + static org.biodas.jdas.schema.sources.SOURCE[] dasSources = null; Hashtable localSources = null; @@ -130,7 +142,7 @@ public class DasSourceBrowser extends GDasSourceBrowser implements Object[][] data = new Object[dSize][2]; for (int i = 0; i < dSize; i++) { - data[i][0] = dasSources[i].getNickname(); + data[i][0] = dasSources[i]. // what's equivalent of nickname data[i][1] = new Boolean(selectedSources.contains(dasSources[i] .getNickname())); } @@ -369,41 +381,79 @@ public class DasSourceBrowser extends GDasSourceBrowser implements worker.start(); } - private void setCapabilities(DasSource[] sources) + private boolean isLaterThan(String ref, String newer) { - Vector authority = new Vector(); - Vector type = new Vector(); - Vector label = new Vector(); - - authority.addElement("Any"); - type.addElement("Any"); - label.addElement("Any"); + Date refdate=null,newdate=null; + try { + refdate=DasTimeFormat.fromDASString(ref); + + } + catch (ParseException x) + { + return false; + } + try { + newdate = DasTimeFormat.fromDASString(newer); + } + catch (ParseException e) { + // TODO: handle exception + } + if (refdate!=null) + { + if (newdate!=null) + { + return refdate.before(newdate); + } + return false; + } + if (newdate!=null) + { + return true; + } + // assume first instance of source is newest in list. - TODO: check if natural ordering of source versions is newest first or oldest first + return false; + } + private void setCapabilities(SOURCE[] sources) + { + Vector authority = new Vector(); + Vector type = new Vector(); + Vector label = new Vector(); + Vector taxIds=new Vector(); + authority.add("Any"); + type.add("Any"); + label.add("Any"); + for (int i = 0; i < sources.length; i++) { - DasSource ds = sources[i]; - - DasCoordinateSystem[] dcs = ds.getCoordinateSystem(); - - for (int j = 0; j < dcs.length; j++) + SOURCE ds = sources[i]; + VERSION latest=null; + for (VERSION v:ds.getVERSION()) { + if (latest==null || isLaterThan(latest.getCreated(),v.getCreated())) + { + // 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 + latest=v; + } + } + + for (COORDINATES cs: latest.getCOORDINATES()) { - if (!type.contains(dcs[j].getCategory())) + if (!type.contains(cs.getSource())) { - type.addElement(dcs[j].getCategory()); + type.add(cs.getSource()); // source==category } - if (!authority.contains(dcs[j].getName())) + if (!authority.contains(cs.getAuthority())) { - authority.addElement(dcs[j].getName()); + authority.add(cs.getAuthority()); } } - String[] slabels = ds.getLabels(); - for (int s = 0; s < slabels.length; s++) + for (PROP slabel:latest.getPROP()) { - if (!label.contains(slabels[s])) + if (slabel.getName().equalsIgnoreCase("LABEL") && !label.contains(slabel.getValue())) { - label.addElement(slabels[s]); + label.add(slabel.getValue()); } } @@ -412,6 +462,7 @@ public class DasSourceBrowser extends GDasSourceBrowser implements filter1.setListData(authority); filter2.setListData(type); filter3.setListData(label); + // filter4 taxIds javax.swing.SwingUtilities.invokeLater(new Runnable() { @@ -432,9 +483,8 @@ public class DasSourceBrowser extends GDasSourceBrowser implements { int selectedRow = table.getSelectionModel().getMinSelectionIndex(); nickname = table.getValueAt(selectedRow, 0).toString(); - url = ((DasSource) localSources.get(nickname)).getUrl(); - seqsrc = ((DasSource) localSources.get(nickname)) - .hasCapability("sequence"); + url = ((SOURCE) localSources.get(nickname)).getUri(); + seqsrc = ((SOURCE) localSources.get(nickname)).getVERSION().get(0).getCAPABILITY().contains(Capabilities.SEQUENCE); } JTextField nametf = new JTextField(nickname, 40); @@ -466,7 +516,32 @@ public class DasSourceBrowser extends GDasSourceBrowser implements urltf.setText(urltf.getText() + "/"); } - Das1Source local = new Das1Source(); + // build using pattern from test: sourcesclientImplTest + { + SOURCE source = new SOURCE(); + String uri = "http://das.sanger.ac.uk/das/dummysource"; + source.setUri("http://das.sanger.ac.uk/das/dummysource"); + source.setDescription("Dummy Test Source, should not be in a working registry sources doc"); + VERSION version = new VERSION(); + version.setUri(uri); + COORDINATES coord = new COORDINATES(); + coord.setAuthority("NCBI"); + coord.setSource("Chromosome"); + coord.setTaxid("9606"); + coord.setVersion("35"); + version.getCOORDINATES().add(coord); + CAPABILITY cap = new CAPABILITY(); + cap.setQueryUri(uri + "features"); + cap.setType("das1:" + Capabilities.FEATURES.getName()); + version.getCAPABILITY().add(cap); + source.getVERSION().add(version); + MAINTAINER m = new MAINTAINER(); + m.setEmail("jw12@sanger.ac.uk"); + source.setMAINTAINER(m); + source.setTitle("dummy title"); + + } + SOURCE local = new Das1Source(); local.setUrl(urltf.getText()); local.setNickname(nametf.getText()); diff --git a/src/org/biojava/dasobert/das/DAS_FeatureRetrieve.java b/src/org/biojava/dasobert/das/DAS_FeatureRetrieve.java deleted file mode 100755 index 7d35dea..0000000 --- a/src/org/biojava/dasobert/das/DAS_FeatureRetrieve.java +++ /dev/null @@ -1,287 +0,0 @@ -/** - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 19.03.2004 - * @author Andreas Prlic - * - */ -package org.biojava.dasobert.das; - -import 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; - - } - -} diff --git a/src/org/biojava/dasobert/das/DAS_Feature_Handler.java b/src/org/biojava/dasobert/das/DAS_Feature_Handler.java deleted file mode 100755 index b6badc7..0000000 --- a/src/org/biojava/dasobert/das/DAS_Feature_Handler.java +++ /dev/null @@ -1,314 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 19.03.2004 - * @author Andreas Prlic - * - */ -package org.biojava.dasobert.das; - -import 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]); - } - - } - -} diff --git a/src/org/biojava/dasobert/das/DAS_Sequence_Handler.java b/src/org/biojava/dasobert/das/DAS_Sequence_Handler.java deleted file mode 100755 index fe5be8b..0000000 --- a/src/org/biojava/dasobert/das/DAS_Sequence_Handler.java +++ /dev/null @@ -1,161 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 19.03.2004 - * @author Andreas Prlic - * - */ -package org.biojava.dasobert.das; - -import org.xml.sax.helpers.DefaultHandler; -import org.xml.sax.Attributes; -import java.util.logging.*; - -/** - * a class that parses the XML response of a DAS - sequence command. - * - * @author Andreas Prlic - * - */ -public class DAS_Sequence_Handler extends DefaultHandler -{ - - 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; - } - -} diff --git a/src/org/biojava/dasobert/das/FeatureThread.java b/src/org/biojava/dasobert/das/FeatureThread.java deleted file mode 100755 index 172078b..0000000 --- a/src/org/biojava/dasobert/das/FeatureThread.java +++ /dev/null @@ -1,198 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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); - } - - } - -} diff --git a/src/org/biojava/dasobert/das/SequenceThread.java b/src/org/biojava/dasobert/das/SequenceThread.java deleted file mode 100755 index 720c60b..0000000 --- a/src/org/biojava/dasobert/das/SequenceThread.java +++ /dev/null @@ -1,299 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on Nov 20, 2005 - * - */ -package org.biojava.dasobert.das; - -import java.io.InputStream; -import java.net.HttpURLConnection; -import java.net.URL; -import java.util.Iterator; -import java.util.logging.Level; -import java.util.logging.Logger; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - -import org.biojava.dasobert.dasregistry.Das1Source; -import org.biojava.dasobert.eventmodel.SequenceEvent; -import org.biojava.dasobert.eventmodel.SequenceListener; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; -import org.xml.sax.SAXNotRecognizedException; -import org.xml.sax.XMLReader; -import java.util.*; - -/** - * a thread that gets the sequence from a DAS server - * - * @author Andreas Prlic - * - */ -public class SequenceThread extends Thread -{ - - Das1Source[] sequenceServers; - - String sp_accession; - - List seqListeners; - - 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; - } - - } - -} diff --git a/src/org/biojava/dasobert/das2/Das2Capability.java b/src/org/biojava/dasobert/das2/Das2Capability.java deleted file mode 100755 index e91bc77..0000000 --- a/src/org/biojava/dasobert/das2/Das2Capability.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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(); - -} diff --git a/src/org/biojava/dasobert/das2/Das2CapabilityImpl.java b/src/org/biojava/dasobert/das2/Das2CapabilityImpl.java deleted file mode 100755 index 196b681..0000000 --- a/src/org/biojava/dasobert/das2/Das2CapabilityImpl.java +++ /dev/null @@ -1,131 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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; - - } - -} diff --git a/src/org/biojava/dasobert/das2/Das2Source.java b/src/org/biojava/dasobert/das2/Das2Source.java deleted file mode 100755 index 71d59e0..0000000 --- a/src/org/biojava/dasobert/das2/Das2Source.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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(); -} diff --git a/src/org/biojava/dasobert/das2/Das2SourceImpl.java b/src/org/biojava/dasobert/das2/Das2SourceImpl.java deleted file mode 100755 index 2f5a7ed..0000000 --- a/src/org/biojava/dasobert/das2/Das2SourceImpl.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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; - - } - -} diff --git a/src/org/biojava/dasobert/das2/DasSourceConverter.java b/src/org/biojava/dasobert/das2/DasSourceConverter.java deleted file mode 100755 index 3e4d8e8..0000000 --- a/src/org/biojava/dasobert/das2/DasSourceConverter.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on Mar 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; - } - -} diff --git a/src/org/biojava/dasobert/das2/io/DAS2SourceHandler.java b/src/org/biojava/dasobert/das2/io/DAS2SourceHandler.java deleted file mode 100755 index 0ee0b5e..0000000 --- a/src/org/biojava/dasobert/das2/io/DAS2SourceHandler.java +++ /dev/null @@ -1,216 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on Mar 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 - 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()]); - } - -} diff --git a/src/org/biojava/dasobert/das2/io/DasSourceReader.java b/src/org/biojava/dasobert/das2/io/DasSourceReader.java deleted file mode 100755 index 62a28f6..0000000 --- a/src/org/biojava/dasobert/das2/io/DasSourceReader.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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); -} diff --git a/src/org/biojava/dasobert/das2/io/DasSourceReaderImpl.java b/src/org/biojava/dasobert/das2/io/DasSourceReaderImpl.java deleted file mode 100755 index 54afa25..0000000 --- a/src/org/biojava/dasobert/das2/io/DasSourceReaderImpl.java +++ /dev/null @@ -1,183 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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(); - } - - } - -} diff --git a/src/org/biojava/dasobert/dasregistry/Das1Source.java b/src/org/biojava/dasobert/dasregistry/Das1Source.java deleted file mode 100755 index c46d709..0000000 --- a/src/org/biojava/dasobert/dasregistry/Das1Source.java +++ /dev/null @@ -1,305 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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 true 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; - } - -} diff --git a/src/org/biojava/dasobert/dasregistry/Das2Validator.java b/src/org/biojava/dasobert/dasregistry/Das2Validator.java deleted file mode 100755 index fea8a0f..0000000 --- a/src/org/biojava/dasobert/dasregistry/Das2Validator.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on Mar 20, 2006 - * - */ -package org.biojava.dasobert.dasregistry; - -import org.biojava.dasobert.das2.*; - -public class Das2Validator -{ - - public Das2Validator() - { - super(); - - } - - public boolean validate(Das2Source ds) - { - - // TODO this bit still needs to be implemented! - - return true; - } - -} diff --git a/src/org/biojava/dasobert/dasregistry/DasCoordSysComparator.java b/src/org/biojava/dasobert/dasregistry/DasCoordSysComparator.java deleted file mode 100755 index dbae74d..0000000 --- a/src/org/biojava/dasobert/dasregistry/DasCoordSysComparator.java +++ /dev/null @@ -1,128 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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; - } - -} diff --git a/src/org/biojava/dasobert/dasregistry/DasCoordinateSystem.java b/src/org/biojava/dasobert/dasregistry/DasCoordinateSystem.java deleted file mode 100755 index 8936a16..0000000 --- a/src/org/biojava/dasobert/dasregistry/DasCoordinateSystem.java +++ /dev/null @@ -1,233 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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; - } - -} diff --git a/src/org/biojava/dasobert/dasregistry/DasSource.java b/src/org/biojava/dasobert/dasregistry/DasSource.java deleted file mode 100755 index 892963b..0000000 --- a/src/org/biojava/dasobert/dasregistry/DasSource.java +++ /dev/null @@ -1,130 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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 true 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 diff --git a/src/org/biojava/dasobert/dasregistry/DasSourceComparator.java b/src/org/biojava/dasobert/dasregistry/DasSourceComparator.java deleted file mode 100755 index 0d52fd9..0000000 --- a/src/org/biojava/dasobert/dasregistry/DasSourceComparator.java +++ /dev/null @@ -1,190 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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; - } - -} diff --git a/src/org/biojava/dasobert/eventmodel/AbstractDasEvent.java b/src/org/biojava/dasobert/eventmodel/AbstractDasEvent.java deleted file mode 100644 index d8cbebe..0000000 --- a/src/org/biojava/dasobert/eventmodel/AbstractDasEvent.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on Nov 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; - } - -} diff --git a/src/org/biojava/dasobert/eventmodel/FeatureEvent.java b/src/org/biojava/dasobert/eventmodel/FeatureEvent.java deleted file mode 100755 index dd89ef3..0000000 --- a/src/org/biojava/dasobert/eventmodel/FeatureEvent.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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(); - * - *
-   * for (int i = 0; i < features; i++)
-   * {
-   *   Map f = features[i];
-   *   String type = (String) f.get("TYPE");
-   *   System.out.println(type);
-   * }
-   * 
- * - * @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; - } - -} diff --git a/src/org/biojava/dasobert/eventmodel/FeatureListener.java b/src/org/biojava/dasobert/eventmodel/FeatureListener.java deleted file mode 100755 index 235c486..0000000 --- a/src/org/biojava/dasobert/eventmodel/FeatureListener.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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); - -} diff --git a/src/org/biojava/dasobert/eventmodel/ObjectListener.java b/src/org/biojava/dasobert/eventmodel/ObjectListener.java deleted file mode 100755 index a19ae4d..0000000 --- a/src/org/biojava/dasobert/eventmodel/ObjectListener.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on Nov 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); - -} diff --git a/src/org/biojava/dasobert/eventmodel/SequenceEvent.java b/src/org/biojava/dasobert/eventmodel/SequenceEvent.java deleted file mode 100755 index 484cf49..0000000 --- a/src/org/biojava/dasobert/eventmodel/SequenceEvent.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on Nov 20, 2005 - * - */ -package org.biojava.dasobert.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; - } - -} diff --git a/src/org/biojava/dasobert/eventmodel/SequenceListener.java b/src/org/biojava/dasobert/eventmodel/SequenceListener.java deleted file mode 100755 index df3a687..0000000 --- a/src/org/biojava/dasobert/eventmodel/SequenceListener.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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(); -} diff --git a/src/org/biojava/dasobert/feature/AbstractFeatureTrack.java b/src/org/biojava/dasobert/feature/AbstractFeatureTrack.java deleted file mode 100644 index 0ad2df7..0000000 --- a/src/org/biojava/dasobert/feature/AbstractFeatureTrack.java +++ /dev/null @@ -1,278 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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; - - } - -} diff --git a/src/org/biojava/dasobert/feature/AbstractSegment.java b/src/org/biojava/dasobert/feature/AbstractSegment.java deleted file mode 100644 index 12c5e1d..0000000 --- a/src/org/biojava/dasobert/feature/AbstractSegment.java +++ /dev/null @@ -1,256 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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; - } -} diff --git a/src/org/biojava/dasobert/feature/FeatureComparator.java b/src/org/biojava/dasobert/feature/FeatureComparator.java deleted file mode 100644 index 2b75c22..0000000 --- a/src/org/biojava/dasobert/feature/FeatureComparator.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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; - - } - -} diff --git a/src/org/biojava/dasobert/feature/FeatureMapComparator.java b/src/org/biojava/dasobert/feature/FeatureMapComparator.java deleted file mode 100644 index aa38981..0000000 --- a/src/org/biojava/dasobert/feature/FeatureMapComparator.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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; - } - -} diff --git a/src/org/biojava/dasobert/feature/FeatureTrack.java b/src/org/biojava/dasobert/feature/FeatureTrack.java deleted file mode 100644 index e7b6bbd..0000000 --- a/src/org/biojava/dasobert/feature/FeatureTrack.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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 diff --git a/src/org/biojava/dasobert/feature/FeatureTrackConverter.java b/src/org/biojava/dasobert/feature/FeatureTrackConverter.java deleted file mode 100644 index 4818e10..0000000 --- a/src/org/biojava/dasobert/feature/FeatureTrackConverter.java +++ /dev/null @@ -1,526 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on Dec 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; - } - -} diff --git a/src/org/biojava/dasobert/feature/FeatureTrackImpl.java b/src/org/biojava/dasobert/feature/FeatureTrackImpl.java deleted file mode 100644 index a13fbb3..0000000 --- a/src/org/biojava/dasobert/feature/FeatureTrackImpl.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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 and - * 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; - - } - -} diff --git a/src/org/biojava/dasobert/feature/HistogramFeature.java b/src/org/biojava/dasobert/feature/HistogramFeature.java deleted file mode 100644 index 8663081..0000000 --- a/src/org/biojava/dasobert/feature/HistogramFeature.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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; - - } - -} diff --git a/src/org/biojava/dasobert/feature/HistogramSegment.java b/src/org/biojava/dasobert/feature/HistogramSegment.java deleted file mode 100644 index 7a7ea25..0000000 --- a/src/org/biojava/dasobert/feature/HistogramSegment.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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; - - } - -} diff --git a/src/org/biojava/dasobert/feature/Segment.java b/src/org/biojava/dasobert/feature/Segment.java deleted file mode 100644 index 78e2840..0000000 --- a/src/org/biojava/dasobert/feature/Segment.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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); - -} diff --git a/src/org/biojava/dasobert/feature/SegmentComparator.java b/src/org/biojava/dasobert/feature/SegmentComparator.java deleted file mode 100644 index 68a2c16..0000000 --- a/src/org/biojava/dasobert/feature/SegmentComparator.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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; - } - -} diff --git a/src/org/biojava/dasobert/feature/SegmentImpl.java b/src/org/biojava/dasobert/feature/SegmentImpl.java deleted file mode 100644 index dba25e9..0000000 --- a/src/org/biojava/dasobert/feature/SegmentImpl.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * BioJava development code - * - * This code may be freely distributed and modified under the - * terms of the GNU Lesser General Public Licence. This should - * be distributed with the code. If you do not have a copy, - * see: - * - * http://www.gnu.org/copyleft/lesser.html - * - * Copyright for this code is held jointly by the individual - * authors. These should be listed in @author doc comments. - * - * For more information on the BioJava project and its aims, - * or to join the biojava-l mailing list, visit the home page - * at: - * - * http://www.biojava.org/ - * - * Created on 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; - - } -}