396 |
15 Aug 07 |
dominic |
1 |
package uk.ac.ebi.nugo.common; |
396 |
15 Aug 07 |
dominic |
2 |
|
396 |
15 Aug 07 |
dominic |
3 |
import java.util.ArrayList; |
396 |
15 Aug 07 |
dominic |
4 |
import java.util.Arrays; |
396 |
15 Aug 07 |
dominic |
5 |
import java.util.List; |
396 |
15 Aug 07 |
dominic |
6 |
import java.util.Set; |
396 |
15 Aug 07 |
dominic |
7 |
import java.util.concurrent.ConcurrentHashMap; |
396 |
15 Aug 07 |
dominic |
8 |
|
396 |
15 Aug 07 |
dominic |
9 |
import net.sf.basedb.core.AnnotationType; |
396 |
15 Aug 07 |
dominic |
10 |
import net.sf.basedb.core.ArrayBatch; |
396 |
15 Aug 07 |
dominic |
11 |
import net.sf.basedb.core.ArrayDesign; |
396 |
15 Aug 07 |
dominic |
12 |
import net.sf.basedb.core.ArraySlide; |
449 |
30 Oct 07 |
dominic |
13 |
import net.sf.basedb.core.BaseException; |
423 |
12 Sep 07 |
dominic |
14 |
import net.sf.basedb.core.BioSource; |
396 |
15 Aug 07 |
dominic |
15 |
import net.sf.basedb.core.DbControl; |
449 |
30 Oct 07 |
dominic |
16 |
import net.sf.basedb.core.Directory; |
396 |
15 Aug 07 |
dominic |
17 |
import net.sf.basedb.core.Extract; |
396 |
15 Aug 07 |
dominic |
18 |
import net.sf.basedb.core.File; |
396 |
15 Aug 07 |
dominic |
19 |
import net.sf.basedb.core.Include; |
396 |
15 Aug 07 |
dominic |
20 |
import net.sf.basedb.core.ItemAlreadyExistsException; |
396 |
15 Aug 07 |
dominic |
21 |
import net.sf.basedb.core.ItemQuery; |
396 |
15 Aug 07 |
dominic |
22 |
import net.sf.basedb.core.ItemResultList; |
396 |
15 Aug 07 |
dominic |
23 |
import net.sf.basedb.core.Label; |
423 |
12 Sep 07 |
dominic |
24 |
import net.sf.basedb.core.LabeledExtract; |
396 |
15 Aug 07 |
dominic |
25 |
import net.sf.basedb.core.Path; |
396 |
15 Aug 07 |
dominic |
26 |
import net.sf.basedb.core.Sample; |
449 |
30 Oct 07 |
dominic |
27 |
import net.sf.basedb.core.SessionControl; |
423 |
12 Sep 07 |
dominic |
28 |
import net.sf.basedb.core.Type; |
396 |
15 Aug 07 |
dominic |
29 |
import net.sf.basedb.core.User; |
396 |
15 Aug 07 |
dominic |
30 |
import net.sf.basedb.core.query.Expressions; |
396 |
15 Aug 07 |
dominic |
31 |
import net.sf.basedb.core.query.Hql; |
396 |
15 Aug 07 |
dominic |
32 |
import net.sf.basedb.core.query.Restrictions; |
396 |
15 Aug 07 |
dominic |
33 |
|
396 |
15 Aug 07 |
dominic |
34 |
/** |
396 |
15 Aug 07 |
dominic |
A plugin utils class for the tab2mage export and export. |
449 |
30 Oct 07 |
dominic |
@author Dominic Oyeniran |
396 |
15 Aug 07 |
dominic |
@version 1.0 |
396 |
15 Aug 07 |
dominic |
38 |
*/ |
396 |
15 Aug 07 |
dominic |
39 |
|
396 |
15 Aug 07 |
dominic |
40 |
public class Helper |
396 |
15 Aug 07 |
dominic |
41 |
{ |
396 |
15 Aug 07 |
dominic |
42 |
/** |
396 |
15 Aug 07 |
dominic |
creates the exports files and throws an exception if the file is already exisiting |
396 |
15 Aug 07 |
dominic |
@param user, the logged in user |
396 |
15 Aug 07 |
dominic |
@param overwrite, false if an existing file should not be overwritten and true otherwise |
396 |
15 Aug 07 |
dominic |
@param pathString, the file path |
396 |
15 Aug 07 |
dominic |
@throws ItemAlreadyExistsException |
396 |
15 Aug 07 |
dominic |
48 |
*/ |
396 |
15 Aug 07 |
dominic |
49 |
|
396 |
15 Aug 07 |
dominic |
50 |
public static File processFilePath (User user,boolean overwrite, DbControl dc, String pathString) |
396 |
15 Aug 07 |
dominic |
51 |
{ |
396 |
15 Aug 07 |
dominic |
52 |
if (pathString.startsWith("~/")) |
396 |
15 Aug 07 |
dominic |
53 |
{ |
396 |
15 Aug 07 |
dominic |
54 |
pathString = "~"+user.getLogin()+pathString.substring(1); |
396 |
15 Aug 07 |
dominic |
55 |
} |
396 |
15 Aug 07 |
dominic |
56 |
Path path = new Path(pathString, Path.Type.FILE); |
396 |
15 Aug 07 |
dominic |
57 |
|
396 |
15 Aug 07 |
dominic |
58 |
File file = File.getByPath(dc, path, true); |
396 |
15 Aug 07 |
dominic |
59 |
file.setMimeType("text/plain"); //set the type of the file |
396 |
15 Aug 07 |
dominic |
60 |
if (file.isInDatabase() && !overwrite && !file.isRemoved()) |
396 |
15 Aug 07 |
dominic |
61 |
{ |
396 |
15 Aug 07 |
dominic |
62 |
throw new ItemAlreadyExistsException("File[path="+path+"]"); |
396 |
15 Aug 07 |
dominic |
63 |
} |
396 |
15 Aug 07 |
dominic |
64 |
else if(!file.isInDatabase()) |
396 |
15 Aug 07 |
dominic |
65 |
{ |
396 |
15 Aug 07 |
dominic |
66 |
dc.saveItem(file); |
396 |
15 Aug 07 |
dominic |
67 |
} |
396 |
15 Aug 07 |
dominic |
68 |
return file; |
396 |
15 Aug 07 |
dominic |
69 |
} |
396 |
15 Aug 07 |
dominic |
70 |
|
396 |
15 Aug 07 |
dominic |
71 |
|
449 |
30 Oct 07 |
dominic |
72 |
public static File processFilePath (User user,boolean overwrite, SessionControl sc, String pathString) |
449 |
30 Oct 07 |
dominic |
73 |
{ |
449 |
30 Oct 07 |
dominic |
74 |
DbControl dc= null; |
449 |
30 Oct 07 |
dominic |
75 |
File file =null; |
449 |
30 Oct 07 |
dominic |
76 |
try |
449 |
30 Oct 07 |
dominic |
77 |
{ |
449 |
30 Oct 07 |
dominic |
78 |
dc= sc.newDbControl(); |
449 |
30 Oct 07 |
dominic |
79 |
if (pathString.startsWith("~/")) |
449 |
30 Oct 07 |
dominic |
80 |
{ |
449 |
30 Oct 07 |
dominic |
81 |
pathString = "~"+user.getLogin()+pathString.substring(1); |
449 |
30 Oct 07 |
dominic |
82 |
} |
449 |
30 Oct 07 |
dominic |
83 |
Path path = new Path(pathString, Path.Type.FILE); |
449 |
30 Oct 07 |
dominic |
84 |
file= File.getByPath(dc, path, true); |
449 |
30 Oct 07 |
dominic |
85 |
file.setMimeType("text/plain"); //set the type of the file |
449 |
30 Oct 07 |
dominic |
86 |
if (file.isInDatabase() && !overwrite && !file.isRemoved()) |
449 |
30 Oct 07 |
dominic |
87 |
{ |
449 |
30 Oct 07 |
dominic |
88 |
throw new ItemAlreadyExistsException("File[path="+path+"]"); |
449 |
30 Oct 07 |
dominic |
89 |
} |
449 |
30 Oct 07 |
dominic |
90 |
else if(!file.isInDatabase()) |
449 |
30 Oct 07 |
dominic |
91 |
{ |
449 |
30 Oct 07 |
dominic |
92 |
dc.saveItem(file); |
449 |
30 Oct 07 |
dominic |
93 |
} |
449 |
30 Oct 07 |
dominic |
94 |
dc.commit(); |
449 |
30 Oct 07 |
dominic |
95 |
} |
449 |
30 Oct 07 |
dominic |
96 |
catch(Exception e) |
449 |
30 Oct 07 |
dominic |
97 |
{ |
449 |
30 Oct 07 |
dominic |
98 |
dc.close(); |
449 |
30 Oct 07 |
dominic |
99 |
} |
449 |
30 Oct 07 |
dominic |
100 |
finally |
449 |
30 Oct 07 |
dominic |
101 |
{ |
449 |
30 Oct 07 |
dominic |
102 |
if (dc!=null) |
449 |
30 Oct 07 |
dominic |
103 |
dc.close(); |
449 |
30 Oct 07 |
dominic |
104 |
} |
449 |
30 Oct 07 |
dominic |
105 |
|
449 |
30 Oct 07 |
dominic |
106 |
return file; |
449 |
30 Oct 07 |
dominic |
107 |
} |
396 |
15 Aug 07 |
dominic |
108 |
/** |
396 |
15 Aug 07 |
dominic |
Displays the content of the map. Helps to check that the content displayed is correct. |
396 |
15 Aug 07 |
dominic |
@param map to be displayed. |
396 |
15 Aug 07 |
dominic |
111 |
*/ |
396 |
15 Aug 07 |
dominic |
112 |
public static <T> void displayMaps (ConcurrentHashMap<T,T> map) |
396 |
15 Aug 07 |
dominic |
113 |
{ |
396 |
15 Aug 07 |
dominic |
114 |
for (Object mapEntrySet: map.entrySet()) |
396 |
15 Aug 07 |
dominic |
115 |
{ |
396 |
15 Aug 07 |
dominic |
116 |
System.out.println("The content of the map [ " +mapEntrySet.toString()+ "]\n"); |
396 |
15 Aug 07 |
dominic |
117 |
} |
396 |
15 Aug 07 |
dominic |
118 |
} |
396 |
15 Aug 07 |
dominic |
119 |
|
396 |
15 Aug 07 |
dominic |
120 |
public static void displayParameterHeader(Set<String> parameterSectionHeader) |
396 |
15 Aug 07 |
dominic |
121 |
{ |
396 |
15 Aug 07 |
dominic |
122 |
for (String paramHyb : parameterSectionHeader) |
396 |
15 Aug 07 |
dominic |
123 |
{ |
396 |
15 Aug 07 |
dominic |
124 |
System.out.println(paramHyb+"\n"); |
396 |
15 Aug 07 |
dominic |
125 |
} |
396 |
15 Aug 07 |
dominic |
126 |
} |
396 |
15 Aug 07 |
dominic |
127 |
|
396 |
15 Aug 07 |
dominic |
128 |
/** |
396 |
15 Aug 07 |
dominic |
retrieves a given file extension |
396 |
15 Aug 07 |
dominic |
@param file, the name of the |
396 |
15 Aug 07 |
dominic |
@return |
396 |
15 Aug 07 |
dominic |
132 |
*/ |
396 |
15 Aug 07 |
dominic |
133 |
public static String getFileExtension(File file) |
396 |
15 Aug 07 |
dominic |
134 |
{ |
396 |
15 Aug 07 |
dominic |
135 |
String fileName= file.getName(); |
396 |
15 Aug 07 |
dominic |
136 |
String ext= fileName.substring(fileName.lastIndexOf(".") + 1); |
396 |
15 Aug 07 |
dominic |
137 |
ext = ext.toLowerCase(); |
480 |
16 Nov 07 |
dominic |
138 |
return ext; |
396 |
15 Aug 07 |
dominic |
139 |
} |
396 |
15 Aug 07 |
dominic |
140 |
|
396 |
15 Aug 07 |
dominic |
141 |
/** |
396 |
15 Aug 07 |
dominic |
gets an annotation type that matches a an annotation type name specified in |
396 |
15 Aug 07 |
dominic |
the hyb parameter section |
396 |
15 Aug 07 |
dominic |
maybe more reasonable to get this by ID |
396 |
15 Aug 07 |
dominic |
of a tab2mage file |
396 |
15 Aug 07 |
dominic |
@param atName , annotation type name |
449 |
30 Oct 07 |
dominic |
@return annotationType, <code>AnnotationType</code> |
396 |
15 Aug 07 |
dominic |
148 |
*/ |
396 |
15 Aug 07 |
dominic |
149 |
public static AnnotationType getAnnotationTypeByName(String atName, DbControl dc) |
396 |
15 Aug 07 |
dominic |
150 |
{ |
396 |
15 Aug 07 |
dominic |
151 |
AnnotationType annotationType =null; |
396 |
15 Aug 07 |
dominic |
152 |
ItemQuery<AnnotationType> atQuery = AnnotationType.getQuery(null); |
396 |
15 Aug 07 |
dominic |
153 |
atQuery.include(Include.MINE, Include.IN_PROJECT, Include.SHARED, Include.NOT_REMOVED); |
396 |
15 Aug 07 |
dominic |
154 |
ItemResultList<AnnotationType> ats = atQuery.list(dc); |
396 |
15 Aug 07 |
dominic |
155 |
for (AnnotationType at : ats) |
396 |
15 Aug 07 |
dominic |
156 |
{ |
396 |
15 Aug 07 |
dominic |
157 |
if (at.getName().equalsIgnoreCase(atName)) |
396 |
15 Aug 07 |
dominic |
158 |
{ |
396 |
15 Aug 07 |
dominic |
159 |
annotationType= at; |
396 |
15 Aug 07 |
dominic |
160 |
break; |
396 |
15 Aug 07 |
dominic |
161 |
} |
396 |
15 Aug 07 |
dominic |
162 |
} |
396 |
15 Aug 07 |
dominic |
163 |
return annotationType; |
396 |
15 Aug 07 |
dominic |
164 |
} |
396 |
15 Aug 07 |
dominic |
165 |
|
396 |
15 Aug 07 |
dominic |
166 |
/** |
396 |
15 Aug 07 |
dominic |
get the Label given the dye for the tab2mage file hyb section. Some labels are provided in base by default. |
396 |
15 Aug 07 |
dominic |
@param dye |
396 |
15 Aug 07 |
dominic |
@return |
396 |
15 Aug 07 |
dominic |
170 |
*/ |
396 |
15 Aug 07 |
dominic |
171 |
public static Label getLabel(String dye, DbControl dc) |
396 |
15 Aug 07 |
dominic |
172 |
{ |
396 |
15 Aug 07 |
dominic |
173 |
Label lab = null; |
396 |
15 Aug 07 |
dominic |
//check if dye is "" or null |
396 |
15 Aug 07 |
dominic |
175 |
ItemQuery<Label> labelQuery = Label.getQuery(); |
396 |
15 Aug 07 |
dominic |
176 |
labelQuery.include(Include.MINE, Include.IN_PROJECT, Include.SHARED, Include.NOT_REMOVED); |
396 |
15 Aug 07 |
dominic |
177 |
ItemResultList<Label> labels = labelQuery.list(dc); |
396 |
15 Aug 07 |
dominic |
178 |
for (Label lb : labels) |
396 |
15 Aug 07 |
dominic |
179 |
{ |
396 |
15 Aug 07 |
dominic |
180 |
if (lb.getName().equalsIgnoreCase(dye)) |
396 |
15 Aug 07 |
dominic |
181 |
{ |
396 |
15 Aug 07 |
dominic |
182 |
lab= lb; |
396 |
15 Aug 07 |
dominic |
183 |
break; |
396 |
15 Aug 07 |
dominic |
184 |
} |
396 |
15 Aug 07 |
dominic |
185 |
} |
396 |
15 Aug 07 |
dominic |
186 |
return lab; |
396 |
15 Aug 07 |
dominic |
187 |
} |
396 |
15 Aug 07 |
dominic |
188 |
/** |
396 |
15 Aug 07 |
dominic |
get an array design. this must have been created by the adminsitator before users can run the tab2mage importer. |
396 |
15 Aug 07 |
dominic |
@param acession, the accesion number |
396 |
15 Aug 07 |
dominic |
@return array design; |
396 |
15 Aug 07 |
dominic |
192 |
*/ |
396 |
15 Aug 07 |
dominic |
193 |
public static ArrayDesign getArrayDesign (String accession, DbControl dc) |
396 |
15 Aug 07 |
dominic |
194 |
{ |
396 |
15 Aug 07 |
dominic |
195 |
ArrayDesign aDesign = null; |
396 |
15 Aug 07 |
dominic |
196 |
ItemQuery<ArrayDesign> arrayDesignQuery = ArrayDesign.getQuery(); |
396 |
15 Aug 07 |
dominic |
197 |
arrayDesignQuery.include(Include.MINE, Include.IN_PROJECT, Include.SHARED, Include.NOT_REMOVED); |
396 |
15 Aug 07 |
dominic |
198 |
arrayDesignQuery.restrict(Restrictions.eq(Hql.property("name"), Expressions.string(accession))); |
396 |
15 Aug 07 |
dominic |
199 |
if (arrayDesignQuery.list(dc).size()!=0) |
396 |
15 Aug 07 |
dominic |
200 |
return arrayDesignQuery.list(dc).get(0); |
396 |
15 Aug 07 |
dominic |
201 |
else |
396 |
15 Aug 07 |
dominic |
202 |
return aDesign; |
396 |
15 Aug 07 |
dominic |
203 |
} |
423 |
12 Sep 07 |
dominic |
204 |
|
396 |
15 Aug 07 |
dominic |
205 |
/** |
396 |
15 Aug 07 |
dominic |
gets an array slide |
396 |
15 Aug 07 |
dominic |
@param dc |
423 |
12 Sep 07 |
dominic |
@param slide, slide name to find |
396 |
15 Aug 07 |
dominic |
@return an ArraySlide object |
396 |
15 Aug 07 |
dominic |
210 |
*/ |
396 |
15 Aug 07 |
dominic |
211 |
public static ArraySlide findArraySlide(DbControl dc, String slide) |
396 |
15 Aug 07 |
dominic |
212 |
{ |
396 |
15 Aug 07 |
dominic |
213 |
ArraySlide as= null; |
396 |
15 Aug 07 |
dominic |
214 |
ItemQuery<ArraySlide> query = ArraySlide.getQuery(); |
396 |
15 Aug 07 |
dominic |
215 |
query.include(Include.MINE, Include.IN_PROJECT, Include.SHARED, Include.NOT_REMOVED); |
396 |
15 Aug 07 |
dominic |
216 |
query.restrict(Restrictions.eq(Hql.property("name"), Expressions.string(slide))); |
396 |
15 Aug 07 |
dominic |
217 |
if (query.list(dc).size()!=0) |
396 |
15 Aug 07 |
dominic |
218 |
return query.list(dc).get(0); |
396 |
15 Aug 07 |
dominic |
219 |
else |
396 |
15 Aug 07 |
dominic |
220 |
return as; |
396 |
15 Aug 07 |
dominic |
221 |
} |
396 |
15 Aug 07 |
dominic |
222 |
|
396 |
15 Aug 07 |
dominic |
223 |
public static ArrayBatch findArrayBatch(DbControl dc, String accession) |
396 |
15 Aug 07 |
dominic |
224 |
{ |
396 |
15 Aug 07 |
dominic |
225 |
ArrayBatch ab= null; |
396 |
15 Aug 07 |
dominic |
226 |
ItemQuery<ArrayBatch> query = ArrayBatch.getQuery(); |
396 |
15 Aug 07 |
dominic |
227 |
query.include(Include.MINE, Include.IN_PROJECT, Include.SHARED, Include.NOT_REMOVED); |
396 |
15 Aug 07 |
dominic |
228 |
query.restrict(Restrictions.eq(Hql.property("name"), Expressions.string(accession))); |
396 |
15 Aug 07 |
dominic |
229 |
if (query.list(dc).size()!=0) |
396 |
15 Aug 07 |
dominic |
230 |
return query.list(dc).get(0); |
396 |
15 Aug 07 |
dominic |
231 |
else |
396 |
15 Aug 07 |
dominic |
232 |
return ab; |
396 |
15 Aug 07 |
dominic |
233 |
} |
396 |
15 Aug 07 |
dominic |
234 |
|
396 |
15 Aug 07 |
dominic |
235 |
/** |
396 |
15 Aug 07 |
dominic |
converts an array content as lowercases in to a list |
396 |
15 Aug 07 |
dominic |
@param array |
396 |
15 Aug 07 |
dominic |
@return list of the content of an array in lowercase |
396 |
15 Aug 07 |
dominic |
239 |
*/ |
396 |
15 Aug 07 |
dominic |
240 |
public static List<String> arrayContentToLowercase(String [] array) |
396 |
15 Aug 07 |
dominic |
241 |
{ |
396 |
15 Aug 07 |
dominic |
242 |
List< String> ar = new ArrayList<String>(); |
396 |
15 Aug 07 |
dominic |
243 |
for (String t : Arrays.asList(array)) |
396 |
15 Aug 07 |
dominic |
244 |
{ |
396 |
15 Aug 07 |
dominic |
245 |
ar.add(t.toLowerCase()); |
396 |
15 Aug 07 |
dominic |
246 |
} |
396 |
15 Aug 07 |
dominic |
247 |
return ar; |
396 |
15 Aug 07 |
dominic |
248 |
} |
449 |
30 Oct 07 |
dominic |
249 |
|
396 |
15 Aug 07 |
dominic |
250 |
|
396 |
15 Aug 07 |
dominic |
251 |
/** |
423 |
12 Sep 07 |
dominic |
find a sample, can also find non -pooled samples |
423 |
12 Sep 07 |
dominic |
@param dc, the dbcontrol |
423 |
12 Sep 07 |
dominic |
@param sampleName, name of the sample to find |
423 |
12 Sep 07 |
dominic |
@param isPooled, true if pooled sample should be included in the query and false otherwise |
423 |
12 Sep 07 |
dominic |
@return Sample, the found sample or null if no sample is found |
396 |
15 Aug 07 |
dominic |
257 |
*/ |
423 |
12 Sep 07 |
dominic |
258 |
public static Sample findSample(DbControl dc, String sampleName, boolean isPooled) |
396 |
15 Aug 07 |
dominic |
259 |
{ |
396 |
15 Aug 07 |
dominic |
260 |
Sample s= null; |
396 |
15 Aug 07 |
dominic |
261 |
ItemQuery<Sample> query = Sample.getQuery(); |
396 |
15 Aug 07 |
dominic |
262 |
query.include(Include.MINE, Include.NOT_REMOVED); |
396 |
15 Aug 07 |
dominic |
263 |
query.restrict(Restrictions.eq(Hql.property("name"), Expressions.string(sampleName))); |
423 |
12 Sep 07 |
dominic |
264 |
if (!isPooled) |
423 |
12 Sep 07 |
dominic |
265 |
{ |
423 |
12 Sep 07 |
dominic |
266 |
query.restrict(Restrictions.eq(Hql.property("pooled"), Expressions.parameter("pool", Type.BOOLEAN))); |
423 |
12 Sep 07 |
dominic |
267 |
query.setParameter("pool",isPooled, Type.BOOLEAN); |
423 |
12 Sep 07 |
dominic |
268 |
} |
396 |
15 Aug 07 |
dominic |
269 |
if (query.list(dc).size()!=0) |
396 |
15 Aug 07 |
dominic |
270 |
return query.list(dc).get(0); |
396 |
15 Aug 07 |
dominic |
271 |
else |
423 |
12 Sep 07 |
dominic |
272 |
return s; |
396 |
15 Aug 07 |
dominic |
273 |
} |
423 |
12 Sep 07 |
dominic |
274 |
|
423 |
12 Sep 07 |
dominic |
275 |
/** |
423 |
12 Sep 07 |
dominic |
find a extract, can also find non - pooled extract |
423 |
12 Sep 07 |
dominic |
@param dc, the dbcontrol |
423 |
12 Sep 07 |
dominic |
@param extractName, name of the extract to find |
423 |
12 Sep 07 |
dominic |
@param isPooled, true if pooled extract should be included in the query and false otherwise |
423 |
12 Sep 07 |
dominic |
@return Extract, the found extract or null if no extract is found |
423 |
12 Sep 07 |
dominic |
281 |
*/ |
423 |
12 Sep 07 |
dominic |
282 |
public static Extract findExtract(DbControl dc, String extractName, boolean isPooled) |
396 |
15 Aug 07 |
dominic |
283 |
{ |
396 |
15 Aug 07 |
dominic |
284 |
Extract e= null; |
396 |
15 Aug 07 |
dominic |
285 |
ItemQuery<Extract> query = Extract.getQuery(); |
423 |
12 Sep 07 |
dominic |
286 |
query.include(Include.MINE,Include.NOT_REMOVED); |
423 |
12 Sep 07 |
dominic |
287 |
query.restrict(Restrictions.eq(Hql.property("name"), Expressions.string(extractName))); |
423 |
12 Sep 07 |
dominic |
288 |
if (!isPooled) |
423 |
12 Sep 07 |
dominic |
289 |
{ |
423 |
12 Sep 07 |
dominic |
290 |
query.restrict(Restrictions.eq(Hql.property("pooled"), Expressions.parameter("pool", Type.BOOLEAN))); |
423 |
12 Sep 07 |
dominic |
291 |
query.setParameter("pool",isPooled, Type.BOOLEAN); |
423 |
12 Sep 07 |
dominic |
292 |
} |
423 |
12 Sep 07 |
dominic |
293 |
if(query.list(dc).size()!=0) |
423 |
12 Sep 07 |
dominic |
294 |
e=query.list(dc).get(0); |
423 |
12 Sep 07 |
dominic |
295 |
return e; |
423 |
12 Sep 07 |
dominic |
296 |
} |
423 |
12 Sep 07 |
dominic |
297 |
|
423 |
12 Sep 07 |
dominic |
298 |
/** |
423 |
12 Sep 07 |
dominic |
find a biosource |
423 |
12 Sep 07 |
dominic |
@param dc, the dbcontrol |
423 |
12 Sep 07 |
dominic |
@param biosourceName, name of the biosource to find |
423 |
12 Sep 07 |
dominic |
@return BioSource, the found biosource or null if no biosource is found |
423 |
12 Sep 07 |
dominic |
303 |
*/ |
423 |
12 Sep 07 |
dominic |
304 |
|
423 |
12 Sep 07 |
dominic |
305 |
public static BioSource findBiosource(DbControl dc, String biosourceName) |
423 |
12 Sep 07 |
dominic |
306 |
{ |
423 |
12 Sep 07 |
dominic |
307 |
BioSource b= null; |
423 |
12 Sep 07 |
dominic |
308 |
ItemQuery<BioSource> query = BioSource.getQuery(); |
396 |
15 Aug 07 |
dominic |
309 |
query.include(Include.MINE, Include.NOT_REMOVED); |
423 |
12 Sep 07 |
dominic |
310 |
query.restrict(Restrictions.eq(Hql.property("name"), Expressions.string(biosourceName))); |
396 |
15 Aug 07 |
dominic |
311 |
if (query.list(dc).size()!=0) |
396 |
15 Aug 07 |
dominic |
312 |
return query.list(dc).get(0); |
396 |
15 Aug 07 |
dominic |
313 |
else |
423 |
12 Sep 07 |
dominic |
314 |
return b; |
396 |
15 Aug 07 |
dominic |
315 |
} |
396 |
15 Aug 07 |
dominic |
316 |
|
423 |
12 Sep 07 |
dominic |
317 |
/** |
423 |
12 Sep 07 |
dominic |
finds a labeled extract, can also find non -pooled labeled extract |
423 |
12 Sep 07 |
dominic |
@param dc, the dbcontrol |
423 |
12 Sep 07 |
dominic |
@param leName, name of the labeled extract name |
423 |
12 Sep 07 |
dominic |
@param isPooled, true if pooled labeled extract should be included in the query and false otherwise |
423 |
12 Sep 07 |
dominic |
@return LabeledExtract, the found labeled extract or null if no labeled extract is found |
423 |
12 Sep 07 |
dominic |
323 |
*/ |
396 |
15 Aug 07 |
dominic |
324 |
|
423 |
12 Sep 07 |
dominic |
325 |
public static LabeledExtract findLabeledExtract(DbControl dc, String leName, boolean isPooled ) |
423 |
12 Sep 07 |
dominic |
326 |
{ |
423 |
12 Sep 07 |
dominic |
327 |
LabeledExtract le= null; |
423 |
12 Sep 07 |
dominic |
328 |
ItemQuery<LabeledExtract> query = LabeledExtract.getQuery(); |
423 |
12 Sep 07 |
dominic |
329 |
query.include(Include.MINE, Include.NOT_REMOVED); |
423 |
12 Sep 07 |
dominic |
330 |
query.restrict(Restrictions.eq(Hql.property("name"), Expressions.string(leName))); |
423 |
12 Sep 07 |
dominic |
331 |
if (!isPooled) |
423 |
12 Sep 07 |
dominic |
332 |
{ |
423 |
12 Sep 07 |
dominic |
333 |
query.restrict(Restrictions.eq(Hql.property("pooled"), Expressions.parameter("pool", Type.BOOLEAN))); |
423 |
12 Sep 07 |
dominic |
334 |
query.setParameter("pool",isPooled, Type.BOOLEAN); |
423 |
12 Sep 07 |
dominic |
335 |
} |
423 |
12 Sep 07 |
dominic |
336 |
if (query.list(dc).size()!=0) |
423 |
12 Sep 07 |
dominic |
337 |
return query.list(dc).get(0); |
423 |
12 Sep 07 |
dominic |
338 |
else |
423 |
12 Sep 07 |
dominic |
339 |
return le; |
423 |
12 Sep 07 |
dominic |
340 |
} |
449 |
30 Oct 07 |
dominic |
341 |
|
449 |
30 Oct 07 |
dominic |
342 |
|
449 |
30 Oct 07 |
dominic |
343 |
/** |
449 |
30 Oct 07 |
dominic |
gets the currently looged in user default directory |
449 |
30 Oct 07 |
dominic |
@param sc, the seesion control |
449 |
30 Oct 07 |
dominic |
@return path of the user directory as a string object |
449 |
30 Oct 07 |
dominic |
347 |
*/ |
449 |
30 Oct 07 |
dominic |
348 |
public static String getUserDefaultDirectory( SessionControl sc) |
449 |
30 Oct 07 |
dominic |
349 |
{ |
449 |
30 Oct 07 |
dominic |
350 |
DbControl dc = sc.newDbControl(); |
449 |
30 Oct 07 |
dominic |
351 |
String p =""; |
449 |
30 Oct 07 |
dominic |
352 |
try |
449 |
30 Oct 07 |
dominic |
353 |
{ |
449 |
30 Oct 07 |
dominic |
354 |
User user = User.getById(dc, sc.getLoggedInUserId()); |
449 |
30 Oct 07 |
dominic |
355 |
Directory dir= user.getHomeDirectory(); |
449 |
30 Oct 07 |
dominic |
356 |
Path path = dir.getPath(); |
449 |
30 Oct 07 |
dominic |
357 |
p=path.toString(); |
449 |
30 Oct 07 |
dominic |
358 |
} |
449 |
30 Oct 07 |
dominic |
359 |
catch(Exception e) |
449 |
30 Oct 07 |
dominic |
360 |
{ |
449 |
30 Oct 07 |
dominic |
361 |
new BaseException(e.getMessage()); |
449 |
30 Oct 07 |
dominic |
362 |
} |
449 |
30 Oct 07 |
dominic |
363 |
finally |
449 |
30 Oct 07 |
dominic |
364 |
{ |
449 |
30 Oct 07 |
dominic |
365 |
if (dc!=null) dc.close(); |
449 |
30 Oct 07 |
dominic |
366 |
} |
449 |
30 Oct 07 |
dominic |
367 |
return p; |
449 |
30 Oct 07 |
dominic |
368 |
} |
480 |
16 Nov 07 |
dominic |
369 |
|
480 |
16 Nov 07 |
dominic |
370 |
/** |
480 |
16 Nov 07 |
dominic |
validates the directory parameter specified by user |
480 |
16 Nov 07 |
dominic |
@param file, the zip file. its directory, is checked for the existence of directoryName given by the user |
480 |
16 Nov 07 |
dominic |
@param directoryName, the name of the directory specified by the user |
480 |
16 Nov 07 |
dominic |
@return TRUE if directory exist and FALSE otherwise |
480 |
16 Nov 07 |
dominic |
375 |
*/ |
480 |
16 Nov 07 |
dominic |
376 |
public static boolean validateDirectory (SessionControl sc ,File file, String directoryName) |
480 |
16 Nov 07 |
dominic |
377 |
{ |
480 |
16 Nov 07 |
dominic |
378 |
DbControl dc = sc.newDbControl(); |
480 |
16 Nov 07 |
dominic |
379 |
try |
480 |
16 Nov 07 |
dominic |
380 |
{ |
480 |
16 Nov 07 |
dominic |
381 |
file = File.getById(dc, file.getId()); |
480 |
16 Nov 07 |
dominic |
382 |
return Directory.exists(dc, file.getDirectory(), directoryName); |
480 |
16 Nov 07 |
dominic |
383 |
} |
480 |
16 Nov 07 |
dominic |
384 |
finally |
480 |
16 Nov 07 |
dominic |
385 |
{ |
480 |
16 Nov 07 |
dominic |
386 |
if (dc != null) dc.close(); |
480 |
16 Nov 07 |
dominic |
387 |
} |
480 |
16 Nov 07 |
dominic |
388 |
} |
396 |
15 Aug 07 |
dominic |
389 |
} |