1427 |
28 Oct 11 |
nicklas |
1 |
package net.sf.basedb.reggie.dao; |
1427 |
28 Oct 11 |
nicklas |
2 |
|
1544 |
29 Feb 12 |
nicklas |
3 |
import java.lang.reflect.Field; |
1610 |
23 Apr 12 |
nicklas |
4 |
import java.util.List; |
1544 |
29 Feb 12 |
nicklas |
5 |
|
1543 |
28 Feb 12 |
nicklas |
6 |
import org.json.simple.JSONObject; |
1543 |
28 Feb 12 |
nicklas |
7 |
|
3069 |
09 Jan 15 |
nicklas |
8 |
import net.sf.basedb.core.BasicItem; |
1427 |
28 Oct 11 |
nicklas |
9 |
import net.sf.basedb.core.DbControl; |
1610 |
23 Apr 12 |
nicklas |
10 |
import net.sf.basedb.core.Include; |
1610 |
23 Apr 12 |
nicklas |
11 |
import net.sf.basedb.core.InvalidDataException; |
1427 |
28 Oct 11 |
nicklas |
12 |
import net.sf.basedb.core.Item; |
1610 |
23 Apr 12 |
nicklas |
13 |
import net.sf.basedb.core.ItemNotFoundException; |
1492 |
02 Dec 11 |
nicklas |
14 |
import net.sf.basedb.core.ItemQuery; |
1427 |
28 Oct 11 |
nicklas |
15 |
import net.sf.basedb.core.ItemSubtype; |
3069 |
09 Jan 15 |
nicklas |
16 |
import net.sf.basedb.core.Project; |
1492 |
02 Dec 11 |
nicklas |
17 |
import net.sf.basedb.core.Subtypable; |
1610 |
23 Apr 12 |
nicklas |
18 |
import net.sf.basedb.core.Type; |
1492 |
02 Dec 11 |
nicklas |
19 |
import net.sf.basedb.core.query.Expressions; |
1492 |
02 Dec 11 |
nicklas |
20 |
import net.sf.basedb.core.query.Hql; |
1543 |
28 Feb 12 |
nicklas |
21 |
import net.sf.basedb.core.query.Restriction; |
1492 |
02 Dec 11 |
nicklas |
22 |
import net.sf.basedb.core.query.Restrictions; |
3618 |
23 Nov 15 |
nicklas |
23 |
import net.sf.basedb.util.filter.Filter; |
1427 |
28 Oct 11 |
nicklas |
24 |
|
1427 |
28 Oct 11 |
nicklas |
25 |
/** |
1427 |
28 Oct 11 |
nicklas |
Used to define a subtype by name and main item type. |
1427 |
28 Oct 11 |
nicklas |
27 |
|
1427 |
28 Oct 11 |
nicklas |
@author nicklas |
1427 |
28 Oct 11 |
nicklas |
@since 2.0 |
1427 |
28 Oct 11 |
nicklas |
30 |
*/ |
1427 |
28 Oct 11 |
nicklas |
31 |
public class Subtype |
1427 |
28 Oct 11 |
nicklas |
32 |
{ |
1427 |
28 Oct 11 |
nicklas |
33 |
|
1427 |
28 Oct 11 |
nicklas |
34 |
/** |
1427 |
28 Oct 11 |
nicklas |
The definition of the "Patient" subtype. |
1427 |
28 Oct 11 |
nicklas |
@since 2.0 |
1427 |
28 Oct 11 |
nicklas |
37 |
*/ |
5088 |
13 Nov 18 |
nicklas |
38 |
public static final Subtype PATIENT = new Subtype("Patient", "PAT", null, "Q", Item.BIOSOURCE, false); |
1526 |
25 Jan 12 |
nicklas |
39 |
|
1427 |
28 Oct 11 |
nicklas |
40 |
/** |
1526 |
25 Jan 12 |
nicklas |
The definition of the "No" subtype (for virtual patient with consent=No). |
1526 |
25 Jan 12 |
nicklas |
@since 2.2 |
1526 |
25 Jan 12 |
nicklas |
43 |
*/ |
5088 |
13 Nov 18 |
nicklas |
44 |
public static final Subtype NO = new Subtype("No", "No", null, "N", Item.BIOSOURCE, false); |
1526 |
25 Jan 12 |
nicklas |
45 |
|
1526 |
25 Jan 12 |
nicklas |
46 |
/** |
5108 |
19 Nov 18 |
nicklas |
The definition of the "NotAsked" subtype (for virtual patient with consent=Not asked). |
1526 |
25 Jan 12 |
nicklas |
@since 2.2 |
1526 |
25 Jan 12 |
nicklas |
49 |
*/ |
5108 |
19 Nov 18 |
nicklas |
50 |
public static final Subtype NOT_ASKED = new Subtype("NotAsked", "NotAsked", null, "Z", Item.BIOSOURCE, false); |
1526 |
25 Jan 12 |
nicklas |
51 |
|
1526 |
25 Jan 12 |
nicklas |
52 |
/** |
2839 |
20 Oct 14 |
olle |
The definition of the "Retract" subtype (for virtual patient with retracted "Yes"-consent). |
2839 |
20 Oct 14 |
olle |
@since 2.17 |
2839 |
20 Oct 14 |
olle |
55 |
*/ |
5088 |
13 Nov 18 |
nicklas |
56 |
public static final Subtype RETRACT = new Subtype("Retract", "Retract", null, "R", Item.BIOSOURCE, false); |
2839 |
20 Oct 14 |
olle |
57 |
|
2839 |
20 Oct 14 |
olle |
58 |
/** |
2839 |
20 Oct 14 |
olle |
The definition of the "RetroNo" subtype (for virtual patient with consent "No" or missing). |
2839 |
20 Oct 14 |
olle |
@since 2.17 |
2839 |
20 Oct 14 |
olle |
61 |
*/ |
5088 |
13 Nov 18 |
nicklas |
62 |
public static final Subtype RETRO_NO = new Subtype("RetroNo", "RetroNo", null, "N", Item.BIOSOURCE, false); |
2839 |
20 Oct 14 |
olle |
63 |
|
2839 |
20 Oct 14 |
olle |
64 |
/** |
1427 |
28 Oct 11 |
nicklas |
The definition of the "Case" subtype. |
1427 |
28 Oct 11 |
nicklas |
@since 2.0 |
1427 |
28 Oct 11 |
nicklas |
67 |
*/ |
5088 |
13 Nov 18 |
nicklas |
68 |
public static final Subtype CASE = new Subtype("Case", null, null, "C", Item.SAMPLE, false); |
1515 |
19 Jan 12 |
nicklas |
69 |
|
1515 |
19 Jan 12 |
nicklas |
70 |
/** |
1515 |
19 Jan 12 |
nicklas |
The definition of the "Blood" subtype. |
1515 |
19 Jan 12 |
nicklas |
@since 2.2 |
1515 |
19 Jan 12 |
nicklas |
73 |
*/ |
5088 |
13 Nov 18 |
nicklas |
74 |
public static final Subtype BLOOD = new Subtype("Blood", null, "b", "B", Item.SAMPLE, false); |
1515 |
19 Jan 12 |
nicklas |
75 |
|
3355 |
28 May 15 |
nicklas |
76 |
/** |
3355 |
28 May 15 |
nicklas |
The definition of the "BloodDNA" subtype. |
3355 |
28 May 15 |
nicklas |
@since 3.4 |
3355 |
28 May 15 |
nicklas |
79 |
*/ |
5088 |
13 Nov 18 |
nicklas |
80 |
public static final Subtype BLOOD_DNA = new Subtype("BloodDNA", null, "d", null, Item.EXTRACT, false); |
1427 |
28 Oct 11 |
nicklas |
81 |
|
1427 |
28 Oct 11 |
nicklas |
82 |
/** |
1427 |
28 Oct 11 |
nicklas |
The definition of the "Specimen" subtype. |
1427 |
28 Oct 11 |
nicklas |
@since 2.0 |
1427 |
28 Oct 11 |
nicklas |
85 |
*/ |
5088 |
13 Nov 18 |
nicklas |
86 |
public static final Subtype SPECIMEN = new Subtype("Specimen", null, null, "S", Item.SAMPLE, false); |
1608 |
20 Apr 12 |
nicklas |
87 |
|
1608 |
20 Apr 12 |
nicklas |
88 |
/** |
1608 |
20 Apr 12 |
nicklas |
The definition of the "NoSpecimen" subtype (for cases when no specimen has been received). |
1608 |
20 Apr 12 |
nicklas |
@since 2.5 |
1608 |
20 Apr 12 |
nicklas |
91 |
*/ |
5088 |
13 Nov 18 |
nicklas |
92 |
public static final Subtype NO_SPECIMEN = new Subtype("NoSpecimen", null, null, "S", Item.SAMPLE, false); |
1608 |
20 Apr 12 |
nicklas |
93 |
|
1427 |
28 Oct 11 |
nicklas |
94 |
/** |
5774 |
04 Dec 19 |
nicklas |
The definition of the "TMASpecimen" subtype. |
5774 |
04 Dec 19 |
nicklas |
@since 4.25 |
5774 |
04 Dec 19 |
nicklas |
97 |
*/ |
5774 |
04 Dec 19 |
nicklas |
98 |
public static final Subtype TMA_SPECIMEN = new Subtype("TMASpecimen", null, "tma", "T", Item.SAMPLE, false); |
5774 |
04 Dec 19 |
nicklas |
99 |
|
5774 |
04 Dec 19 |
nicklas |
100 |
/** |
1427 |
28 Oct 11 |
nicklas |
The definition of the "Histology" subtype. |
1427 |
28 Oct 11 |
nicklas |
@since 2.0 |
1427 |
28 Oct 11 |
nicklas |
103 |
*/ |
5088 |
13 Nov 18 |
nicklas |
104 |
public static final Subtype HISTOLOGY = new Subtype("Histology", null, "his", null, Item.SAMPLE, false); |
1427 |
28 Oct 11 |
nicklas |
105 |
|
1427 |
28 Oct 11 |
nicklas |
106 |
/** |
1668 |
25 May 12 |
nicklas |
The definition of the "Stained" subtype. |
1668 |
25 May 12 |
nicklas |
@since 2.7 |
1668 |
25 May 12 |
nicklas |
109 |
*/ |
5088 |
13 Nov 18 |
nicklas |
110 |
public static final Subtype STAINED = new Subtype("Stained", null, "he", null, Item.SAMPLE, false); |
1668 |
25 May 12 |
nicklas |
111 |
|
3640 |
02 Dec 15 |
nicklas |
112 |
/** |
3640 |
02 Dec 15 |
nicklas |
The definition of the "Freezer" subtype. Should already exist in BASE. |
3640 |
02 Dec 15 |
nicklas |
@since 4.0 |
3640 |
02 Dec 15 |
nicklas |
115 |
*/ |
5088 |
13 Nov 18 |
nicklas |
116 |
public static final Subtype FREEZER = new Subtype("Freezer", null, null, null, Item.HARDWARE, false); |
1668 |
25 May 12 |
nicklas |
117 |
|
3640 |
02 Dec 15 |
nicklas |
118 |
|
1668 |
25 May 12 |
nicklas |
119 |
/** |
1427 |
28 Oct 11 |
nicklas |
The definition of the "Lysate" subtype. |
1427 |
28 Oct 11 |
nicklas |
@since 2.0 |
1427 |
28 Oct 11 |
nicklas |
122 |
*/ |
5088 |
13 Nov 18 |
nicklas |
123 |
public static final Subtype LYSATE = new Subtype("Lysate", null, "l", null, Item.EXTRACT, false); |
1427 |
28 Oct 11 |
nicklas |
124 |
|
1543 |
28 Feb 12 |
nicklas |
125 |
/** |
1543 |
28 Feb 12 |
nicklas |
The definition of the "DNA" extract subtype. |
1543 |
28 Feb 12 |
nicklas |
@since 2.4 |
1543 |
28 Feb 12 |
nicklas |
128 |
*/ |
5088 |
13 Nov 18 |
nicklas |
129 |
public static final Subtype DNA = new Subtype("DNA", null, "d", null, Item.EXTRACT, false); |
1427 |
28 Oct 11 |
nicklas |
130 |
|
1543 |
28 Feb 12 |
nicklas |
131 |
/** |
1543 |
28 Feb 12 |
nicklas |
The definition of the "RNA" extract subtype. |
1543 |
28 Feb 12 |
nicklas |
@since 2.4 |
1543 |
28 Feb 12 |
nicklas |
134 |
*/ |
5088 |
13 Nov 18 |
nicklas |
135 |
public static final Subtype RNA = new Subtype("RNA", null, "r", null, Item.EXTRACT, false); |
1543 |
28 Feb 12 |
nicklas |
136 |
|
1543 |
28 Feb 12 |
nicklas |
137 |
/** |
1639 |
09 May 12 |
nicklas |
The definition of the "FlowThrough" extract subtype. |
1639 |
09 May 12 |
nicklas |
@since 2.6 |
1639 |
09 May 12 |
nicklas |
140 |
*/ |
5088 |
13 Nov 18 |
nicklas |
141 |
public static final Subtype FLOW_THROUGH = new Subtype("FlowThrough", null, "ft", null, Item.EXTRACT, false); |
1639 |
09 May 12 |
nicklas |
142 |
|
1639 |
09 May 12 |
nicklas |
143 |
|
1639 |
09 May 12 |
nicklas |
144 |
/** |
1543 |
28 Feb 12 |
nicklas |
The definition of the "RNA Quality control" extract subtype. |
1543 |
28 Feb 12 |
nicklas |
@since 2.4 |
1543 |
28 Feb 12 |
nicklas |
147 |
*/ |
5088 |
13 Nov 18 |
nicklas |
148 |
public static final Subtype RNAQC = new Subtype("RNAQC", null, "qc", null, Item.EXTRACT, true); |
1543 |
28 Feb 12 |
nicklas |
149 |
|
2898 |
05 Nov 14 |
nicklas |
150 |
/** |
2898 |
05 Nov 14 |
nicklas |
The definition of the "RNANormalizedAliquot" extract subtype. |
2898 |
05 Nov 14 |
nicklas |
@since 2.18 |
2898 |
05 Nov 14 |
nicklas |
153 |
*/ |
5088 |
13 Nov 18 |
nicklas |
154 |
public static final Subtype RNA_NORMALIZED_ALIQUOT = new Subtype("RNANormalizedAliquot", null, "n", null, Item.EXTRACT, false); |
3269 |
23 Apr 15 |
nicklas |
155 |
|
3269 |
23 Apr 15 |
nicklas |
156 |
/** |
5359 |
12 Apr 19 |
nicklas |
The definition of the "DNANormalizedAliquot" extract subtype. |
5359 |
12 Apr 19 |
nicklas |
@since 4.23 |
5359 |
12 Apr 19 |
nicklas |
159 |
*/ |
5359 |
12 Apr 19 |
nicklas |
160 |
public static final Subtype DNA_NORMALIZED_ALIQUOT = new Subtype("DNANormalizedAliquot", null, "n", null, Item.EXTRACT, false); |
5359 |
12 Apr 19 |
nicklas |
161 |
|
5359 |
12 Apr 19 |
nicklas |
162 |
/** |
3269 |
23 Apr 15 |
nicklas |
The definition of the "RNANormalization" protocol subtype. |
3269 |
23 Apr 15 |
nicklas |
@since 3.4 |
3269 |
23 Apr 15 |
nicklas |
165 |
*/ |
5088 |
13 Nov 18 |
nicklas |
166 |
public static final Subtype RNA_NORMALIZATION_PROTOCOL = new Subtype("RNANormalization", null, null, null, Item.PROTOCOL, false); |
5359 |
12 Apr 19 |
nicklas |
167 |
|
5359 |
12 Apr 19 |
nicklas |
168 |
/** |
5359 |
12 Apr 19 |
nicklas |
The definition of the "DNANormalization" protocol subtype. |
5359 |
12 Apr 19 |
nicklas |
@since 4.23 |
5359 |
12 Apr 19 |
nicklas |
171 |
*/ |
5359 |
12 Apr 19 |
nicklas |
172 |
public static final Subtype DNA_NORMALIZATION_PROTOCOL = new Subtype("DNANormalization", null, null, null, Item.PROTOCOL, false); |
1427 |
28 Oct 11 |
nicklas |
173 |
|
1543 |
28 Feb 12 |
nicklas |
174 |
/** |
1543 |
28 Feb 12 |
nicklas |
The definition of the "Quality control" protocol subtype. |
1543 |
28 Feb 12 |
nicklas |
@since 2.4 |
1543 |
28 Feb 12 |
nicklas |
177 |
*/ |
5088 |
13 Nov 18 |
nicklas |
178 |
public static final Subtype QUALITY_CONTROL = new Subtype("Quality control", null, null, null, Item.PROTOCOL, false); |
1543 |
28 Feb 12 |
nicklas |
179 |
|
1543 |
28 Feb 12 |
nicklas |
180 |
/** |
1639 |
09 May 12 |
nicklas |
The definition of the "Sample handling" protocol subtype (used to create |
1639 |
09 May 12 |
nicklas |
Lysate items). |
1639 |
09 May 12 |
nicklas |
@since 2.6 |
1639 |
09 May 12 |
nicklas |
184 |
*/ |
5088 |
13 Nov 18 |
nicklas |
185 |
public static final Subtype SAMPLE_HANDLING_PROTOCOL = new Subtype("Sample handling", null, null, null, Item.PROTOCOL, false); |
1639 |
09 May 12 |
nicklas |
186 |
|
1639 |
09 May 12 |
nicklas |
187 |
/** |
1639 |
09 May 12 |
nicklas |
The definition of the "Extract" protocol subtype (used to create |
1639 |
09 May 12 |
nicklas |
other extract items). This should have been installed by BASE. |
1639 |
09 May 12 |
nicklas |
@since 2.6 |
1639 |
09 May 12 |
nicklas |
191 |
*/ |
5088 |
13 Nov 18 |
nicklas |
192 |
public static final Subtype EXTRACTION_PROTOCOL = new Subtype("Extraction", null, null, null, Item.PROTOCOL, false); |
1684 |
04 Jun 12 |
nicklas |
193 |
|
1684 |
04 Jun 12 |
nicklas |
194 |
/** |
1684 |
04 Jun 12 |
nicklas |
The definition of the "Histology" protocol subtype (used when embedding Histology items in |
1684 |
04 Jun 12 |
nicklas |
paraffin blocks). |
1684 |
04 Jun 12 |
nicklas |
@since 2.7 |
1684 |
04 Jun 12 |
nicklas |
198 |
*/ |
5088 |
13 Nov 18 |
nicklas |
199 |
public static final Subtype HISTOLOGY_PROTOCOL = new Subtype("Histology", null, null, null, Item.PROTOCOL, false); |
1684 |
04 Jun 12 |
nicklas |
200 |
|
1685 |
04 Jun 12 |
nicklas |
201 |
/** |
1685 |
04 Jun 12 |
nicklas |
The definition of the "Staining" protocol subtype (used when HE-staining Histology items). |
1685 |
04 Jun 12 |
nicklas |
@since 2.7 |
1685 |
04 Jun 12 |
nicklas |
204 |
*/ |
5088 |
13 Nov 18 |
nicklas |
205 |
public static final Subtype STAINING_PROTOCOL = new Subtype("Staining", null, null, null, Item.PROTOCOL, false); |
1639 |
09 May 12 |
nicklas |
206 |
|
1865 |
19 Feb 13 |
nicklas |
207 |
/** |
1865 |
19 Feb 13 |
nicklas |
The definition of the "mRNA" extract subtype. |
1867 |
19 Feb 13 |
nicklas |
@since 2.12 |
1865 |
19 Feb 13 |
nicklas |
210 |
*/ |
5088 |
13 Nov 18 |
nicklas |
211 |
public static final Subtype MRNA = new Subtype("mRNA", null, "m", null, Item.EXTRACT, false); |
1865 |
19 Feb 13 |
nicklas |
212 |
|
1865 |
19 Feb 13 |
nicklas |
213 |
/** |
1865 |
19 Feb 13 |
nicklas |
The definition of the "cDNA" extract subtype. |
1867 |
19 Feb 13 |
nicklas |
@since 2.12 |
1865 |
19 Feb 13 |
nicklas |
216 |
*/ |
5088 |
13 Nov 18 |
nicklas |
217 |
public static final Subtype CDNA = new Subtype("cDNA", null, "c", null, Item.EXTRACT, false); |
1865 |
19 Feb 13 |
nicklas |
218 |
|
1865 |
19 Feb 13 |
nicklas |
219 |
/** |
1865 |
19 Feb 13 |
nicklas |
The definition of the "Library" extract subtype. Should already exist |
1865 |
19 Feb 13 |
nicklas |
in BASE. |
1867 |
19 Feb 13 |
nicklas |
@since 2.12 |
1865 |
19 Feb 13 |
nicklas |
223 |
*/ |
5088 |
13 Nov 18 |
nicklas |
224 |
public static final Subtype LIBRARY = new Subtype("Library", null, "lib", null, Item.EXTRACT, false); |
1865 |
19 Feb 13 |
nicklas |
225 |
|
1865 |
19 Feb 13 |
nicklas |
226 |
/** |
1910 |
19 Mar 13 |
nicklas |
The definition of the "PooledLibrary" extract subtype. |
1910 |
19 Mar 13 |
nicklas |
@since 2.12 |
1910 |
19 Mar 13 |
nicklas |
229 |
*/ |
5088 |
13 Nov 18 |
nicklas |
230 |
public static final Subtype POOLED_LIBRARY = new Subtype("PooledLibrary", "Pool", null, null, Item.EXTRACT, false); |
1910 |
19 Mar 13 |
nicklas |
231 |
|
1910 |
19 Mar 13 |
nicklas |
232 |
/** |
2109 |
29 Oct 13 |
nicklas |
The definition of the "PooledLibraryAliquot" extract subtype. |
2109 |
29 Oct 13 |
nicklas |
@since 2.12 |
2109 |
29 Oct 13 |
nicklas |
235 |
*/ |
5088 |
13 Nov 18 |
nicklas |
236 |
public static final Subtype POOLED_LIBRARY_ALIQUOT = new Subtype("PooledLibraryAliquot", null, "a", null, Item.EXTRACT, false); |
2109 |
29 Oct 13 |
nicklas |
237 |
|
2109 |
29 Oct 13 |
nicklas |
238 |
|
2109 |
29 Oct 13 |
nicklas |
239 |
/** |
1910 |
19 Mar 13 |
nicklas |
The definition of the "FlowCell" physical bioassay subtype. |
1910 |
19 Mar 13 |
nicklas |
@since 2.12 |
1910 |
19 Mar 13 |
nicklas |
242 |
*/ |
5088 |
13 Nov 18 |
nicklas |
243 |
public static final Subtype FLOW_CELL = new Subtype("FlowCell", "FlowCell", null, null, Item.PHYSICALBIOASSAY, false); |
1910 |
19 Mar 13 |
nicklas |
244 |
|
6461 |
01 Nov 21 |
nicklas |
245 |
/** |
6461 |
01 Nov 21 |
nicklas |
The definition of the "BeadChip" physical bioassay subtype. |
6461 |
01 Nov 21 |
nicklas |
@since 4.34 |
6461 |
01 Nov 21 |
nicklas |
248 |
*/ |
6461 |
01 Nov 21 |
nicklas |
249 |
public static final Subtype BEAD_CHIP = new Subtype("BeadChip", "BeadChip", null, null, Item.PHYSICALBIOASSAY, false); |
2049 |
07 Oct 13 |
nicklas |
250 |
|
1910 |
19 Mar 13 |
nicklas |
251 |
/** |
6461 |
01 Nov 21 |
nicklas |
The definition of the "Scan" derived bioassay subtype. |
6461 |
01 Nov 21 |
nicklas |
@since 4.34 |
6461 |
01 Nov 21 |
nicklas |
254 |
*/ |
6461 |
01 Nov 21 |
nicklas |
255 |
public static final Subtype SCAN = new Subtype("Scan", "Scan", null, null, Item.DERIVEDBIOASSAY, false); |
6475 |
05 Nov 21 |
nicklas |
256 |
|
6461 |
01 Nov 21 |
nicklas |
257 |
/** |
6477 |
05 Nov 21 |
nicklas |
The definition of the "Scanner" hardware type. Should already exist in BASE. |
6477 |
05 Nov 21 |
nicklas |
@since 4.34 |
6477 |
05 Nov 21 |
nicklas |
260 |
*/ |
6477 |
05 Nov 21 |
nicklas |
261 |
public static final Subtype SCANNER = new Subtype("Scanner", null, null, null, Item.HARDWARE, false); |
6477 |
05 Nov 21 |
nicklas |
262 |
|
6477 |
05 Nov 21 |
nicklas |
263 |
/** |
6475 |
05 Nov 21 |
nicklas |
The definition of the "GenotypeCall" derived bioassay subtype. |
6475 |
05 Nov 21 |
nicklas |
@since 4.34 |
6475 |
05 Nov 21 |
nicklas |
266 |
*/ |
6475 |
05 Nov 21 |
nicklas |
267 |
public static final Subtype GENOTYPE_CALL = new Subtype("GenotypeCall", "GenotypeCall", null, null, Item.DERIVEDBIOASSAY, false); |
6475 |
05 Nov 21 |
nicklas |
268 |
|
6475 |
05 Nov 21 |
nicklas |
269 |
/** |
6475 |
05 Nov 21 |
nicklas |
The definition of the "Genotyping" software subtype. |
6475 |
05 Nov 21 |
nicklas |
@since 4.34 |
6475 |
05 Nov 21 |
nicklas |
272 |
*/ |
6475 |
05 Nov 21 |
nicklas |
273 |
public static final Subtype GENOTYPING_SOFTWARE = new Subtype("Genotyping", null, null, null, Item.SOFTWARE, false); |
6475 |
05 Nov 21 |
nicklas |
274 |
|
6475 |
05 Nov 21 |
nicklas |
275 |
/** |
6475 |
05 Nov 21 |
nicklas |
File subtype for genotype call files. |
6475 |
05 Nov 21 |
nicklas |
@since 4.34 |
6475 |
05 Nov 21 |
nicklas |
278 |
*/ |
6475 |
05 Nov 21 |
nicklas |
279 |
public static final Subtype GENOTYPE_CALL_FILE = new Subtype("Genotype call", null, null, null, Item.FILE, false); |
6475 |
05 Nov 21 |
nicklas |
280 |
|
6475 |
05 Nov 21 |
nicklas |
281 |
/** |
6865 |
09 Nov 22 |
nicklas |
The definition of the "Methylation" derived bioassay subtype. |
6865 |
09 Nov 22 |
nicklas |
@since 4.41 |
6865 |
09 Nov 22 |
nicklas |
284 |
*/ |
6865 |
09 Nov 22 |
nicklas |
285 |
public static final Subtype METHYLATION = new Subtype("Methylation", null, "mth", null, Item.DERIVEDBIOASSAY, false); |
6865 |
09 Nov 22 |
nicklas |
286 |
|
6865 |
09 Nov 22 |
nicklas |
287 |
/** |
6866 |
14 Nov 22 |
nicklas |
The definition of the "Methylation" software subtype. |
6866 |
14 Nov 22 |
nicklas |
@since 4.41 |
6866 |
14 Nov 22 |
nicklas |
290 |
*/ |
6866 |
14 Nov 22 |
nicklas |
291 |
public static final Subtype METHYLATION_SOFTWARE = new Subtype("Methylation", null, null, null, Item.SOFTWARE, false); |
6866 |
14 Nov 22 |
nicklas |
292 |
|
6870 |
16 Nov 22 |
nicklas |
293 |
/** |
6870 |
16 Nov 22 |
nicklas |
The definition of the "Methylation beta-analysis" job subtype. |
6870 |
16 Nov 22 |
nicklas |
@since 4.41 |
6870 |
16 Nov 22 |
nicklas |
296 |
*/ |
6870 |
16 Nov 22 |
nicklas |
297 |
public static final Subtype METHYLATION_BETA_JOB = new Subtype("MethylationBeta", null, null, null, Item.JOB, false); |
6866 |
14 Nov 22 |
nicklas |
298 |
|
6866 |
14 Nov 22 |
nicklas |
299 |
/** |
6866 |
14 Nov 22 |
nicklas |
File subtype for IDAT files. |
6866 |
14 Nov 22 |
nicklas |
@since 4.41 |
6866 |
14 Nov 22 |
nicklas |
302 |
*/ |
6866 |
14 Nov 22 |
nicklas |
303 |
public static final Subtype IDAT = new Subtype("IDAT", null, null, null, Item.FILE, false); |
7267 |
21 Jun 23 |
nicklas |
304 |
|
6866 |
14 Nov 22 |
nicklas |
305 |
|
6866 |
14 Nov 22 |
nicklas |
306 |
/** |
7267 |
21 Jun 23 |
nicklas |
The definition of the "CopyNumber" software subtype. |
7267 |
21 Jun 23 |
nicklas |
@since 4.49 |
7267 |
21 Jun 23 |
nicklas |
309 |
*/ |
7267 |
21 Jun 23 |
nicklas |
310 |
public static final Subtype COPY_NUMBER_SOFTWARE = new Subtype("Copy number", null, null, null, Item.SOFTWARE, false); |
7267 |
21 Jun 23 |
nicklas |
311 |
|
7268 |
22 Jun 23 |
nicklas |
312 |
/** |
7268 |
22 Jun 23 |
nicklas |
The definition of the "ASCAT" job subtype. |
7268 |
22 Jun 23 |
nicklas |
@since 4.49 |
7268 |
22 Jun 23 |
nicklas |
315 |
*/ |
7268 |
22 Jun 23 |
nicklas |
316 |
public static final Subtype ASCAT_JOB = new Subtype("ASCAT", null, null, null, Item.JOB, false); |
7268 |
22 Jun 23 |
nicklas |
317 |
|
7268 |
22 Jun 23 |
nicklas |
318 |
/** |
7268 |
22 Jun 23 |
nicklas |
The definition of the "CopyNumber" derived bioassay subtype. |
7268 |
22 Jun 23 |
nicklas |
@since 4.49 |
7268 |
22 Jun 23 |
nicklas |
321 |
*/ |
7268 |
22 Jun 23 |
nicklas |
322 |
public static final Subtype COPY_NUMBER = new Subtype("CopyNumber", null, "cn", null, Item.DERIVEDBIOASSAY, false); |
7268 |
22 Jun 23 |
nicklas |
323 |
|
7267 |
21 Jun 23 |
nicklas |
324 |
|
7267 |
21 Jun 23 |
nicklas |
325 |
/** |
2049 |
07 Oct 13 |
nicklas |
The definition of the "SequencingRun" derived bioassay subtype. |
2057 |
10 Oct 13 |
nicklas |
@since 2.13 |
2049 |
07 Oct 13 |
nicklas |
328 |
*/ |
5088 |
13 Nov 18 |
nicklas |
329 |
public static final Subtype SEQUENCING_RUN = new Subtype("SequencingRun", "SequencingRun", null, null, Item.DERIVEDBIOASSAY, false); |
2267 |
05 Mar 14 |
nicklas |
330 |
|
2267 |
05 Mar 14 |
nicklas |
331 |
/** |
4325 |
30 Jan 17 |
nicklas |
The definition of the "SequencingRun" job subtype. |
4325 |
30 Jan 17 |
nicklas |
@since 4.9 |
4325 |
30 Jan 17 |
nicklas |
334 |
*/ |
5088 |
13 Nov 18 |
nicklas |
335 |
public static final Subtype SEQUENCING_RUN_JOB = new Subtype("SequencingRun", null, null, null, Item.JOB, false); |
4325 |
30 Jan 17 |
nicklas |
336 |
|
4325 |
30 Jan 17 |
nicklas |
337 |
/** |
2267 |
05 Mar 14 |
nicklas |
The definition of the "DemuxedSequences" derived bioassay subtype. |
2267 |
05 Mar 14 |
nicklas |
@since 2.16 |
2267 |
05 Mar 14 |
nicklas |
340 |
*/ |
5088 |
13 Nov 18 |
nicklas |
341 |
public static final Subtype DEMUXED_SEQUENCES = new Subtype("DemuxedSequences", null, "x", null, Item.DERIVEDBIOASSAY, false); |
2267 |
05 Mar 14 |
nicklas |
342 |
|
2267 |
05 Mar 14 |
nicklas |
343 |
/** |
2267 |
05 Mar 14 |
nicklas |
The definition of the "MergedSequences" derived bioassay subtype. |
2267 |
05 Mar 14 |
nicklas |
@since 2.16 |
2267 |
05 Mar 14 |
nicklas |
346 |
*/ |
5088 |
13 Nov 18 |
nicklas |
347 |
public static final Subtype MERGED_SEQUENCES = new Subtype("MergedSequences", null, "g", null, Item.DERIVEDBIOASSAY, false); |
2375 |
24 Apr 14 |
nicklas |
348 |
|
2375 |
24 Apr 14 |
nicklas |
349 |
/** |
4325 |
30 Jan 17 |
nicklas |
The definition of the "DemuxAndMerge" job subtype. |
4325 |
30 Jan 17 |
nicklas |
@since 4.9 |
4325 |
30 Jan 17 |
nicklas |
352 |
*/ |
5088 |
13 Nov 18 |
nicklas |
353 |
public static final Subtype DEMUX_MERGE_JOB = new Subtype("DemuxAndMerge", null, null, null, Item.JOB, false); |
4325 |
30 Jan 17 |
nicklas |
354 |
|
6181 |
25 Mar 21 |
nicklas |
355 |
/** |
6181 |
25 Mar 21 |
nicklas |
The definition of the "FastqImport" job subtype. |
6181 |
25 Mar 21 |
nicklas |
@since 4.32 |
6181 |
25 Mar 21 |
nicklas |
358 |
*/ |
6181 |
25 Mar 21 |
nicklas |
359 |
public static final Subtype FASTQ_IMPORT_JOB = new Subtype("FASTQImport", null, null, null, Item.JOB, false); |
4325 |
30 Jan 17 |
nicklas |
360 |
|
4325 |
30 Jan 17 |
nicklas |
361 |
/** |
2420 |
13 May 14 |
nicklas |
The definition of the "MaskedSequences" derived bioassay subtype. |
2375 |
24 Apr 14 |
nicklas |
@since 2.16 |
2375 |
24 Apr 14 |
nicklas |
364 |
*/ |
5088 |
13 Nov 18 |
nicklas |
365 |
public static final Subtype MASKED_SEQUENCES = new Subtype("MaskedSequences", null, "k", null, Item.DERIVEDBIOASSAY, false); |
2375 |
24 Apr 14 |
nicklas |
366 |
|
2375 |
24 Apr 14 |
nicklas |
367 |
/** |
2375 |
24 Apr 14 |
nicklas |
The definition of the "AlignedSequences" derived bioassay subtype. |
2375 |
24 Apr 14 |
nicklas |
@since 2.16 |
2375 |
24 Apr 14 |
nicklas |
370 |
*/ |
5088 |
13 Nov 18 |
nicklas |
371 |
public static final Subtype ALIGNED_SEQUENCES = new Subtype("AlignedSequences", null, "a", null, Item.DERIVEDBIOASSAY, false); |
2049 |
07 Oct 13 |
nicklas |
372 |
|
2049 |
07 Oct 13 |
nicklas |
373 |
/** |
7388 |
31 Oct 23 |
nicklas |
The definition of the "PanelOfNormal" derived bioassay subtype. |
7388 |
31 Oct 23 |
nicklas |
@since 4.50 |
7388 |
31 Oct 23 |
nicklas |
376 |
*/ |
7388 |
31 Oct 23 |
nicklas |
377 |
public static final Subtype PANEL_OF_NORMAL = new Subtype("PanelOfNormal", null, "pon", null, Item.DERIVEDBIOASSAY, false); |
7388 |
31 Oct 23 |
nicklas |
378 |
|
7388 |
31 Oct 23 |
nicklas |
379 |
/** |
4325 |
30 Jan 17 |
nicklas |
The definition of the "MaskAndAlign" job subtype. |
4325 |
30 Jan 17 |
nicklas |
@since 4.9 |
4325 |
30 Jan 17 |
nicklas |
382 |
*/ |
5088 |
13 Nov 18 |
nicklas |
383 |
public static final Subtype MASK_ALIGN_JOB = new Subtype("MaskAndAlign", null, null, null, Item.JOB, false); |
4325 |
30 Jan 17 |
nicklas |
384 |
|
4325 |
30 Jan 17 |
nicklas |
385 |
/** |
4325 |
30 Jan 17 |
nicklas |
The definition of the "Cufflinks" job subtype. |
4325 |
30 Jan 17 |
nicklas |
@since 4.9 |
4325 |
30 Jan 17 |
nicklas |
388 |
*/ |
5088 |
13 Nov 18 |
nicklas |
389 |
public static final Subtype CUFFLINKS_JOB = new Subtype("Cufflinks", null, null, null, Item.JOB, false); |
4325 |
30 Jan 17 |
nicklas |
390 |
|
4325 |
30 Jan 17 |
nicklas |
391 |
/** |
4543 |
27 Jun 17 |
nicklas |
The definition of the legacy "Tophat" and "Cufflinks" job subtype. |
4543 |
27 Jun 17 |
nicklas |
@since 4.11 |
4543 |
27 Jun 17 |
nicklas |
394 |
*/ |
5088 |
13 Nov 18 |
nicklas |
395 |
public static final Subtype TOPHAT_CUFFLINKS_JOB = new Subtype("TophatAndCufflinks", null, null, null, Item.JOB, false); |
4543 |
27 Jun 17 |
nicklas |
396 |
|
4543 |
27 Jun 17 |
nicklas |
397 |
/** |
4588 |
25 Sep 17 |
nicklas |
The definition of the Hisat alignment job. |
4588 |
25 Sep 17 |
nicklas |
@since 4.12 |
4588 |
25 Sep 17 |
nicklas |
400 |
*/ |
5088 |
13 Nov 18 |
nicklas |
401 |
public static final Subtype HISAT_ALIGN_JOB = new Subtype("HisatAlign", null, null, null, Item.JOB, false); |
4588 |
25 Sep 17 |
nicklas |
402 |
|
4588 |
25 Sep 17 |
nicklas |
403 |
/** |
7085 |
31 Mar 23 |
nicklas |
The definition of the Bwa-mem2 alignment job. |
7085 |
31 Mar 23 |
nicklas |
@since 4.46 |
7085 |
31 Mar 23 |
nicklas |
406 |
*/ |
7085 |
31 Mar 23 |
nicklas |
407 |
public static final Subtype BWA_MEM2_ALIGN_JOB = new Subtype("BwaMem2Align", null, null, null, Item.JOB, false); |
7085 |
31 Mar 23 |
nicklas |
408 |
|
7085 |
31 Mar 23 |
nicklas |
409 |
/** |
5826 |
18 Feb 20 |
nicklas |
The definition of the MIPs alignment job. |
5826 |
18 Feb 20 |
nicklas |
@since 4.26 |
5826 |
18 Feb 20 |
nicklas |
412 |
*/ |
5826 |
18 Feb 20 |
nicklas |
413 |
public static final Subtype MIPS_ALIGN_JOB = new Subtype("MIPsAlign", null, null, null, Item.JOB, false); |
5826 |
18 Feb 20 |
nicklas |
414 |
|
5826 |
18 Feb 20 |
nicklas |
415 |
/** |
4664 |
30 Jan 18 |
nicklas |
The definition of the StringTie job. |
4664 |
30 Jan 18 |
nicklas |
@since 4.15 |
4664 |
30 Jan 18 |
nicklas |
418 |
*/ |
5088 |
13 Nov 18 |
nicklas |
419 |
public static final Subtype STRINGTIE_JOB = new Subtype("StringTie", null, null, null, Item.JOB, false); |
5032 |
16 Oct 18 |
nicklas |
420 |
|
5032 |
16 Oct 18 |
nicklas |
421 |
/** |
5032 |
16 Oct 18 |
nicklas |
The definition of the mBaf analysis job. |
5032 |
16 Oct 18 |
nicklas |
@since 4.20 |
5032 |
16 Oct 18 |
nicklas |
424 |
*/ |
5088 |
13 Nov 18 |
nicklas |
425 |
public static final Subtype MBAF_JOB = new Subtype("mBAF analysis", null, null, null, Item.JOB, false); |
5684 |
25 Oct 19 |
nicklas |
426 |
|
4664 |
30 Jan 18 |
nicklas |
427 |
/** |
5684 |
25 Oct 19 |
nicklas |
The definition of the variant calling job. |
5684 |
25 Oct 19 |
nicklas |
@since 4.20 |
5684 |
25 Oct 19 |
nicklas |
430 |
*/ |
5684 |
25 Oct 19 |
nicklas |
431 |
public static final Subtype VARIANT_CALLING_JOB = new Subtype("Variant calling", null, null, null, Item.JOB, false); |
5684 |
25 Oct 19 |
nicklas |
432 |
|
5684 |
25 Oct 19 |
nicklas |
433 |
/** |
6387 |
15 Sep 21 |
nicklas |
The definition of the targeted genotyping job. |
6389 |
15 Sep 21 |
nicklas |
@since 4.32 |
6387 |
15 Sep 21 |
nicklas |
436 |
*/ |
6387 |
15 Sep 21 |
nicklas |
437 |
public static final Subtype TARGETED_GENOTYPING_JOB = new Subtype("Targeted genotyping", null, null, null, Item.JOB, false); |
6387 |
15 Sep 21 |
nicklas |
438 |
|
6387 |
15 Sep 21 |
nicklas |
439 |
|
6387 |
15 Sep 21 |
nicklas |
440 |
/** |
5772 |
03 Dec 19 |
nicklas |
The definition of the variant calling job. |
5772 |
03 Dec 19 |
nicklas |
@since 4.25 |
5772 |
03 Dec 19 |
nicklas |
443 |
*/ |
5772 |
03 Dec 19 |
nicklas |
444 |
public static final Subtype VARIANT_STATISTICS_JOB = new Subtype("Variant statistics", null, null, null, Item.JOB, false); |
5922 |
27 Apr 20 |
nicklas |
445 |
|
5922 |
27 Apr 20 |
nicklas |
446 |
/** |
5922 |
27 Apr 20 |
nicklas |
The definition of the Single Sample Predictor job. |
5922 |
27 Apr 20 |
nicklas |
@since 4.27 |
5922 |
27 Apr 20 |
nicklas |
449 |
*/ |
5922 |
27 Apr 20 |
nicklas |
450 |
public static final Subtype SSP_JOB = new Subtype("Single Sample Predictor", null, null, null, Item.JOB, false); |
6010 |
18 Sep 20 |
nicklas |
451 |
|
6010 |
18 Sep 20 |
nicklas |
452 |
/** |
2057 |
10 Oct 13 |
nicklas |
The definition of the "Sequencer" hardware subtype. Should already exist in BASE. |
2057 |
10 Oct 13 |
nicklas |
@since 2.13 |
2057 |
10 Oct 13 |
nicklas |
455 |
*/ |
5088 |
13 Nov 18 |
nicklas |
456 |
public static final Subtype SEQUENCER = new Subtype("Sequencer", null, null, null, Item.HARDWARE, false); |
2057 |
10 Oct 13 |
nicklas |
457 |
|
2057 |
10 Oct 13 |
nicklas |
458 |
/** |
2107 |
29 Oct 13 |
nicklas |
The definition of the "Cluster generator" hardware subtype. Should already exist in BASE. |
2107 |
29 Oct 13 |
nicklas |
@since 2.13 |
2107 |
29 Oct 13 |
nicklas |
461 |
*/ |
5088 |
13 Nov 18 |
nicklas |
462 |
public static final Subtype CLUSTER_GENERATOR = new Subtype("Cluster generator", null, null, null, Item.HARDWARE, false); |
2107 |
29 Oct 13 |
nicklas |
463 |
|
2107 |
29 Oct 13 |
nicklas |
464 |
/** |
1865 |
19 Feb 13 |
nicklas |
The definition of the "mRNA preparation" protocol subtype. |
1867 |
19 Feb 13 |
nicklas |
@since 2.12 |
1865 |
19 Feb 13 |
nicklas |
467 |
*/ |
5088 |
13 Nov 18 |
nicklas |
468 |
public static final Subtype MRNA_PROTOCOL = new Subtype("mRNA preparation", null, null, null, Item.PROTOCOL, false); |
1865 |
19 Feb 13 |
nicklas |
469 |
|
1685 |
04 Jun 12 |
nicklas |
470 |
|
1639 |
09 May 12 |
nicklas |
471 |
/** |
1865 |
19 Feb 13 |
nicklas |
The definition of the "cDNA preparation" protocol subtype. |
1867 |
19 Feb 13 |
nicklas |
@since 2.12 |
1865 |
19 Feb 13 |
nicklas |
474 |
*/ |
5088 |
13 Nov 18 |
nicklas |
475 |
public static final Subtype CDNA_PROTOCOL = new Subtype("cDNA preparation", null, null, null, Item.PROTOCOL, false); |
1865 |
19 Feb 13 |
nicklas |
476 |
|
1865 |
19 Feb 13 |
nicklas |
477 |
/** |
1865 |
19 Feb 13 |
nicklas |
The definition of the "Barcode" subtype for tags. Should already |
1865 |
19 Feb 13 |
nicklas |
exist in BASE. |
1867 |
19 Feb 13 |
nicklas |
@since 2.12 |
1865 |
19 Feb 13 |
nicklas |
481 |
*/ |
5088 |
13 Nov 18 |
nicklas |
482 |
public static final Subtype BARCODE = new Subtype("Barcode", null, null, null, Item.TAG, false); |
1895 |
05 Mar 13 |
nicklas |
483 |
|
1895 |
05 Mar 13 |
nicklas |
484 |
/** |
1895 |
05 Mar 13 |
nicklas |
The definition of the "Library preparation" protocol subtype. Should already exist |
1895 |
05 Mar 13 |
nicklas |
in BASE. |
1895 |
05 Mar 13 |
nicklas |
@since 2.12 |
1895 |
05 Mar 13 |
nicklas |
488 |
*/ |
5088 |
13 Nov 18 |
nicklas |
489 |
public static final Subtype LIBRARY_PROTOCOL = new Subtype("Library preparation", null, null, null, Item.PROTOCOL, false); |
1895 |
05 Mar 13 |
nicklas |
490 |
|
1865 |
19 Feb 13 |
nicklas |
491 |
|
1865 |
19 Feb 13 |
nicklas |
492 |
/** |
1910 |
19 Mar 13 |
nicklas |
The definition of the "Pooling" protocol subtype. Should already exist |
1910 |
19 Mar 13 |
nicklas |
in BASE. |
1910 |
19 Mar 13 |
nicklas |
@since 2.12 |
1910 |
19 Mar 13 |
nicklas |
496 |
*/ |
5088 |
13 Nov 18 |
nicklas |
497 |
public static final Subtype POOLING_PROTOCOL = new Subtype("Pooling", null, null, null, Item.PROTOCOL, false); |
1910 |
19 Mar 13 |
nicklas |
498 |
|
1992 |
23 May 13 |
nicklas |
499 |
/** |
2020 |
13 Sep 13 |
nicklas |
The definition of the "Cluster generation" protocol subtype. Should already exist |
2020 |
13 Sep 13 |
nicklas |
in BASE. |
2020 |
13 Sep 13 |
nicklas |
@since 2.13 |
2020 |
13 Sep 13 |
nicklas |
503 |
*/ |
5088 |
13 Nov 18 |
nicklas |
504 |
public static final Subtype CLUSTER_PROTOCOL = new Subtype("Cluster generation", null, null, null, Item.PROTOCOL, false); |
2059 |
11 Oct 13 |
nicklas |
505 |
|
2020 |
13 Sep 13 |
nicklas |
506 |
/** |
2059 |
11 Oct 13 |
nicklas |
The definition of the "Sequencing" protocol subtype. Should already exist |
2059 |
11 Oct 13 |
nicklas |
in BASE. |
2059 |
11 Oct 13 |
nicklas |
@since 2.13 |
2059 |
11 Oct 13 |
nicklas |
510 |
*/ |
5088 |
13 Nov 18 |
nicklas |
511 |
public static final Subtype SEQUENCING_PROTOCOL = new Subtype("Sequencing", null, null, null, Item.PROTOCOL, false); |
2059 |
11 Oct 13 |
nicklas |
512 |
|
2267 |
05 Mar 14 |
nicklas |
513 |
/** |
2267 |
05 Mar 14 |
nicklas |
The definition of the "Demuxing" protocol subtype. |
2267 |
05 Mar 14 |
nicklas |
@since 2.16 |
2267 |
05 Mar 14 |
nicklas |
516 |
*/ |
5088 |
13 Nov 18 |
nicklas |
517 |
public static final Subtype DEMUX_PROTOCOL = new Subtype("Demuxing", null, null, null, Item.PROTOCOL, false); |
2267 |
05 Mar 14 |
nicklas |
518 |
|
2267 |
05 Mar 14 |
nicklas |
519 |
/** |
2267 |
05 Mar 14 |
nicklas |
The definition of the "Demuxing" software subtype. |
2267 |
05 Mar 14 |
nicklas |
@since 2.16 |
2267 |
05 Mar 14 |
nicklas |
522 |
*/ |
5088 |
13 Nov 18 |
nicklas |
523 |
public static final Subtype DEMUX_SOFTWARE = new Subtype("Demuxing", null, null, null, Item.SOFTWARE, false); |
2267 |
05 Mar 14 |
nicklas |
524 |
|
2267 |
05 Mar 14 |
nicklas |
525 |
/** |
2267 |
05 Mar 14 |
nicklas |
The definition of the "Merging" protocol subtype. |
2267 |
05 Mar 14 |
nicklas |
@since 2.16 |
2267 |
05 Mar 14 |
nicklas |
528 |
*/ |
5088 |
13 Nov 18 |
nicklas |
529 |
public static final Subtype MERGE_PROTOCOL = new Subtype("Merging", null, null, null, Item.PROTOCOL, false); |
2059 |
11 Oct 13 |
nicklas |
530 |
|
2059 |
11 Oct 13 |
nicklas |
531 |
/** |
2267 |
05 Mar 14 |
nicklas |
The definition of the "Merging" software subtype. |
2267 |
05 Mar 14 |
nicklas |
@since 2.16 |
2267 |
05 Mar 14 |
nicklas |
534 |
*/ |
5088 |
13 Nov 18 |
nicklas |
535 |
public static final Subtype MERGE_SOFTWARE = new Subtype("Merging", null, null, null, Item.SOFTWARE, false); |
2375 |
24 Apr 14 |
nicklas |
536 |
|
2267 |
05 Mar 14 |
nicklas |
537 |
/** |
2420 |
13 May 14 |
nicklas |
The definition of the "Masking" protocol subtype. |
2375 |
24 Apr 14 |
nicklas |
@since 2.16 |
2375 |
24 Apr 14 |
nicklas |
540 |
*/ |
5088 |
13 Nov 18 |
nicklas |
541 |
public static final Subtype MASKING_PROTOCOL = new Subtype("Masking", null, null, null, Item.PROTOCOL, false); |
2375 |
24 Apr 14 |
nicklas |
542 |
|
2375 |
24 Apr 14 |
nicklas |
543 |
/** |
2420 |
13 May 14 |
nicklas |
The definition of the "Masking" software subtype. |
2375 |
24 Apr 14 |
nicklas |
@since 2.16 |
2375 |
24 Apr 14 |
nicklas |
546 |
*/ |
5088 |
13 Nov 18 |
nicklas |
547 |
public static final Subtype MASKING_SOFTWARE = new Subtype("Masking", null, null, null, Item.SOFTWARE, false); |
2375 |
24 Apr 14 |
nicklas |
548 |
|
2375 |
24 Apr 14 |
nicklas |
549 |
/** |
2375 |
24 Apr 14 |
nicklas |
The definition of the "Alignment" protocol subtype. |
2375 |
24 Apr 14 |
nicklas |
@since 2.16 |
2375 |
24 Apr 14 |
nicklas |
552 |
*/ |
5088 |
13 Nov 18 |
nicklas |
553 |
public static final Subtype ALIGNMENT_PROTOCOL = new Subtype("Alignment", null, null, null, Item.PROTOCOL, false); |
2375 |
24 Apr 14 |
nicklas |
554 |
|
2375 |
24 Apr 14 |
nicklas |
555 |
/** |
2375 |
24 Apr 14 |
nicklas |
The definition of the "Alignment" software subtype. |
2375 |
24 Apr 14 |
nicklas |
@since 2.16 |
2375 |
24 Apr 14 |
nicklas |
558 |
*/ |
5088 |
13 Nov 18 |
nicklas |
559 |
public static final Subtype ALIGNMENT_SOFTWARE = new Subtype("Alignment", null, null, null, Item.SOFTWARE, false); |
2375 |
24 Apr 14 |
nicklas |
560 |
|
2375 |
24 Apr 14 |
nicklas |
561 |
/** |
2721 |
01 Oct 14 |
nicklas |
The definition of the "Feature extraction" protocol subtype. |
2721 |
01 Oct 14 |
nicklas |
@since 2.17 |
2721 |
01 Oct 14 |
nicklas |
564 |
*/ |
5088 |
13 Nov 18 |
nicklas |
565 |
public static final Subtype FEATURE_EXTRACTION_PROTOCOL = new Subtype("Feature extraction", null, null, null, Item.PROTOCOL, false); |
2721 |
01 Oct 14 |
nicklas |
566 |
|
2721 |
01 Oct 14 |
nicklas |
567 |
/** |
2721 |
01 Oct 14 |
nicklas |
The definition of the "Feature extraction" software subtype. |
2721 |
01 Oct 14 |
nicklas |
@since 2.17 |
2721 |
01 Oct 14 |
nicklas |
570 |
*/ |
5088 |
13 Nov 18 |
nicklas |
571 |
public static final Subtype FEATURE_EXTRACTION_SOFTWARE = new Subtype("Feature extraction", null, null, null, Item.SOFTWARE, false); |
2721 |
01 Oct 14 |
nicklas |
572 |
|
3616 |
23 Nov 15 |
nicklas |
573 |
/** |
5057 |
29 Oct 18 |
nicklas |
The definition of the "Variant calling" software subtype. |
5057 |
29 Oct 18 |
nicklas |
@since 4.20 |
5057 |
29 Oct 18 |
nicklas |
576 |
*/ |
5088 |
13 Nov 18 |
nicklas |
577 |
public static final Subtype VARIANT_CALLING_SOFTWARE = new Subtype("Variant calling", null, null, null, Item.SOFTWARE, false); |
5057 |
29 Oct 18 |
nicklas |
578 |
|
5057 |
29 Oct 18 |
nicklas |
579 |
/** |
3616 |
23 Nov 15 |
nicklas |
The definition of the "Report" software subtype. |
3616 |
23 Nov 15 |
nicklas |
@since 4.0 |
3616 |
23 Nov 15 |
nicklas |
582 |
*/ |
5088 |
13 Nov 18 |
nicklas |
583 |
public static final Subtype REPORT_SOFTWARE = new Subtype("Report", null, null, null, Item.SOFTWARE, false); |
2721 |
01 Oct 14 |
nicklas |
584 |
|
2721 |
01 Oct 14 |
nicklas |
585 |
/** |
4325 |
30 Jan 17 |
nicklas |
The definition of the "Report" job subtype. |
4325 |
30 Jan 17 |
nicklas |
@since 4.9 |
4325 |
30 Jan 17 |
nicklas |
588 |
*/ |
5088 |
13 Nov 18 |
nicklas |
589 |
public static final Subtype REPORT_JOB = new Subtype("Report", null, null, null, Item.JOB, false); |
4325 |
30 Jan 17 |
nicklas |
590 |
|
4325 |
30 Jan 17 |
nicklas |
591 |
/** |
1992 |
23 May 13 |
nicklas |
File subtype for BioAnalyzer PDF reports. |
1992 |
23 May 13 |
nicklas |
@since 2.12 |
1992 |
23 May 13 |
nicklas |
594 |
*/ |
5088 |
13 Nov 18 |
nicklas |
595 |
public static final Subtype BIOANALYZER_PDF = new Subtype("BioAnalyzer PDF", null, null, null, Item.FILE, false); |
1992 |
23 May 13 |
nicklas |
596 |
|
1992 |
23 May 13 |
nicklas |
597 |
/** |
1992 |
23 May 13 |
nicklas |
File subtype for Caliper PDF reports. |
1992 |
23 May 13 |
nicklas |
@since 2.12 |
1992 |
23 May 13 |
nicklas |
600 |
*/ |
5088 |
13 Nov 18 |
nicklas |
601 |
public static final Subtype CALIPER_PDF = new Subtype("Caliper PDF", null, null, null, Item.FILE, false); |
1992 |
23 May 13 |
nicklas |
602 |
|
1992 |
23 May 13 |
nicklas |
603 |
/** |
1992 |
23 May 13 |
nicklas |
File subtype for Caliper Well Table data files (CSV format). |
1992 |
23 May 13 |
nicklas |
@since 2.12 |
1992 |
23 May 13 |
nicklas |
606 |
*/ |
5088 |
13 Nov 18 |
nicklas |
607 |
public static final Subtype CALIPER_WELL_TABLE = new Subtype("Caliper Well Table", null, null, null, Item.FILE, false); |
1992 |
23 May 13 |
nicklas |
608 |
|
1992 |
23 May 13 |
nicklas |
609 |
/** |
1992 |
23 May 13 |
nicklas |
File subtype for Caliper raw data files (GXD format). |
1992 |
23 May 13 |
nicklas |
@since 2.12 |
1992 |
23 May 13 |
nicklas |
612 |
*/ |
5088 |
13 Nov 18 |
nicklas |
613 |
public static final Subtype CALIPER_RAW_DATA = new Subtype("Caliper Raw Data", null, null, null, Item.FILE, false); |
1992 |
23 May 13 |
nicklas |
614 |
|
1992 |
23 May 13 |
nicklas |
615 |
/** |
5300 |
14 Feb 19 |
nicklas |
File subtype for Qubit data files (CSV or Excel format). |
5300 |
14 Feb 19 |
nicklas |
TODO -- rename? |
1992 |
23 May 13 |
nicklas |
@since 2.12 |
1992 |
23 May 13 |
nicklas |
619 |
*/ |
5088 |
13 Nov 18 |
nicklas |
620 |
public static final Subtype QUBIT_CSV = new Subtype("Qubit CSV", null, null, null, Item.FILE, false); |
2565 |
11 Aug 14 |
nicklas |
621 |
|
2565 |
11 Aug 14 |
nicklas |
622 |
/** |
2565 |
11 Aug 14 |
nicklas |
File subtype for sequence data files. |
2565 |
11 Aug 14 |
nicklas |
@since 2.16 |
2565 |
11 Aug 14 |
nicklas |
625 |
*/ |
5088 |
13 Nov 18 |
nicklas |
626 |
public static final Subtype SEQUENCE_DATA = new Subtype("Sequence data", null, null, null, Item.FILE, false); |
2565 |
11 Aug 14 |
nicklas |
627 |
|
2565 |
11 Aug 14 |
nicklas |
628 |
/** |
2565 |
11 Aug 14 |
nicklas |
File subtype for aligned sequence data files. |
2565 |
11 Aug 14 |
nicklas |
@since 2.16 |
2565 |
11 Aug 14 |
nicklas |
631 |
*/ |
5088 |
13 Nov 18 |
nicklas |
632 |
public static final Subtype ALIGNED_SEQUENCE_DATA = new Subtype("Aligned sequence data", null, null, null, Item.FILE, false); |
2721 |
01 Oct 14 |
nicklas |
633 |
|
2721 |
01 Oct 14 |
nicklas |
634 |
/** |
4619 |
13 Nov 17 |
nicklas |
File subtype for variant call files. |
4619 |
13 Nov 17 |
nicklas |
@since 4.13 |
4619 |
13 Nov 17 |
nicklas |
637 |
*/ |
5088 |
13 Nov 18 |
nicklas |
638 |
public static final Subtype VARIANT_CALL_FORMAT = new Subtype("Variant call format", null, null, null, Item.FILE, false); |
4619 |
13 Nov 17 |
nicklas |
639 |
|
4619 |
13 Nov 17 |
nicklas |
640 |
/** |
2721 |
01 Oct 14 |
nicklas |
File subtype for raw data files. |
2721 |
01 Oct 14 |
nicklas |
@since 2.17 |
2721 |
01 Oct 14 |
nicklas |
643 |
*/ |
5088 |
13 Nov 18 |
nicklas |
644 |
public static final Subtype RAW_DATA = new Subtype("Raw data", null, null, null, Item.FILE, false); |
2721 |
01 Oct 14 |
nicklas |
645 |
|
1910 |
19 Mar 13 |
nicklas |
646 |
|
1910 |
19 Mar 13 |
nicklas |
647 |
/** |
1543 |
28 Feb 12 |
nicklas |
Create a subtype representation of an ItemSubtype object. |
1543 |
28 Feb 12 |
nicklas |
@since 2.4 |
1543 |
28 Feb 12 |
nicklas |
650 |
*/ |
1543 |
28 Feb 12 |
nicklas |
651 |
public static final Subtype get(ItemSubtype subtype) |
1543 |
28 Feb 12 |
nicklas |
652 |
{ |
5088 |
13 Nov 18 |
nicklas |
653 |
Subtype s = new Subtype(subtype.getName(), null, null, null, subtype.getMainItemType(), subtype.getPushAnnotations()); |
1543 |
28 Feb 12 |
nicklas |
654 |
s.id = subtype.getId(); |
1543 |
28 Feb 12 |
nicklas |
655 |
return s; |
1543 |
28 Feb 12 |
nicklas |
656 |
} |
1543 |
28 Feb 12 |
nicklas |
657 |
|
1544 |
29 Feb 12 |
nicklas |
658 |
/** |
1544 |
29 Feb 12 |
nicklas |
Get the subtype by name of the static constant defined in this class. |
1544 |
29 Feb 12 |
nicklas |
660 |
|
3571 |
30 Oct 15 |
nicklas |
@param cName The name of the static constant |
1544 |
29 Feb 12 |
nicklas |
@return A subtype object or null if not found |
1544 |
29 Feb 12 |
nicklas |
@since 2.4 |
1544 |
29 Feb 12 |
nicklas |
664 |
*/ |
1544 |
29 Feb 12 |
nicklas |
665 |
public static Subtype getByCName(String cName) |
1544 |
29 Feb 12 |
nicklas |
666 |
{ |
1544 |
29 Feb 12 |
nicklas |
667 |
if (cName == null) return null; |
1544 |
29 Feb 12 |
nicklas |
668 |
Subtype subtype = null; |
1544 |
29 Feb 12 |
nicklas |
669 |
try |
1544 |
29 Feb 12 |
nicklas |
670 |
{ |
1544 |
29 Feb 12 |
nicklas |
671 |
Field f = Subtype.class.getDeclaredField(cName); |
1544 |
29 Feb 12 |
nicklas |
672 |
subtype = (Subtype)f.get(null); |
1544 |
29 Feb 12 |
nicklas |
673 |
} |
1544 |
29 Feb 12 |
nicklas |
674 |
catch (NoSuchFieldException ex) |
1544 |
29 Feb 12 |
nicklas |
675 |
{} |
1544 |
29 Feb 12 |
nicklas |
676 |
catch (IllegalAccessException ex) |
1544 |
29 Feb 12 |
nicklas |
677 |
{} |
1544 |
29 Feb 12 |
nicklas |
678 |
catch (ClassCastException ex) |
1544 |
29 Feb 12 |
nicklas |
679 |
{} |
1544 |
29 Feb 12 |
nicklas |
680 |
return subtype; |
1544 |
29 Feb 12 |
nicklas |
681 |
} |
1544 |
29 Feb 12 |
nicklas |
682 |
|
5845 |
26 Feb 20 |
nicklas |
683 |
/** |
5845 |
26 Feb 20 |
nicklas |
Add a filter to the given query to only return items that |
5845 |
26 Feb 20 |
nicklas |
belong to a specific subtype. The subtype must be specified |
5845 |
26 Feb 20 |
nicklas |
by setting the "parameterName" parameter to the subtype |
5845 |
26 Feb 20 |
nicklas |
before executing the query. Use Query.setEntityParameter(). |
5845 |
26 Feb 20 |
nicklas |
@since 4.26 |
5845 |
26 Feb 20 |
nicklas |
689 |
*/ |
5845 |
26 Feb 20 |
nicklas |
690 |
public static void createFilterParameter(DbControl dc, ItemQuery<?> query, String alias, String parameterName) |
5845 |
26 Feb 20 |
nicklas |
691 |
{ |
5845 |
26 Feb 20 |
nicklas |
692 |
query.restrict(Restrictions.eq(Hql.property(alias, "itemSubtype"), Hql.entityParameter(parameterName, Item.ITEMSUBTYPE))); |
5845 |
26 Feb 20 |
nicklas |
693 |
} |
5845 |
26 Feb 20 |
nicklas |
694 |
|
1427 |
28 Oct 11 |
nicklas |
695 |
private final String name; |
3302 |
04 May 15 |
nicklas |
696 |
private final String itemSuffix; |
4894 |
09 Jul 18 |
nicklas |
697 |
private final String itemPrefix; |
5088 |
13 Nov 18 |
nicklas |
698 |
private final String externalIdPrefix; |
1427 |
28 Oct 11 |
nicklas |
699 |
private final Item mainType; |
1627 |
27 Apr 12 |
nicklas |
700 |
private final boolean pushAnnotations; |
1427 |
28 Oct 11 |
nicklas |
701 |
private int id; |
1543 |
28 Feb 12 |
nicklas |
702 |
private JSONObject json; |
1427 |
28 Oct 11 |
nicklas |
703 |
|
1427 |
28 Oct 11 |
nicklas |
704 |
/** |
1427 |
28 Oct 11 |
nicklas |
Create a new definition |
1427 |
28 Oct 11 |
nicklas |
@param name The name of the subtype |
5088 |
13 Nov 18 |
nicklas |
* @param mainType The main item type of the subtype |
1427 |
28 Oct 11 |
nicklas |
708 |
*/ |
5088 |
13 Nov 18 |
nicklas |
709 |
private Subtype(String name, String itemPrefix, String itemSuffix, String externalIdPrefix, Item mainType, boolean pushAnnotations) |
1427 |
28 Oct 11 |
nicklas |
710 |
{ |
1427 |
28 Oct 11 |
nicklas |
711 |
this.name = name; |
4894 |
09 Jul 18 |
nicklas |
712 |
this.itemPrefix = itemPrefix; |
3302 |
04 May 15 |
nicklas |
713 |
this.itemSuffix = itemSuffix; |
5088 |
13 Nov 18 |
nicklas |
714 |
this.externalIdPrefix = externalIdPrefix; |
1427 |
28 Oct 11 |
nicklas |
715 |
this.mainType = mainType; |
1627 |
27 Apr 12 |
nicklas |
716 |
this.pushAnnotations = pushAnnotations; |
1427 |
28 Oct 11 |
nicklas |
717 |
} |
1543 |
28 Feb 12 |
nicklas |
718 |
|
1427 |
28 Oct 11 |
nicklas |
719 |
/** |
1427 |
28 Oct 11 |
nicklas |
Get the name of the subtype. |
1427 |
28 Oct 11 |
nicklas |
721 |
*/ |
1427 |
28 Oct 11 |
nicklas |
722 |
public String getName() |
1427 |
28 Oct 11 |
nicklas |
723 |
{ |
1427 |
28 Oct 11 |
nicklas |
724 |
return name; |
1427 |
28 Oct 11 |
nicklas |
725 |
} |
1427 |
28 Oct 11 |
nicklas |
726 |
|
1427 |
28 Oct 11 |
nicklas |
727 |
/** |
3302 |
04 May 15 |
nicklas |
Get the suffix to use for items of this type. |
3302 |
04 May 15 |
nicklas |
Null if no suffix is used. |
3302 |
04 May 15 |
nicklas |
@since 3.4 |
3302 |
04 May 15 |
nicklas |
731 |
*/ |
3302 |
04 May 15 |
nicklas |
732 |
public String getItemSuffix() |
3302 |
04 May 15 |
nicklas |
733 |
{ |
3302 |
04 May 15 |
nicklas |
734 |
return itemSuffix; |
3302 |
04 May 15 |
nicklas |
735 |
} |
3302 |
04 May 15 |
nicklas |
736 |
|
3302 |
04 May 15 |
nicklas |
737 |
/** |
4894 |
09 Jul 18 |
nicklas |
Get the prefix to use for items of this type. |
4894 |
09 Jul 18 |
nicklas |
Null if no prefix is used. |
4894 |
09 Jul 18 |
nicklas |
@since 4.19 |
4894 |
09 Jul 18 |
nicklas |
741 |
*/ |
4894 |
09 Jul 18 |
nicklas |
742 |
public String getItemPrefix() |
4894 |
09 Jul 18 |
nicklas |
743 |
{ |
4894 |
09 Jul 18 |
nicklas |
744 |
return itemPrefix; |
4894 |
09 Jul 18 |
nicklas |
745 |
} |
4894 |
09 Jul 18 |
nicklas |
746 |
|
5088 |
13 Nov 18 |
nicklas |
747 |
/** |
5088 |
13 Nov 18 |
nicklas |
Get the prefix to use for the external id for items of this type. |
5088 |
13 Nov 18 |
nicklas |
Null if no prefix is used. |
5088 |
13 Nov 18 |
nicklas |
@since 4.21 |
5088 |
13 Nov 18 |
nicklas |
751 |
*/ |
5088 |
13 Nov 18 |
nicklas |
752 |
public String getExternalIdPrefix() |
5088 |
13 Nov 18 |
nicklas |
753 |
{ |
5088 |
13 Nov 18 |
nicklas |
754 |
return externalIdPrefix; |
5088 |
13 Nov 18 |
nicklas |
755 |
} |
4894 |
09 Jul 18 |
nicklas |
756 |
|
4894 |
09 Jul 18 |
nicklas |
757 |
/** |
1427 |
28 Oct 11 |
nicklas |
Get the main item type of the subtype. |
1427 |
28 Oct 11 |
nicklas |
759 |
*/ |
1427 |
28 Oct 11 |
nicklas |
760 |
public Item getMainType() |
1427 |
28 Oct 11 |
nicklas |
761 |
{ |
1427 |
28 Oct 11 |
nicklas |
762 |
return mainType; |
1427 |
28 Oct 11 |
nicklas |
763 |
} |
1427 |
28 Oct 11 |
nicklas |
764 |
|
1427 |
28 Oct 11 |
nicklas |
765 |
/** |
1627 |
27 Apr 12 |
nicklas |
Should annotations on items with this subtype be pushed |
1627 |
27 Apr 12 |
nicklas |
to the parent item or not? |
1627 |
27 Apr 12 |
nicklas |
@since 2.5 |
1627 |
27 Apr 12 |
nicklas |
769 |
*/ |
1627 |
27 Apr 12 |
nicklas |
770 |
public boolean getPushAnnotations() |
1627 |
27 Apr 12 |
nicklas |
771 |
{ |
1627 |
27 Apr 12 |
nicklas |
772 |
return pushAnnotations; |
1627 |
27 Apr 12 |
nicklas |
773 |
} |
1627 |
27 Apr 12 |
nicklas |
774 |
|
1627 |
27 Apr 12 |
nicklas |
775 |
/** |
1543 |
28 Feb 12 |
nicklas |
Get the subtype information as a JSON object ready to be sent as an AJAX response. |
1543 |
28 Feb 12 |
nicklas |
@since 2.4 |
1543 |
28 Feb 12 |
nicklas |
778 |
*/ |
1543 |
28 Feb 12 |
nicklas |
779 |
public JSONObject asJSONObject(DbControl dc) |
1543 |
28 Feb 12 |
nicklas |
780 |
{ |
1543 |
28 Feb 12 |
nicklas |
781 |
if (json == null) |
1543 |
28 Feb 12 |
nicklas |
782 |
{ |
1543 |
28 Feb 12 |
nicklas |
783 |
if (id==0) load(dc); // Ensure that the subtype has been loaded |
1543 |
28 Feb 12 |
nicklas |
784 |
json = new JSONObject(); |
1543 |
28 Feb 12 |
nicklas |
785 |
json.put("id", id); |
1543 |
28 Feb 12 |
nicklas |
786 |
json.put("name", getName()); |
1543 |
28 Feb 12 |
nicklas |
787 |
json.put("mainType", getMainType().name()); |
1543 |
28 Feb 12 |
nicklas |
788 |
} |
1543 |
28 Feb 12 |
nicklas |
789 |
return json; |
1543 |
28 Feb 12 |
nicklas |
790 |
} |
1543 |
28 Feb 12 |
nicklas |
791 |
|
1543 |
28 Feb 12 |
nicklas |
792 |
/** |
1644 |
15 May 12 |
nicklas |
Load the subtype as a BASE item. Same as {@link #get(DbControl)} |
1644 |
15 May 12 |
nicklas |
but throw an exception instead of returning null if no BASE |
1644 |
15 May 12 |
nicklas |
item exists. |
1427 |
28 Oct 11 |
nicklas |
@param dc The DbControl to use for database access |
1518 |
23 Jan 12 |
nicklas |
@return An ItemSubtype object |
1427 |
28 Oct 11 |
nicklas |
798 |
*/ |
1427 |
28 Oct 11 |
nicklas |
799 |
public ItemSubtype load(DbControl dc) |
1427 |
28 Oct 11 |
nicklas |
800 |
{ |
1427 |
28 Oct 11 |
nicklas |
801 |
ItemSubtype subtype = null; |
1427 |
28 Oct 11 |
nicklas |
802 |
if (id == 0) |
1427 |
28 Oct 11 |
nicklas |
803 |
{ |
1610 |
23 Apr 12 |
nicklas |
804 |
List<ItemSubtype> result = list(dc); |
1610 |
23 Apr 12 |
nicklas |
805 |
if (result.size() == 0) |
1610 |
23 Apr 12 |
nicklas |
806 |
{ |
1610 |
23 Apr 12 |
nicklas |
807 |
throw new ItemNotFoundException("ItemSubtype["+name+"]"); |
1610 |
23 Apr 12 |
nicklas |
808 |
} |
1610 |
23 Apr 12 |
nicklas |
809 |
else if (result.size() > 1) |
1610 |
23 Apr 12 |
nicklas |
810 |
{ |
1610 |
23 Apr 12 |
nicklas |
811 |
throw new InvalidDataException("Found > 1 ItemSubtype["+name+"]"); |
1610 |
23 Apr 12 |
nicklas |
812 |
} |
1610 |
23 Apr 12 |
nicklas |
813 |
subtype = result.get(0); |
1427 |
28 Oct 11 |
nicklas |
814 |
id = subtype.getId(); |
1427 |
28 Oct 11 |
nicklas |
815 |
} |
1427 |
28 Oct 11 |
nicklas |
816 |
else |
1427 |
28 Oct 11 |
nicklas |
817 |
{ |
1427 |
28 Oct 11 |
nicklas |
818 |
subtype = ItemSubtype.getById(dc, id); |
1427 |
28 Oct 11 |
nicklas |
819 |
} |
1427 |
28 Oct 11 |
nicklas |
820 |
return subtype; |
1427 |
28 Oct 11 |
nicklas |
821 |
} |
1427 |
28 Oct 11 |
nicklas |
822 |
|
1492 |
02 Dec 11 |
nicklas |
823 |
/** |
1644 |
15 May 12 |
nicklas |
Load the subtype as a BASE item. Same as {@link #load(DbControl)} but return null |
1644 |
15 May 12 |
nicklas |
if no BASE item is found instead of throwing an exception. |
1644 |
15 May 12 |
nicklas |
@param dc The DbControl to use for database access |
1644 |
15 May 12 |
nicklas |
@return An ItemSubtype object |
1644 |
15 May 12 |
nicklas |
@since 2.6 |
1644 |
15 May 12 |
nicklas |
829 |
*/ |
1644 |
15 May 12 |
nicklas |
830 |
public ItemSubtype get(DbControl dc) |
1644 |
15 May 12 |
nicklas |
831 |
{ |
1644 |
15 May 12 |
nicklas |
832 |
ItemSubtype subtype = null; |
1644 |
15 May 12 |
nicklas |
833 |
if (id == 0) |
1644 |
15 May 12 |
nicklas |
834 |
{ |
1644 |
15 May 12 |
nicklas |
835 |
List<ItemSubtype> result = list(dc); |
1644 |
15 May 12 |
nicklas |
836 |
if (result.size() == 1) |
1644 |
15 May 12 |
nicklas |
837 |
{ |
1644 |
15 May 12 |
nicklas |
838 |
subtype = result.get(0); |
1644 |
15 May 12 |
nicklas |
839 |
id = subtype.getId(); |
1644 |
15 May 12 |
nicklas |
840 |
} |
1644 |
15 May 12 |
nicklas |
841 |
} |
1644 |
15 May 12 |
nicklas |
842 |
else |
1644 |
15 May 12 |
nicklas |
843 |
{ |
1644 |
15 May 12 |
nicklas |
844 |
subtype = ItemSubtype.getById(dc, id); |
1644 |
15 May 12 |
nicklas |
845 |
} |
1644 |
15 May 12 |
nicklas |
846 |
return subtype; |
1644 |
15 May 12 |
nicklas |
847 |
|
1644 |
15 May 12 |
nicklas |
848 |
} |
1644 |
15 May 12 |
nicklas |
849 |
|
1644 |
15 May 12 |
nicklas |
850 |
/** |
1640 |
09 May 12 |
nicklas |
List all subtypes registered in BASE with a name and main item type |
1640 |
09 May 12 |
nicklas |
matching this subtype definition. Normally, only a single subtype |
1640 |
09 May 12 |
nicklas |
should be returned. |
1610 |
23 Apr 12 |
nicklas |
854 |
*/ |
1610 |
23 Apr 12 |
nicklas |
855 |
public List<ItemSubtype> list(DbControl dc) |
1610 |
23 Apr 12 |
nicklas |
856 |
{ |
1640 |
09 May 12 |
nicklas |
857 |
ItemQuery<ItemSubtype> query = ItemSubtype.getQuery(getMainType()); |
1610 |
23 Apr 12 |
nicklas |
858 |
query.restrict( |
1610 |
23 Apr 12 |
nicklas |
859 |
Restrictions.eq( |
1610 |
23 Apr 12 |
nicklas |
860 |
Hql.property("name"), |
1610 |
23 Apr 12 |
nicklas |
861 |
Expressions.parameter("name", getName(), Type.STRING) |
1610 |
23 Apr 12 |
nicklas |
862 |
)); |
1610 |
23 Apr 12 |
nicklas |
863 |
query.include(Include.ALL); |
1610 |
23 Apr 12 |
nicklas |
864 |
return query.list(dc); |
1610 |
23 Apr 12 |
nicklas |
865 |
} |
1610 |
23 Apr 12 |
nicklas |
866 |
|
1610 |
23 Apr 12 |
nicklas |
867 |
/** |
1492 |
02 Dec 11 |
nicklas |
Add a filter restriction the given query so that it |
1492 |
02 Dec 11 |
nicklas |
only return items of this subtype. |
1492 |
02 Dec 11 |
nicklas |
870 |
|
1492 |
02 Dec 11 |
nicklas |
@param query The query to filter |
1492 |
02 Dec 11 |
nicklas |
@since 2.1 |
1492 |
02 Dec 11 |
nicklas |
873 |
*/ |
1503 |
18 Jan 12 |
nicklas |
874 |
public void addFilter(DbControl dc, ItemQuery<? extends Subtypable> query) |
1492 |
02 Dec 11 |
nicklas |
875 |
{ |
1503 |
18 Jan 12 |
nicklas |
876 |
addFilter(dc, query, null); |
1492 |
02 Dec 11 |
nicklas |
877 |
} |
1492 |
02 Dec 11 |
nicklas |
878 |
|
1492 |
02 Dec 11 |
nicklas |
879 |
/** |
1492 |
02 Dec 11 |
nicklas |
Add a filter restriction to the given query based on the |
1492 |
02 Dec 11 |
nicklas |
given subtype. If no alias is specified, the filter is |
1492 |
02 Dec 11 |
nicklas |
applied to the root item, otherwise it is applied |
1492 |
02 Dec 11 |
nicklas |
to the alias of a joined (eg. parent or child) item |
1492 |
02 Dec 11 |
nicklas |
884 |
|
1492 |
02 Dec 11 |
nicklas |
@param query The query to restrict |
1492 |
02 Dec 11 |
nicklas |
@param alias Specify an alias if the filter should be |
1492 |
02 Dec 11 |
nicklas |
placed on a joined (eg. child or parent) item instead |
1492 |
02 Dec 11 |
nicklas |
of the root item |
1492 |
02 Dec 11 |
nicklas |
@since 2.1 |
1492 |
02 Dec 11 |
nicklas |
890 |
*/ |
1543 |
28 Feb 12 |
nicklas |
891 |
public void addFilter(DbControl dc, ItemQuery<?> query, String alias) |
1492 |
02 Dec 11 |
nicklas |
892 |
{ |
1543 |
28 Feb 12 |
nicklas |
893 |
query.restrict(restriction(dc, alias)); |
1543 |
28 Feb 12 |
nicklas |
894 |
} |
1543 |
28 Feb 12 |
nicklas |
895 |
|
1543 |
28 Feb 12 |
nicklas |
896 |
public Restriction restriction(DbControl dc, String alias) |
1543 |
28 Feb 12 |
nicklas |
897 |
{ |
1503 |
18 Jan 12 |
nicklas |
898 |
if (id==0) load(dc); // Ensure that the subtype has been loaded |
1543 |
28 Feb 12 |
nicklas |
899 |
return Restrictions.eq(Hql.property(alias, "itemSubtype.id"), Expressions.integer(id)); |
1492 |
02 Dec 11 |
nicklas |
900 |
} |
1543 |
28 Feb 12 |
nicklas |
901 |
|
3069 |
09 Jan 15 |
nicklas |
902 |
/** |
3069 |
09 Jan 15 |
nicklas |
Get the latest item that is the project default item of this |
3069 |
09 Jan 15 |
nicklas |
subtype. In this case, an item with a higher ID is considerd |
3069 |
09 Jan 15 |
nicklas |
later than an item with a lower ID. |
3618 |
23 Nov 15 |
nicklas |
@since 3.0, 4.0 |
3069 |
09 Jan 15 |
nicklas |
907 |
*/ |
3618 |
23 Nov 15 |
nicklas |
908 |
@SuppressWarnings("unchecked") |
3618 |
23 Nov 15 |
nicklas |
909 |
public <T extends BasicItem> T getLatestProjectDefault(DbControl dc, Filter<? super T> filter) |
3069 |
09 Jan 15 |
nicklas |
910 |
{ |
3069 |
09 Jan 15 |
nicklas |
911 |
int projectId = dc.getSessionControl().getActiveProjectId(); |
3618 |
23 Nov 15 |
nicklas |
912 |
T bestMatch = null; |
3069 |
09 Jan 15 |
nicklas |
913 |
if (projectId != 0) |
3069 |
09 Jan 15 |
nicklas |
914 |
{ |
3069 |
09 Jan 15 |
nicklas |
915 |
Project p = Project.getById(dc, projectId); |
3069 |
09 Jan 15 |
nicklas |
916 |
List<? extends BasicItem> defaultItems = p.findDefaultItems(dc, get(dc), true); |
3069 |
09 Jan 15 |
nicklas |
917 |
for (BasicItem item : defaultItems) |
3069 |
09 Jan 15 |
nicklas |
918 |
{ |
3069 |
09 Jan 15 |
nicklas |
919 |
if (bestMatch == null || bestMatch.getId() < item.getId()) |
3069 |
09 Jan 15 |
nicklas |
920 |
{ |
3618 |
23 Nov 15 |
nicklas |
921 |
if (filter == null || filter.evaluate((T)item)) |
3618 |
23 Nov 15 |
nicklas |
922 |
{ |
3618 |
23 Nov 15 |
nicklas |
923 |
bestMatch = (T)item; |
3618 |
23 Nov 15 |
nicklas |
924 |
} |
3069 |
09 Jan 15 |
nicklas |
925 |
} |
3069 |
09 Jan 15 |
nicklas |
926 |
} |
3069 |
09 Jan 15 |
nicklas |
927 |
} |
3069 |
09 Jan 15 |
nicklas |
928 |
return bestMatch; |
3069 |
09 Jan 15 |
nicklas |
929 |
} |
3503 |
22 Sep 15 |
nicklas |
930 |
|
3503 |
22 Sep 15 |
nicklas |
931 |
@Override |
3503 |
22 Sep 15 |
nicklas |
932 |
public int hashCode() |
3503 |
22 Sep 15 |
nicklas |
933 |
{ |
3503 |
22 Sep 15 |
nicklas |
934 |
return id; |
3503 |
22 Sep 15 |
nicklas |
935 |
} |
3503 |
22 Sep 15 |
nicklas |
936 |
|
3503 |
22 Sep 15 |
nicklas |
937 |
@Override |
3503 |
22 Sep 15 |
nicklas |
938 |
public boolean equals(Object other) |
3503 |
22 Sep 15 |
nicklas |
939 |
{ |
3503 |
22 Sep 15 |
nicklas |
940 |
if (this == other) return true; |
3503 |
22 Sep 15 |
nicklas |
941 |
if (other == null || this.getClass() != other.getClass()) return false; |
3503 |
22 Sep 15 |
nicklas |
942 |
return id == ((Subtype)other).id; |
3503 |
22 Sep 15 |
nicklas |
943 |
} |
3069 |
09 Jan 15 |
nicklas |
944 |
|
1427 |
28 Oct 11 |
nicklas |
945 |
} |