extensions/no.uib.cbu.base.magetabexport/trunk/src/main/java/no/uib/cbu/base/magetabexport/ProtocolInfo.java

Code
Comments
Other
Rev Date Author Line
1474 29 Nov 11 pawels 1 /*******************************************************************************
1474 29 Nov 11 pawels 2  * Copyright (c) 2011 The Norwegian Microarray Consortium.
1474 29 Nov 11 pawels 3  * All rights reserved. This program and the accompanying materials
1474 29 Nov 11 pawels 4  * are made available under the terms of the GNU Public License v3.0
1474 29 Nov 11 pawels 5  * which accompanies this distribution, and is available at
1474 29 Nov 11 pawels 6  * http://www.gnu.org/licenses/gpl-3.0.html
1474 29 Nov 11 pawels 7  * 
1474 29 Nov 11 pawels 8  * Contributors:
1474 29 Nov 11 pawels 9  *     The Norwegian Microarray Consortium - initial API and implementation
1474 29 Nov 11 pawels 10  ******************************************************************************/
1474 29 Nov 11 pawels 11 package no.uib.cbu.base.magetabexport;
1474 29 Nov 11 pawels 12
1474 29 Nov 11 pawels 13 import java.util.ArrayList;
1474 29 Nov 11 pawels 14 import java.util.Collections;
1474 29 Nov 11 pawels 15 import java.util.Hashtable;
1474 29 Nov 11 pawels 16 import java.util.List;
1474 29 Nov 11 pawels 17
1474 29 Nov 11 pawels 18 public class ProtocolInfo {
1474 29 Nov 11 pawels 19
1474 29 Nov 11 pawels 20   public enum TYPE {SAMPLING, EXTRACTION, LABELING, POOLING, 
1474 29 Nov 11 pawels 21           HYBRIDIZATION, SCANNING, DATA_PROCESSING};
1474 29 Nov 11 pawels 22     
1474 29 Nov 11 pawels 23   private TYPE type;
1474 29 Nov 11 pawels 24   private String ref;
1474 29 Nov 11 pawels 25   private String description;
1474 29 Nov 11 pawels 26   private Hashtable<String, String> parameters = null;
1474 29 Nov 11 pawels 27   
1474 29 Nov 11 pawels 28   public ProtocolInfo(TYPE protocolType, String protocolRef, String description) {
1474 29 Nov 11 pawels 29     this.type = protocolType;
1474 29 Nov 11 pawels 30     this.ref = protocolRef;
1474 29 Nov 11 pawels 31     this.description = description;
1474 29 Nov 11 pawels 32     this.parameters = new Hashtable<String, String>();
1474 29 Nov 11 pawels 33   }
1474 29 Nov 11 pawels 34     
1474 29 Nov 11 pawels 35
1474 29 Nov 11 pawels 36   /**
1474 29 Nov 11 pawels 37     * The method returns a sorted list of names. The list is a fresh new object so it can be manipulated.
1474 29 Nov 11 pawels 38    * The String objects that it contains are not copied, so their properties must not be changed. 
1474 29 Nov 11 pawels 39    * 
1474 29 Nov 11 pawels 40    * @return sorted list of names of parameters set on this protocol.
1474 29 Nov 11 pawels 41    */
1474 29 Nov 11 pawels 42   public List<String> getAllParameterNames() {
1474 29 Nov 11 pawels 43     ArrayList<String> names = new ArrayList<String>(parameters.keySet());
1474 29 Nov 11 pawels 44     Collections.sort(names, String.CASE_INSENSITIVE_ORDER);    
1474 29 Nov 11 pawels 45     return names;
1474 29 Nov 11 pawels 46   }
1474 29 Nov 11 pawels 47   
1474 29 Nov 11 pawels 48   public String getParameterValue(String paramName) {
1474 29 Nov 11 pawels 49     if (parameters.containsKey(paramName)) {
1474 29 Nov 11 pawels 50       return parameters.get(paramName);
1474 29 Nov 11 pawels 51     }
1474 29 Nov 11 pawels 52     return null;
1474 29 Nov 11 pawels 53   }
1474 29 Nov 11 pawels 54   
1474 29 Nov 11 pawels 55   public void addParameter(String paramName, String paramValue) {
1474 29 Nov 11 pawels 56     if (paramName == null || paramName.equals("")) {
1474 29 Nov 11 pawels 57       return;
1474 29 Nov 11 pawels 58     }
1474 29 Nov 11 pawels 59     parameters.put(paramName, paramValue);
1474 29 Nov 11 pawels 60   }
1474 29 Nov 11 pawels 61   
1474 29 Nov 11 pawels 62   public TYPE getType() { return type; }
1474 29 Nov 11 pawels 63
1474 29 Nov 11 pawels 64   public String getProtocolRef() { return ref; }
1474 29 Nov 11 pawels 65
1474 29 Nov 11 pawels 66   public String getDescription() { return description; }
1474 29 Nov 11 pawels 67
1474 29 Nov 11 pawels 68   public boolean equals(Object o) {
1474 29 Nov 11 pawels 69     
1474 29 Nov 11 pawels 70     if (o == null || !(o instanceof ProtocolInfo)) {
1474 29 Nov 11 pawels 71       return false;
1474 29 Nov 11 pawels 72     }
1474 29 Nov 11 pawels 73     
1474 29 Nov 11 pawels 74     ProtocolInfo pi = (ProtocolInfo)o;
1474 29 Nov 11 pawels 75     if (ref == null || pi.getProtocolRef() == null) {
1474 29 Nov 11 pawels 76       return ref==null && pi.getProtocolRef()==null && 
1474 29 Nov 11 pawels 77           type.equals(pi.getType());
1474 29 Nov 11 pawels 78     } else {
1474 29 Nov 11 pawels 79       return pi.getProtocolRef().equals(ref) && 
1474 29 Nov 11 pawels 80         pi.getType().equals(type);
1474 29 Nov 11 pawels 81     }
1474 29 Nov 11 pawels 82   }
1474 29 Nov 11 pawels 83   
1474 29 Nov 11 pawels 84   public int hashCode() {
1474 29 Nov 11 pawels 85     return (ref!=null?ref.hashCode():0) + type.hashCode();
1474 29 Nov 11 pawels 86   }
1474 29 Nov 11 pawels 87   
1474 29 Nov 11 pawels 88 }