/* Copyright (c) 2009 Peter Troshin * * JAva Bioinformatics Analysis Web Services (JABAWS) @version: 1.0 * * This library is free software; you can redistribute it and/or modify it under the terms of the * Apache License version 2 as published by the Apache Software Foundation * * This library 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 Apache * License for more details. * * A copy of the license is in apache_license.txt. It is also available here: * @see: http://www.apache.org/licenses/LICENSE-2.0.txt * * Any republication or derived work distributed in source code form * must include this copyright and license notice. */ package compbio.ws.client; import java.net.URL; import javax.xml.namespace.QName; import javax.xml.ws.Service; import compbio.data.msa.JABAService; import compbio.data.msa.MsaWS; import compbio.data.msa.SequenceAnnotation; /** * List of web services currently supported by JABAWS version 2 * */ public enum Services { MafftWS, MuscleWS, ClustalWS, TcoffeeWS, ProbconsWS, AAConWS, JronnWS, DisemblWS, GlobPlotWS; public static Services getService(String servName) { servName = servName.trim().toLowerCase(); if (servName.equalsIgnoreCase(MafftWS.toString())) { return MafftWS; } if (servName.equalsIgnoreCase(ClustalWS.toString())) { return ClustalWS; } if (servName.equalsIgnoreCase(TcoffeeWS.toString())) { return TcoffeeWS; } if (servName.equalsIgnoreCase(MuscleWS.toString())) { return MuscleWS; } if (servName.equalsIgnoreCase(ProbconsWS.toString())) { return ProbconsWS; } if (servName.equalsIgnoreCase(AAConWS.toString())) { return AAConWS; } if (servName.equalsIgnoreCase(JronnWS.toString())) { return JronnWS; } if (servName.equalsIgnoreCase(DisemblWS.toString())) { return DisemblWS; } if (servName.equalsIgnoreCase(GlobPlotWS.toString())) { return GlobPlotWS; } return null; } Service getService(URL url, String sqname) { QName qname = new QName(sqname, this.toString()); return Service.create(url, qname); } Class getServiceType() { switch (this) { // deliberate leaking case AAConWS : case JronnWS : case DisemblWS : case GlobPlotWS : return SequenceAnnotation.class; // deliberate leaking case ClustalWS : case MafftWS : case MuscleWS : case ProbconsWS : case TcoffeeWS : return MsaWS.class; default : throw new RuntimeException("Unrecognised Web Service Type " + this + " - Should never happened!"); } } JABAService getInterface(Service service) { assert service != null; QName portName = new QName(service.getServiceName().getNamespaceURI(), this.toString() + "Port"); return service.getPort(portName, this.getServiceType()); } }