X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fseqfetcher%2FDbSourceProxyImpl.java;h=5bed7209772625e4ab6f29a60ba12ed5012a3eb5;hb=37de9310bec3501cbc6381e0c3dcb282fcaad812;hp=44de157bc9a7216b8f59b2b4ebdaee251a6f76a7;hpb=153dd62dc91da13ae732600e6ea55ddbe15eab39;p=jalview.git diff --git a/src/jalview/ws/seqfetcher/DbSourceProxyImpl.java b/src/jalview/ws/seqfetcher/DbSourceProxyImpl.java index 44de157..5bed720 100644 --- a/src/jalview/ws/seqfetcher/DbSourceProxyImpl.java +++ b/src/jalview/ws/seqfetcher/DbSourceProxyImpl.java @@ -1,131 +1,158 @@ -/* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6) - * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle - * - * This file is part of Jalview. - * - * Jalview is free software: you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - * - * Jalview is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty - * of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along with Jalview. If not, see . - */ -package jalview.ws.seqfetcher; - -import jalview.datamodel.Alignment; -import jalview.datamodel.DBRefSource; -import jalview.io.FormatAdapter; -import jalview.io.IdentifyFile; - -import java.util.Hashtable; - -/** - * common methods for implementations of the DbSourceProxy interface. - * - * @author JimP - * - */ -public abstract class DbSourceProxyImpl implements DbSourceProxy -{ - public DbSourceProxyImpl() - { - // default constructor - do nothing probably. - } - - private Hashtable props = null; - - /* - * (non-Javadoc) - * - * @see jalview.ws.DbSourceProxy#getDbSourceProperties() - */ - public Hashtable getDbSourceProperties() - { - if (props == null) - { - props = new Hashtable(); - } - return props; - } - - protected void addDbSourceProperty(Object propname) - { - addDbSourceProperty(propname, propname); - } - - protected void addDbSourceProperty(Object propname, Object propvalue) - { - if (props == null) - { - props = new Hashtable(); - } - props.put(propname, propvalue); - } - - boolean queryInProgress = false; - - protected StringBuffer results = null; - - /* - * (non-Javadoc) - * - * @see jalview.ws.DbSourceProxy#getRawRecords() - */ - public StringBuffer getRawRecords() - { - return results; - } - - /* - * (non-Javadoc) - * - * @see jalview.ws.DbSourceProxy#queryInProgress() - */ - public boolean queryInProgress() - { - return queryInProgress; - } - - /** - * call to set the queryInProgress flag - * - */ - protected void startQuery() - { - queryInProgress = true; - } - - /** - * call to clear the queryInProgress flag - * - */ - protected void stopQuery() - { - queryInProgress = false; - } - - /** - * create an alignment from raw text file... - * - * @param result - * @return null or a valid alignment - * @throws Exception - */ - protected Alignment parseResult(String result) throws Exception - { - Alignment sequences = null; - String format = new IdentifyFile().Identify(result, "Paste"); - if (FormatAdapter.isValidFormat(format)) - { - sequences = new FormatAdapter().readFile(result.toString(), "Paste", - format); - } - return sequences; - } - -} +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ +package jalview.ws.seqfetcher; + +import jalview.api.FeatureSettingsModelI; +import jalview.datamodel.AlignmentI; +import jalview.io.FormatAdapter; +import jalview.io.IdentifyFile; + +/** + * common methods for implementations of the DbSourceProxy interface. + * + * @author JimP + * + */ +public abstract class DbSourceProxyImpl implements DbSourceProxy +{ + + boolean queryInProgress = false; + + protected StringBuffer results = null; + + public DbSourceProxyImpl() + { + } + + /* + * (non-Javadoc) + * + * @see jalview.ws.DbSourceProxy#getRawRecords() + */ + @Override + public StringBuffer getRawRecords() + { + return results; + } + + /* + * (non-Javadoc) + * + * @see jalview.ws.DbSourceProxy#queryInProgress() + */ + @Override + public boolean queryInProgress() + { + return queryInProgress; + } + + /** + * call to set the queryInProgress flag + * + */ + protected void startQuery() + { + queryInProgress = true; + } + + /** + * call to clear the queryInProgress flag + * + */ + protected void stopQuery() + { + queryInProgress = false; + } + + /** + * create an alignment from raw text file... + * + * @param result + * @return null or a valid alignment + * @throws Exception + */ + protected AlignmentI parseResult(String result) throws Exception + { + AlignmentI sequences = null; + String format = new IdentifyFile().identify(result, "Paste"); + if (FormatAdapter.isValidFormat(format)) + { + sequences = new FormatAdapter().readFile(result.toString(), "Paste", + format); + } + return sequences; + } + + /** + * Returns the first accession id in the query (up to the first accession id + * separator), or the whole query if there is no separator or it is not found + */ + @Override + public String getAccessionIdFromQuery(String query) + { + String sep = getAccessionSeparator(); + if (sep == null) + { + return query; + } + int sepPos = query.indexOf(sep); + return sepPos == -1 ? query : query.substring(0, sepPos); + } + + /** + * Default is only one accession id per query - override if more are allowed. + */ + @Override + public int getMaximumQueryCount() + { + return 1; + } + + /** + * Returns false - override to return true for DNA coding data sources + */ + @Override + public boolean isDnaCoding() + { + return false; + } + + /** + * Answers false - override as required in subclasses + */ + @Override + public boolean isAlignmentSource() + { + return false; + } + + @Override + public String getDescription() + { + return ""; + } + + @Override + public FeatureSettingsModelI getFeatureColourScheme() + { + return null; + } +}