1 package compbio.ws.server;
\r
3 import java.util.HashSet;
\r
4 import java.util.Set;
\r
5 import java.util.TreeSet;
\r
7 import javax.xml.bind.annotation.XmlAccessType;
\r
8 import javax.xml.bind.annotation.XmlAccessorType;
\r
10 import compbio.ws.client.Services;
\r
13 * Class that splits {@link Services} to categories. Services themselves have no
\r
14 * knowledge which category they belongs to.
\r
16 * This class is responsible for initialization of all the categories (done
\r
17 * statically) and holds the category names as constrains.
\r
21 * @version 1.0 September 2011
\r
23 @XmlAccessorType(XmlAccessType.FIELD)
\r
24 public class Category {
\r
26 * TODO refactor initialization and constrains into separate classes if
\r
27 * further complexity is expected.
\r
31 * All of the Category names
\r
33 public static final String CATEGORY_ALIGNMENT = "Alignment";
\r
34 public static final String CATEGORY_DISORDER = "Protein Disorder";
\r
35 public static final String CATEGORY_CONSERVATION = "Conservation";
\r
38 Set<Services> services;
\r
40 private Category(String name, Set<Services> services) {
\r
42 this.services = services;
\r
45 private Category() {
\r
46 // Default constructor for JAXB
\r
49 Set<Services> getServices() {
\r
50 return new TreeSet<Services>(services);
\r
53 public static Set<Category> getCategories() {
\r
57 private static Set<Category> init() {
\r
58 Set<Services> align_services = new HashSet<Services>();
\r
59 align_services.add(Services.ClustalOWS);
\r
60 align_services.add(Services.ClustalWS);
\r
61 align_services.add(Services.MafftWS);
\r
62 align_services.add(Services.MuscleWS);
\r
63 align_services.add(Services.ProbconsWS);
\r
64 align_services.add(Services.TcoffeeWS);
\r
65 Category alignment = new Category(CATEGORY_ALIGNMENT, align_services);
\r
67 Set<Services> disorder_services = new HashSet<Services>();
\r
68 align_services.add(Services.DisemblWS);
\r
69 align_services.add(Services.GlobPlotWS);
\r
70 align_services.add(Services.IUPredWS);
\r
71 align_services.add(Services.JronnWS);
\r
73 Category disorder = new Category(CATEGORY_DISORDER, disorder_services);
\r
74 Set<Services> conservation_services = new HashSet<Services>();
\r
75 align_services.add(Services.AAConWS);
\r
77 Category conservation = new Category(CATEGORY_CONSERVATION,
\r
78 conservation_services);
\r
80 Set<Category> categories = new HashSet<Category>();
\r
81 categories.add(alignment);
\r
82 categories.add(disorder);
\r
83 categories.add(conservation);
\r