From 7a6fa26c25aa78b701311b3e41dbd754edc1243d Mon Sep 17 00:00:00 2001 From: jakubs <jakubs> Date: Fri, 26 Jul 2013 08:07:35 +0000 Subject: [PATCH] SP-783 BIS-499 Small improvements in Matlab API from Mario SVN: 29585 --- screening/source/java/OpenBISScreeningML.java | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/screening/source/java/OpenBISScreeningML.java b/screening/source/java/OpenBISScreeningML.java index e46f5f31b5f..48082e460e7 100644 --- a/screening/source/java/OpenBISScreeningML.java +++ b/screening/source/java/OpenBISScreeningML.java @@ -203,8 +203,6 @@ public class OpenBISScreeningML } } - static final String DATASETS_FOLDER = "openbis_datasets"; - private static File temporarySessionDir; private static Map<PlateImageReference, File> loadedImages; @@ -254,8 +252,6 @@ public class OpenBISScreeningML */ public static final String REQUIRES_OPENBIS_DSS_API = "1.1"; - private static File dataSetsDir; - /** * Root temporary directory for data sets and images. By default <code>java.io.tmpdir</code> is * used. @@ -306,14 +302,9 @@ public class OpenBISScreeningML { openbis = openBisFacade; genericOpenbis = genericFacade; - dataSetsDir = new File(tempDir, DATASETS_FOLDER); - if (dataSetsDir.isDirectory() == false && dataSetsDir.mkdirs() == false) - { - throw new RuntimeException("Couldn't create a data set directory."); - } temporarySessionDir = - new File(tempDir, TEMP_DIR_PREFIX + System.currentTimeMillis() / 1000 - + TEMP_DIR_POSTFIX); + new File(tempDir, TEMP_DIR_PREFIX + System.getProperty("user.name") + "_" + + System.currentTimeMillis() / 1000 + TEMP_DIR_POSTFIX); if (temporarySessionDir.mkdirs() == false) { throw new RuntimeException("Couldn't create a temporary directory."); @@ -1005,10 +996,10 @@ public class OpenBISScreeningML { DataSet dataSet = dataSets.get(i); String code = dataSet.getCode(); - File file = new File(dataSetsDir, code); + File file = new File(temporarySessionDir, code); if (file.exists() == false) { - file = dataSet.getLinkOrCopyOfContents(overrideStoreRootPathOrNull, dataSetsDir); + file = dataSet.getLinkOrCopyOfContents(overrideStoreRootPathOrNull, temporarySessionDir); } List<String> parents = dataSet.getParentCodes(); Object[] parentCodes = new Object[parents.size()]; @@ -1051,6 +1042,10 @@ public class OpenBISScreeningML String overrideStoreRootPathOrNull) { checkLoggedIn(); + File file = new File(temporarySessionDir + "/" + dataSetCode, pathInDataSet); + if (file.exists() && file.isFile() && file.length() > 0) { + return file.toString(); + } IDataSetDss dataSet = openbis.getDataSet(dataSetCode); return dataSet.getLinkOrCopyOfContent(overrideStoreRootPathOrNull, temporarySessionDir, pathInDataSet).toString(); @@ -1150,12 +1145,17 @@ public class OpenBISScreeningML for (int i = 0; i < dataSetCodes.length; i++) { DataSet dataSet = dataSetMap.tryGet(dataSetCodes[i]); - result[i] = new Object[4][]; + result[i] = new Object[5][]; result[i][0] = new Object[] { dataSet.getCode(), dataSet.getDataSetTypeCode() }; result[i][1] = listProperties(dataSet.getProperties()); result[i][2] = dataSet.getParentCodes().toArray(); result[i][3] = dataSet.getChildrenCodes().toArray(); + if (dataSet.isContainerDataSet()){ + result[i][4] = new Object[] { "" }; + } else { + result[i][4] = new Object[] { dataSet.tryGetInternalPathInDataStore() }; + } } return result; -- GitLab