Refactoring: rename duplicated Util classes
[jabaws.git] / webservices / compbio / ws / client / Services.java
index 1554f64..42d282e 100644 (file)
@@ -39,7 +39,7 @@ public enum Services {
         * Make sure this class has NO references to runners or engines as it is a\r
         * part of minimal client package. Such things should go into ServicesUtil\r
         */\r
         * Make sure this class has NO references to runners or engines as it is a\r
         * part of minimal client package. Such things should go into ServicesUtil\r
         */\r
-       MafftWS, MuscleWS, ClustalWS, ClustalOWS, TcoffeeWS, ProbconsWS, AAConWS, JronnWS, DisemblWS, GlobPlotWS, IUPredWS, JpredWS;\r
+       MafftWS, MuscleWS, ClustalWS, ClustalOWS, TcoffeeWS, ProbconsWS, AAConWS, JronnWS, DisemblWS, GlobPlotWS, IUPredWS, JpredWS, RNAalifoldWS;\r
 \r
        public static Services getService(String servName) {\r
                servName = servName.trim().toLowerCase();\r
 \r
        public static Services getService(String servName) {\r
                servName = servName.trim().toLowerCase();\r
@@ -58,26 +58,29 @@ public enum Services {
 \r
        public static String toString(Set<Services> services) {\r
                if (services == null || services.isEmpty()) {\r
 \r
        public static String toString(Set<Services> services) {\r
                if (services == null || services.isEmpty()) {\r
-                       return "";\r
+                       return "No known services...\n";\r
                }\r
                String value = "";\r
                }\r
                String value = "";\r
-               String delim = ", ";\r
                for (Services serv : services) {\r
                for (Services serv : services) {\r
-                       value += serv.toString() + delim;\r
+                       if (null != serv) {\r
+                               value += serv + "\n";\r
+                       } else {\r
+                               value += "Unknown Service\n";\r
+                       }\r
                }\r
                }\r
-               value = value.substring(0, value.length() - delim.length());\r
                return value;\r
        }\r
 \r
        Class<? extends JABAService> getServiceType() {\r
                switch (this) {\r
                        case AAConWS :\r
                return value;\r
        }\r
 \r
        Class<? extends JABAService> getServiceType() {\r
                switch (this) {\r
                        case AAConWS :\r
-                       case JpredWS :\r
                        case JronnWS :\r
                        case DisemblWS :\r
                        case GlobPlotWS :\r
                        case IUPredWS :\r
                        case JronnWS :\r
                        case DisemblWS :\r
                        case GlobPlotWS :\r
                        case IUPredWS :\r
+                       case RNAalifoldWS :\r
                                return SequenceAnnotation.class;\r
                                return SequenceAnnotation.class;\r
+                       case JpredWS :\r
                        case ClustalWS :\r
                        case ClustalOWS :\r
                        case MafftWS :\r
                        case ClustalWS :\r
                        case ClustalOWS :\r
                        case MafftWS :\r
@@ -85,6 +88,7 @@ public enum Services {
                        case ProbconsWS :\r
                        case TcoffeeWS :\r
                                return MsaWS.class;\r
                        case ProbconsWS :\r
                        case TcoffeeWS :\r
                                return MsaWS.class;\r
+\r
                        default :\r
                                throw new RuntimeException("Unrecognised Web Service Type " + this + " - Should never happen!");\r
                }\r
                        default :\r
                                throw new RuntimeException("Unrecognised Web Service Type " + this + " - Should never happen!");\r
                }\r
@@ -93,15 +97,15 @@ public enum Services {
        \r
        String getServiceNamespace() {\r
                switch (this) {\r
        \r
        String getServiceNamespace() {\r
                switch (this) {\r
-                       case JpredWS :\r
-                               return JABAService.V3_SERVICE_NAMESPACE;\r
+                       case RNAalifoldWS :\r
                        case AAConWS :\r
                        case JronnWS :\r
                        case DisemblWS :\r
                        case GlobPlotWS :\r
                        case IUPredWS :\r
                        case AAConWS :\r
                        case JronnWS :\r
                        case DisemblWS :\r
                        case GlobPlotWS :\r
                        case IUPredWS :\r
-                       case ClustalOWS :\r
                                return JABAService.V2_SERVICE_NAMESPACE;\r
                                return JABAService.V2_SERVICE_NAMESPACE;\r
+                       case ClustalOWS :\r
+                       case JpredWS :\r
                        case ClustalWS :\r
                        case MafftWS :\r
                        case MuscleWS :\r
                        case ClustalWS :\r
                        case MafftWS :\r
                        case MuscleWS :\r
@@ -123,101 +127,205 @@ public enum Services {
        public String getServiceInfo() {\r
                switch (this) {\r
                        case AAConWS :\r
        public String getServiceInfo() {\r
                switch (this) {\r
                        case AAConWS :\r
-                               return AACON_INFO;\r
+                               return AACON_INFO.toString();\r
                        case JpredWS :\r
                        case JpredWS :\r
-                               return JPRED_INFO;\r
+                               return JPRED_INFO.toString();\r
                        case ClustalOWS :\r
                        case ClustalOWS :\r
-                               return CLUSTAL_OMEGA_INFO;\r
+                               return CLUSTAL_OMEGA_INFO.toString();\r
                        case ClustalWS :\r
                        case ClustalWS :\r
-                               return CLUSTAL_INFO;\r
+                               return CLUSTAL_INFO.toString();\r
                        case DisemblWS :\r
                        case DisemblWS :\r
-                               return DISEMBL_INFO;\r
+                               return DISEMBL_INFO.toString();\r
                        case GlobPlotWS :\r
                        case GlobPlotWS :\r
-                               return GLOBPLOT_INFO;\r
+                               return GLOBPLOT_INFO.toString();\r
                        case IUPredWS :\r
                        case IUPredWS :\r
-                               return IUPRED_INFO;\r
+                               return IUPRED_INFO.toString();\r
                        case JronnWS :\r
                        case JronnWS :\r
-                               return JRONN_INFO;\r
+                               return JRONN_INFO.toString();\r
                        case MafftWS :\r
                        case MafftWS :\r
-                               return MAFFT_INFO;\r
+                               return MAFFT_INFO.toString();\r
                        case MuscleWS :\r
                        case MuscleWS :\r
-                               return MUSCLE_INFO;\r
+                               return MUSCLE_INFO.toString();\r
                        case ProbconsWS :\r
                        case ProbconsWS :\r
-                               return PROBCONS_INFO;\r
+                               return PROBCONS_INFO.toString();\r
                        case TcoffeeWS :\r
                        case TcoffeeWS :\r
-                               return TCOFFEE_INFO;\r
+                               return TCOFFEE_INFO.toString();\r
+                       case RNAalifoldWS :\r
+                               return RNAALIFOLD_INFO.toString();\r
                        default :\r
                                throw new RuntimeException("Unrecognised Web Service Type " + this + " - Should never happen!");\r
                }\r
        }\r
 \r
                        default :\r
                                throw new RuntimeException("Unrecognised Web Service Type " + this + " - Should never happen!");\r
                }\r
        }\r
 \r
-       public static final String AACON_INFO = new ServiceInfo(AAConWS,\r
-                       "in preparation", "1.0", "http://www.compbio.dundee.ac.uk/aacon").toString();\r
+       public String getServiceReference() {\r
+               switch (this) {\r
+                       case AAConWS :\r
+                               return AACON_INFO.getReference();\r
+                       case JpredWS :\r
+                               return JPRED_INFO.getReference();\r
+                       case ClustalOWS :\r
+                               return CLUSTAL_OMEGA_INFO.getReference();\r
+                       case ClustalWS :\r
+                               return CLUSTAL_INFO.getReference();\r
+                       case DisemblWS :\r
+                               return DISEMBL_INFO.getReference();\r
+                       case GlobPlotWS :\r
+                               return GLOBPLOT_INFO.getReference();\r
+                       case IUPredWS :\r
+                               return IUPRED_INFO.getReference();\r
+                       case JronnWS :\r
+                               return JRONN_INFO.getReference();\r
+                       case MafftWS :\r
+                               return MAFFT_INFO.getReference();\r
+                       case MuscleWS :\r
+                               return MUSCLE_INFO.getReference();\r
+                       case ProbconsWS :\r
+                               return PROBCONS_INFO.getReference();\r
+                       case TcoffeeWS :\r
+                               return TCOFFEE_INFO.getReference();\r
+                       case RNAalifoldWS :\r
+                               return RNAALIFOLD_INFO.getReference();\r
+                       default :\r
+                               throw new RuntimeException("Unrecognised Web Service Type " + this + " - Should never happen!");\r
+               }\r
+       }\r
 \r
 \r
-       public static final String JPRED_INFO = new ServiceInfo(JpredWS,\r
+       public String getServiceVersion() {\r
+               switch (this) {\r
+                       case AAConWS :\r
+                               return AACON_INFO.getVersion();\r
+                       case JpredWS :\r
+                               return JPRED_INFO.getVersion();\r
+                       case ClustalOWS :\r
+                               return CLUSTAL_OMEGA_INFO.getVersion();\r
+                       case ClustalWS :\r
+                               return CLUSTAL_INFO.getVersion();\r
+                       case DisemblWS :\r
+                               return DISEMBL_INFO.getVersion();\r
+                       case GlobPlotWS :\r
+                               return GLOBPLOT_INFO.getVersion();\r
+                       case IUPredWS :\r
+                               return IUPRED_INFO.getVersion();\r
+                       case JronnWS :\r
+                               return JRONN_INFO.getVersion();\r
+                       case MafftWS :\r
+                               return MAFFT_INFO.getVersion();\r
+                       case MuscleWS :\r
+                               return MUSCLE_INFO.getVersion();\r
+                       case ProbconsWS :\r
+                               return PROBCONS_INFO.getVersion();\r
+                       case TcoffeeWS :\r
+                               return TCOFFEE_INFO.getVersion();\r
+                       case RNAalifoldWS :\r
+                               return RNAALIFOLD_INFO.getVersion();\r
+                       default :\r
+                               throw new RuntimeException("Unrecognised Web Service Type " + this + " - Should never happen!");\r
+               }\r
+       }\r
+\r
+       public String getServiceGroup() {\r
+               switch (this) {\r
+                       case AAConWS :\r
+                               return "annotation";\r
+                       case JpredWS :\r
+                               return "annotation";\r
+                       case ClustalOWS :\r
+                               return "alignment";\r
+                       case ClustalWS :\r
+                               return "alignment";\r
+                       case DisemblWS :\r
+                               return "disorder";\r
+                       case GlobPlotWS :\r
+                               return "disorder";\r
+                       case IUPredWS :\r
+                               return "disorder";\r
+                       case JronnWS :\r
+                               return "disorder";\r
+                       case MafftWS :\r
+                               return "alignment";\r
+                       case MuscleWS :\r
+                               return "alignment";\r
+                       case ProbconsWS :\r
+                               return "alignment";\r
+                       case TcoffeeWS :\r
+                               return "alignment";\r
+                       case RNAalifoldWS :\r
+                               return "annotation";\r
+                       default :\r
+                               throw new RuntimeException("Unrecognised Web Service Type " + this + " - Should never happen!");\r
+               }\r
+       }\r
+       \r
+       static ServiceInfo AACON_INFO = new ServiceInfo(AAConWS,\r
+                       "in preparation", "1.0", "http://www.compbio.dundee.ac.uk/aacon");\r
+\r
+       static ServiceInfo JPRED_INFO = new ServiceInfo(JpredWS,\r
                        "Cole C, Barber JD, Barton GJ.reparation" + \r
                        "The Jpred 3 secondary structure prediction server\n" +\r
                        "Nucl. Acids Res. (2008) 36 (suppl 2): W197-W201., doi: 10.1093/nar/gkn238", \r
                        "Cole C, Barber JD, Barton GJ.reparation" + \r
                        "The Jpred 3 secondary structure prediction server\n" +\r
                        "Nucl. Acids Res. (2008) 36 (suppl 2): W197-W201., doi: 10.1093/nar/gkn238", \r
-                       "3.0", "http://www.compbio.dundee.ac.uk/www-jpred").toString();\r
+                       "3.0.3", "http://www.compbio.dundee.ac.uk/www-jpred");\r
        \r
        \r
-       public static final String CLUSTAL_INFO = new ServiceInfo(ClustalWS,\r
+       static ServiceInfo CLUSTAL_INFO = new ServiceInfo(ClustalWS,\r
                        "Larkin MA, Blackshields G, Brown NP, Chenna R, McGettigan PA, McWilliam H, Valentin F, " + \r
                        "Wallace IM, Wilm A, Lopez R, Thompson JD, Gibson TJ, Higgins DG.\n" +\r
                        "(2007). Clustal W and Clustal X version 2.0. Bioinformatics, 23, 2947-2948.",\r
                        "Larkin MA, Blackshields G, Brown NP, Chenna R, McGettigan PA, McWilliam H, Valentin F, " + \r
                        "Wallace IM, Wilm A, Lopez R, Thompson JD, Gibson TJ, Higgins DG.\n" +\r
                        "(2007). Clustal W and Clustal X version 2.0. Bioinformatics, 23, 2947-2948.",\r
-                       "2.0.12", "http://www.clustal.org/clustal2/").toString();\r
+                       "2.0.12", "http://www.clustal.org/clustal2/");\r
 \r
 \r
-       public static final String CLUSTAL_OMEGA_INFO = new ServiceInfo(ClustalOWS,\r
+       static ServiceInfo CLUSTAL_OMEGA_INFO = new ServiceInfo(ClustalOWS,\r
                        "Fast, scalable generation of high quality protein multiple sequence alignments using Clustal Omega\r\n"\r
                        + "Fabian Sievers, Andreas Wilm, David Dineen, Toby J. Gibson, Kevin Karplus, Weizhong Li, Rodrigo Lopez, Hamish McWilliam, Michael Remmert, Johannes Söding, Julie D. Thompson, Desmond G. Higgins",\r
                        "Fast, scalable generation of high quality protein multiple sequence alignments using Clustal Omega\r\n"\r
                        + "Fabian Sievers, Andreas Wilm, David Dineen, Toby J. Gibson, Kevin Karplus, Weizhong Li, Rodrigo Lopez, Hamish McWilliam, Michael Remmert, Johannes Söding, Julie D. Thompson, Desmond G. Higgins",\r
-                       "1.0.2", "http://www.clustal.org/omega").toString();\r
+                       "1.0.2", "http://www.clustal.org/omega");\r
 \r
 \r
-       public static final String DISEMBL_INFO = new ServiceInfo(DisemblWS,\r
+       static ServiceInfo DISEMBL_INFO = new ServiceInfo(DisemblWS,\r
                        "R. Linding, L.J. Jensen, F. Diella, P. Bork, T.J. Gibson and R.B. Russell\r\n"\r
                        + "Protein disorder prediction: implications for structural proteomics\r\n"\r
                        + "Structure Vol 11, Issue 11, 4 November 2003", "1.5",\r
                        "R. Linding, L.J. Jensen, F. Diella, P. Bork, T.J. Gibson and R.B. Russell\r\n"\r
                        + "Protein disorder prediction: implications for structural proteomics\r\n"\r
                        + "Structure Vol 11, Issue 11, 4 November 2003", "1.5",\r
-                       "http://dis.embl.de/").toString();\r
+                       "http://dis.embl.de/");\r
 \r
 \r
-       public static final String GLOBPLOT_INFO = new ServiceInfo(GlobPlotWS,\r
+       static ServiceInfo GLOBPLOT_INFO = new ServiceInfo(GlobPlotWS,\r
                        "Rune Linding, Robert B. Russell, Victor Neduva and Toby J. Gibson " +\r
                        "'GlobPlot: exploring protein sequences for globularity and disorder.' " + \r
                        "Nucl. Acids Res. (2003) 31 (13): 3701-3708. doi: 10.1093/nar/gkg519\r\n",\r
                        "Rune Linding, Robert B. Russell, Victor Neduva and Toby J. Gibson " +\r
                        "'GlobPlot: exploring protein sequences for globularity and disorder.' " + \r
                        "Nucl. Acids Res. (2003) 31 (13): 3701-3708. doi: 10.1093/nar/gkg519\r\n",\r
-                       "2.3", "http://globplot.embl.de/").toString();\r
+                       "2.3", "http://globplot.embl.de/");\r
 \r
 \r
-       public static final String IUPRED_INFO = new ServiceInfo(IUPredWS,\r
+       static ServiceInfo IUPRED_INFO = new ServiceInfo(IUPredWS,\r
                        "The Pairwise Energy Content Estimated from Amino Acid Composition Discriminates between Folded and Intrinsically Unstructured Proteins\r\n"\r
                        + "Zsuzsanna Dosztányi, Veronika Csizmók, Péter Tompa and István Simon\r\n"\r
                        + "J. Mol. Biol. (2005) 347, 827-839.", "1.0",\r
                        "The Pairwise Energy Content Estimated from Amino Acid Composition Discriminates between Folded and Intrinsically Unstructured Proteins\r\n"\r
                        + "Zsuzsanna Dosztányi, Veronika Csizmók, Péter Tompa and István Simon\r\n"\r
                        + "J. Mol. Biol. (2005) 347, 827-839.", "1.0",\r
-                       "http://iupred.enzim.hu/").toString();\r
+                       "http://iupred.enzim.hu/");\r
 \r
 \r
-       public static final String TCOFFEE_INFO = new ServiceInfo(TcoffeeWS,\r
+       static ServiceInfo TCOFFEE_INFO = new ServiceInfo(TcoffeeWS,\r
                        "T-Coffee: A novel method for multiple sequence alignments  "\r
                        + "Notredame, Higgins, Heringa, JMB, 302 (205-217) 2000",\r
                        "T-Coffee: A novel method for multiple sequence alignments  "\r
                        + "Notredame, Higgins, Heringa, JMB, 302 (205-217) 2000",\r
-                       "8.99", "http://tcoffee.crg.cat/apps/tcoffee/index.html").toString();\r
+                       "8.99", "http://tcoffee.crg.cat/apps/tcoffee/index.html");\r
 \r
 \r
-       public static final String MUSCLE_INFO = new ServiceInfo(\r
-                       MuscleWS,\r
+       static ServiceInfo MUSCLE_INFO = new ServiceInfo(MuscleWS,\r
                        "Edgar, R.C. (2004) MUSCLE: multiple sequence alignment with high accuracy and high throughput.Nucleic Acids Res. 32(5):1792-1797.\r\n"\r
                        + "doi:10.1093/nar/gkh340", "3.8.31",\r
                        "Edgar, R.C. (2004) MUSCLE: multiple sequence alignment with high accuracy and high throughput.Nucleic Acids Res. 32(5):1792-1797.\r\n"\r
                        + "doi:10.1093/nar/gkh340", "3.8.31",\r
-                       "http://www.drive5.com/muscle/").toString();\r
+                       "http://www.drive5.com/muscle/");\r
 \r
 \r
-       public static final String PROBCONS_INFO = new ServiceInfo(\r
-                       ProbconsWS,\r
+       static ServiceInfo PROBCONS_INFO = new ServiceInfo(ProbconsWS,\r
                        "Do, C.B., Mahabhashyam, M.S.P., Brudno, M., and Batzoglou, S. 2005. PROBCONS: "\r
                        + "Probabilistic Consistency-based Multiple Sequence Alignment. Genome Research 15: 330-340. ",\r
                        "Do, C.B., Mahabhashyam, M.S.P., Brudno, M., and Batzoglou, S. 2005. PROBCONS: "\r
                        + "Probabilistic Consistency-based Multiple Sequence Alignment. Genome Research 15: 330-340. ",\r
-                       "1.12", "http://probcons.stanford.edu/").toString();\r
+                       "1.12", "http://probcons.stanford.edu/");\r
 \r
 \r
-       public static final String JRONN_INFO = new ServiceInfo(\r
-                       JronnWS,\r
+       static ServiceInfo JRONN_INFO = new ServiceInfo(JronnWS,\r
                        "unpublished, original algorithm Yang,Z.R., Thomson,R., McMeil,P. and Esnouf,R.M. (2005) "\r
                                        + "RONN: the bio-basis function neural network technique applied to the "\r
                                        + "dectection of natively disordered regions in proteins Bioinformatics 21: 3369-3376\r\n",\r
                        "unpublished, original algorithm Yang,Z.R., Thomson,R., McMeil,P. and Esnouf,R.M. (2005) "\r
                                        + "RONN: the bio-basis function neural network technique applied to the "\r
                                        + "dectection of natively disordered regions in proteins Bioinformatics 21: 3369-3376\r\n",\r
-                       "1.0", "http://www.compbio.dundee.ac.uk/jabaws/").toString();\r
+                       "1.0", "http://www.compbio.dundee.ac.uk/jabaws/");\r
 \r
 \r
-       public static final String MAFFT_INFO = new ServiceInfo(\r
-                       MafftWS,\r
+       static ServiceInfo MAFFT_INFO = new ServiceInfo(MafftWS,\r
                        "Katoh, Toh 2010 (Bioinformatics 26:1899-1900)\r\n"\r
                                        + "Parallelization of the MAFFT multiple sequence alignment program. ",\r
                        "Katoh, Toh 2010 (Bioinformatics 26:1899-1900)\r\n"\r
                                        + "Parallelization of the MAFFT multiple sequence alignment program. ",\r
-                       "6.8.57", "http://mafft.cbrc.jp/alignment/software/").toString();\r
+                       "6.8.57", "http://mafft.cbrc.jp/alignment/software/");\r
+\r
+       static ServiceInfo RNAALIFOLD_INFO = new ServiceInfo(RNAalifoldWS,\r
+                       "Ivo L. Hofacker, Martin Fekete, and Peter F. Stadler 'Secondary Structure Prediction"\r
+                       + " for Aligned RNA Sequences'. J.Mol.Biol. 319: 1059-1066, 2002. Stephan H. Bernhart,"\r
+                       + " Ivo L. Hofacker, Sebastian Will, Andreas R. Gruber, and Peter F. Stadler. "\r
+                       + "'RNAalifold: Improved consensus structure prediction for RNA alignments'. BMC Bioinformatics, 9:474, 2008.\r\n",\r
+                       "2.1.2", "http://www.tbi.univie.ac.at/RNA/");\r
 \r
        @XmlAccessorType(XmlAccessType.FIELD)\r
        static class ServiceInfo {\r
 \r
        @XmlAccessorType(XmlAccessType.FIELD)\r
        static class ServiceInfo {\r
@@ -241,15 +349,23 @@ public enum Services {
 \r
                @Override\r
                public String toString() {\r
 \r
                @Override\r
                public String toString() {\r
-                       String value = "SERVICE: " + service + " version " + version + line_delimiter;\r
+                       String value = "SERVICE: " + service + " version " + version + line_delimiter + "\n";\r
                        value += "JABAWS v. " + jabaws_version + line_delimiter;\r
                        value += "JABAWS v. " + jabaws_version + line_delimiter;\r
-                       value += "REFERENCES: " + reference + line_delimiter;\r
+                       value += "REFERENCE: " + reference + line_delimiter + "\n";\r
                        value += "MORE INFORMATION: " + moreinfo + line_delimiter;\r
                        return value;\r
                }\r
                        value += "MORE INFORMATION: " + moreinfo + line_delimiter;\r
                        return value;\r
                }\r
+\r
+               public String getReference() {\r
+                       return "REFERENCE: " + reference + line_delimiter + "<br>MORE INFORMATION: " + moreinfo + line_delimiter;\r
+               }\r
+\r
+               public String getVersion() {\r
+                       return version;\r
+               }\r
        }\r
 \r
        public static void main(String[] args) {\r
                System.out.println(MUSCLE_INFO);\r
        }\r
        }\r
 \r
        public static void main(String[] args) {\r
                System.out.println(MUSCLE_INFO);\r
        }\r
-}
\ No newline at end of file
+}\r