1474 |
29 Nov 11 |
pawels |
1 |
/******************************************************************************* |
1474 |
29 Nov 11 |
pawels |
* Copyright (c) 2011 The Norwegian Microarray Consortium. |
1474 |
29 Nov 11 |
pawels |
* All rights reserved. This program and the accompanying materials |
1474 |
29 Nov 11 |
pawels |
* are made available under the terms of the GNU Public License v3.0 |
1474 |
29 Nov 11 |
pawels |
* which accompanies this distribution, and is available at |
1474 |
29 Nov 11 |
pawels |
* http://www.gnu.org/licenses/gpl-3.0.html |
1474 |
29 Nov 11 |
pawels |
7 |
* |
1474 |
29 Nov 11 |
pawels |
* Contributors: |
1474 |
29 Nov 11 |
pawels |
* 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 |
* 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 |
* 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 |
* @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 |
} |