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.io.OutputStream; |
1474 |
29 Nov 11 |
pawels |
14 |
|
1474 |
29 Nov 11 |
pawels |
15 |
import net.sf.basedb.core.BaseException; |
1474 |
29 Nov 11 |
pawels |
16 |
import net.sf.basedb.core.DbControl; |
1474 |
29 Nov 11 |
pawels |
17 |
import net.sf.basedb.core.Directory; |
1474 |
29 Nov 11 |
pawels |
18 |
import net.sf.basedb.core.File; |
1474 |
29 Nov 11 |
pawels |
19 |
import net.sf.basedb.core.Path; |
1474 |
29 Nov 11 |
pawels |
20 |
import net.sf.basedb.core.SessionControl; |
1474 |
29 Nov 11 |
pawels |
21 |
import net.sf.basedb.core.User; |
1474 |
29 Nov 11 |
pawels |
22 |
|
1474 |
29 Nov 11 |
pawels |
23 |
public class Utils { |
1474 |
29 Nov 11 |
pawels |
24 |
|
1474 |
29 Nov 11 |
pawels |
25 |
/** |
1474 |
29 Nov 11 |
pawels |
* Returns an OutputStream to a file. If the file is has to be created, |
1474 |
29 Nov 11 |
pawels |
* the method handles saving and reattaching it to DbControl |
1474 |
29 Nov 11 |
pawels |
28 |
* |
1474 |
29 Nov 11 |
pawels |
* @param filepath - filepath to the file |
1474 |
29 Nov 11 |
pawels |
* @param overwrite - flag indicating if the file should be overwritten, |
1474 |
29 Nov 11 |
pawels |
* if the path points to already existing file |
1474 |
29 Nov 11 |
pawels |
* @param dc - DbControl |
1474 |
29 Nov 11 |
pawels |
* @return |
1474 |
29 Nov 11 |
pawels |
34 |
*/ |
1474 |
29 Nov 11 |
pawels |
35 |
public static OutputStream getOutputStreamForPath(String filepath, boolean overwrite, DbControl dc) { |
1474 |
29 Nov 11 |
pawels |
36 |
File f = File.getByPath(dc, new Path(filepath, Path.Type.FILE), overwrite); |
1474 |
29 Nov 11 |
pawels |
37 |
if (f.isDetached()) { |
1474 |
29 Nov 11 |
pawels |
38 |
dc.saveItem(f); |
1474 |
29 Nov 11 |
pawels |
39 |
dc.reattachItem(f, true); |
1474 |
29 Nov 11 |
pawels |
40 |
} |
1474 |
29 Nov 11 |
pawels |
41 |
return f.getUploadStream(false); |
1474 |
29 Nov 11 |
pawels |
42 |
} |
1474 |
29 Nov 11 |
pawels |
43 |
|
1474 |
29 Nov 11 |
pawels |
44 |
|
1474 |
29 Nov 11 |
pawels |
45 |
/** |
1474 |
29 Nov 11 |
pawels |
* Gets the currently logged in user default directory |
1474 |
29 Nov 11 |
pawels |
47 |
* |
1474 |
29 Nov 11 |
pawels |
* @param sc - the session control |
1474 |
29 Nov 11 |
pawels |
* @return path of the user directory as a string object |
1474 |
29 Nov 11 |
pawels |
50 |
*/ |
1474 |
29 Nov 11 |
pawels |
51 |
public static String getUserDefaultDirectory(SessionControl sc) { |
1474 |
29 Nov 11 |
pawels |
52 |
DbControl dc = sc.newDbControl(); |
1474 |
29 Nov 11 |
pawels |
53 |
String p = ""; |
1474 |
29 Nov 11 |
pawels |
54 |
try { |
1474 |
29 Nov 11 |
pawels |
55 |
User user = User.getById(dc, sc.getLoggedInUserId()); |
1474 |
29 Nov 11 |
pawels |
56 |
Directory dir = user.getHomeDirectory(); |
1474 |
29 Nov 11 |
pawels |
57 |
Path path = dir.getPath(); |
1474 |
29 Nov 11 |
pawels |
58 |
p = path.toString(); |
1474 |
29 Nov 11 |
pawels |
59 |
} catch (Exception e) { |
1474 |
29 Nov 11 |
pawels |
60 |
new BaseException(e.getMessage()); |
1474 |
29 Nov 11 |
pawels |
61 |
} finally { |
1474 |
29 Nov 11 |
pawels |
62 |
if (dc != null) { dc.close(); } |
1474 |
29 Nov 11 |
pawels |
63 |
} |
1474 |
29 Nov 11 |
pawels |
64 |
return p; |
1474 |
29 Nov 11 |
pawels |
65 |
} |
1474 |
29 Nov 11 |
pawels |
66 |
|
1474 |
29 Nov 11 |
pawels |
67 |
|
1474 |
29 Nov 11 |
pawels |
68 |
/** |
1474 |
29 Nov 11 |
pawels |
* If subject is not null and it ends with trailingString then |
1474 |
29 Nov 11 |
pawels |
* n characters from subject's end are removed, where n is the length of the |
1474 |
29 Nov 11 |
pawels |
* trailingString. Otherwise subject is returned with no change. |
1474 |
29 Nov 11 |
pawels |
* @param subject - string to remove end from |
1474 |
29 Nov 11 |
pawels |
* @param trailingString - the trailing sequence to trim |
1474 |
29 Nov 11 |
pawels |
* @return |
1474 |
29 Nov 11 |
pawels |
75 |
*/ |
1474 |
29 Nov 11 |
pawels |
76 |
public static String removeTrailingString(String subject, String trailingString) { |
1474 |
29 Nov 11 |
pawels |
77 |
if (subject != null && subject.endsWith(trailingString)) { |
1474 |
29 Nov 11 |
pawels |
78 |
return subject.substring(0,subject.length() - trailingString.length()); |
1474 |
29 Nov 11 |
pawels |
79 |
} |
1474 |
29 Nov 11 |
pawels |
80 |
return subject; |
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 static String quote(String s) { |
1474 |
29 Nov 11 |
pawels |
85 |
|
1474 |
29 Nov 11 |
pawels |
86 |
boolean quote = MageTabExporterSettings.QUOTE; |
1474 |
29 Nov 11 |
pawels |
87 |
String mv = MageTabExporterSettings.REPLACE_MISSING_VALUE_WITH; |
1474 |
29 Nov 11 |
pawels |
88 |
if (s == null) { |
1474 |
29 Nov 11 |
pawels |
89 |
return quote ? "\""+mv+"\"" : mv ; |
1474 |
29 Nov 11 |
pawels |
90 |
} |
1474 |
29 Nov 11 |
pawels |
91 |
|
1474 |
29 Nov 11 |
pawels |
// if s contains line breaks, remove them |
1474 |
29 Nov 11 |
pawels |
93 |
s = s.replace("\n", " "); |
1474 |
29 Nov 11 |
pawels |
94 |
s = s.replace("\r", " "); |
1474 |
29 Nov 11 |
pawels |
95 |
s = s.trim(); |
1474 |
29 Nov 11 |
pawels |
96 |
return quote ? "\""+s+"\"" : s; |
1474 |
29 Nov 11 |
pawels |
97 |
} |
1474 |
29 Nov 11 |
pawels |
98 |
|
1474 |
29 Nov 11 |
pawels |
99 |
} |