--- /dev/null
+package compbio.ws.client;\r
+\r
+import java.io.File;\r
+\r
+import compbio.engine.client.ConfExecutable;\r
+import compbio.engine.client.Executable;\r
+import compbio.runner.conservation.AACon;\r
+import compbio.runner.disorder.Disembl;\r
+import compbio.runner.disorder.GlobPlot;\r
+import compbio.runner.disorder.IUPred;\r
+import compbio.runner.disorder.Jronn;\r
+import compbio.runner.msa.ClustalO;\r
+import compbio.runner.msa.ClustalW;\r
+import compbio.runner.msa.Mafft;\r
+import compbio.runner.msa.Muscle;\r
+import compbio.runner.msa.Probcons;\r
+import compbio.runner.msa.Tcoffee;\r
+\r
+public class ServicesUtil {\r
+\r
+ public static Services getServiceByRunner(\r
+ Class<Executable<?>> runnerClassName) {\r
+ assert runnerClassName != null;\r
+ String sname = runnerClassName.getSimpleName().toLowerCase();\r
+ for (Services service : Services.values()) {\r
+ if (service.toString().toLowerCase().contains(sname)) {\r
+ return service;\r
+ }\r
+ }\r
+ return null;\r
+ }\r
+\r
+ public static Class<? extends Executable<?>> getServiceImpl(Services service) {\r
+ switch (service) {\r
+ case AAConWS :\r
+ return AACon.class;\r
+ case ClustalOWS :\r
+ return ClustalO.class;\r
+ case ClustalWS :\r
+ return ClustalW.class;\r
+ case MafftWS :\r
+ return Mafft.class;\r
+ case MuscleWS :\r
+ return Muscle.class;\r
+ case TcoffeeWS :\r
+ return Tcoffee.class;\r
+ case ProbconsWS :\r
+ return Probcons.class;\r
+ case DisemblWS :\r
+ return Disembl.class;\r
+ case GlobPlotWS :\r
+ return GlobPlot.class;\r
+ case JronnWS :\r
+ return Jronn.class;\r
+ case IUPredWS :\r
+ return IUPred.class;\r
+ default :\r
+ throw new RuntimeException(\r
+ "Unknown web service implementation class for service: "\r
+ + service);\r
+ }\r
+ }\r
+\r
+ public static Class<? extends Executable<?>> getRunnerByJobDirectory(\r
+ File jobdir) {\r
+ Services service = getServiceByRunnerName(getRunnerNameByJobDirectory(jobdir));\r
+ return getServiceImpl(service);\r
+ }\r
+\r
+ private static String getRunnerNameByJobDirectory(File jobdir) {\r
+ String name = jobdir.getName().split("#")[0];\r
+\r
+ if (name.startsWith(ConfExecutable.CLUSTER_TASK_ID_PREFIX)) {\r
+ assert ConfExecutable.CLUSTER_TASK_ID_PREFIX.length() == 1;\r
+ name = name.substring(1);\r
+ }\r
+ return name;\r
+ }\r
+\r
+ public static Services getServiceByJobDirectory(File jobdir) {\r
+ return getServiceByRunnerName(getRunnerNameByJobDirectory(jobdir));\r
+ }\r
+\r
+ private static Services getServiceByRunnerName(String name) {\r
+ for (Services service : Services.values()) {\r
+ String runnerName = getServiceImpl(service).getSimpleName()\r
+ .toLowerCase();\r
+ name = name.trim().toLowerCase();\r
+ if (name.startsWith(runnerName)) {\r
+ return service;\r
+ }\r
+ }\r
+ return null;\r
+ }\r
+\r
+}\r