diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DatabaseBasedDataSetPathInfoProvider.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DatabaseBasedDataSetPathInfoProvider.java index efc098ff0216e314fef53b0d2912973b0d69b0ef..eeb845ae0826f4c0896febee33a24c4397d1e5e2 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DatabaseBasedDataSetPathInfoProvider.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DatabaseBasedDataSetPathInfoProvider.java @@ -137,11 +137,31 @@ public class DatabaseBasedDataSetPathInfoProvider implements IDataSetPathInfoPro } @Override - public List<ExtendedDataSetFileRecord> listPathInfosByRegularExpression( + public List<DataSetPathInfo> listPathInfosByRegularExpression( String substring) { List<ExtendedDataSetFileRecord> fileRecords = getDao().listFilesByRelativePathLikeExpression("%" + substring + "%"); - return fileRecords; + List<DataSetPathInfo> pathInfos = new ArrayList<DataSetPathInfo>(fileRecords.size()); + for (ExtendedDataSetFileRecord fileRecord : fileRecords) + { + DataSetPathInfo dataSetPathInfo = new DataSetPathInfo(); + dataSetPathInfo.setChecksumCRC32(fileRecord.checksum_crc32); + dataSetPathInfo.setDataSetCode(fileRecord.code); + dataSetPathInfo.setDirectory(fileRecord.is_directory); + dataSetPathInfo.setFileName(fileRecord.file_name); + dataSetPathInfo.setId(fileRecord.id); + dataSetPathInfo.setLastModified(fileRecord.last_modified); + dataSetPathInfo.setRelativePath(fileRecord.relative_path); + dataSetPathInfo.setSizeInBytes(fileRecord.size_in_bytes); + if (fileRecord.parent_id != null) + { + DataSetPathInfo dataSetPathInfoParent = new DataSetPathInfo(); + dataSetPathInfoParent.setId(fileRecord.parent_id); + dataSetPathInfo.setParent(dataSetPathInfoParent); + } + pathInfos.add(dataSetPathInfo); + } + return pathInfos; } @Override diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v2/sequencedatabases/FileSearchDomain.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v2/sequencedatabases/FileSearchDomain.java index 972caedacd0403b41802c0a3ef63812a69a840d2..3745f19a9a44a6b1cc8ac066da3367e746aee8f6 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v2/sequencedatabases/FileSearchDomain.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/api/v2/sequencedatabases/FileSearchDomain.java @@ -6,9 +6,9 @@ import java.util.List; import java.util.Map; import java.util.Properties; -import ch.systemsx.cisd.openbis.dss.generic.server.DatabaseBasedDataSetPathInfoProvider.ExtendedDataSetFileRecord; import ch.systemsx.cisd.openbis.dss.generic.shared.IDataSetPathInfoProvider; import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider; +import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetPathInfo; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.DataSetFileSearchResultLocation; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.EntityKind; import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchDomain; @@ -29,38 +29,37 @@ public class FileSearchDomain extends AbstractSearchDomainService return true; } - @Override public List<SearchDomainSearchResult> search(String searchString, Map<String, String> optionalParametersOrNull) - { - IDataSetPathInfoProvider dataSetPathInfoProvider = ServiceProvider.getDataSetPathInfoProvider(); - List<ExtendedDataSetFileRecord> dataSetPathInfos = dataSetPathInfoProvider.listPathInfosByRegularExpression(searchString); - - List<SearchDomainSearchResult> results = new ArrayList<SearchDomainSearchResult>(); - - for(ExtendedDataSetFileRecord dataSetPathInfo : dataSetPathInfos){ - - SearchDomainSearchResult searchDomainSearchResult = new SearchDomainSearchResult(); - - SearchDomain searchDomain = new SearchDomain(); - searchDomain.setName("File"); - searchDomain.setLabel("File"); + { + IDataSetPathInfoProvider dataSetPathInfoProvider = ServiceProvider.getDataSetPathInfoProvider(); + List<DataSetPathInfo> dataSetPathInfos = dataSetPathInfoProvider.listPathInfosByRegularExpression(searchString); + + List<SearchDomainSearchResult> results = new ArrayList<SearchDomainSearchResult>(); + + for (DataSetPathInfo dataSetPathInfo : dataSetPathInfos) + { + + SearchDomainSearchResult searchDomainSearchResult = new SearchDomainSearchResult(); + + SearchDomain searchDomain = new SearchDomain(); + searchDomain.setName("File"); + searchDomain.setLabel("File"); + + searchDomainSearchResult.setSearchDomain(searchDomain); + + DataSetFileSearchResultLocation dfsrl = new DataSetFileSearchResultLocation(); + dfsrl.setPermId(dataSetPathInfo.getDataSetCode()); + dfsrl.setCode(dataSetPathInfo.getDataSetCode()); + dfsrl.setIdentifier(dataSetPathInfo.getDataSetCode()); + dfsrl.setPathInDataSet(dataSetPathInfo.getRelativePath()); + dfsrl.setEntityKind(EntityKind.DATA_SET); + + searchDomainSearchResult.setResultLocation(dfsrl); + results.add(searchDomainSearchResult); + } - searchDomainSearchResult.setSearchDomain(searchDomain); - - DataSetFileSearchResultLocation dfsrl = new DataSetFileSearchResultLocation(); - dfsrl.setPermId(dataSetPathInfo.code); - dfsrl.setCode(dataSetPathInfo.code); - dfsrl.setPathInDataSet(dataSetPathInfo.relative_path); - dfsrl.setIdentifier(dataSetPathInfo.code); - dfsrl.setEntityKind(EntityKind.DATA_SET); - - searchDomainSearchResult.setResultLocation(dfsrl); - results.add(searchDomainSearchResult); - } - - return results; + return results; } - } \ No newline at end of file diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IDataSetPathInfoProvider.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IDataSetPathInfoProvider.java index 408094b5d767c42a07350cdfa6e2bb4ca7a84655..ed4ae0c63babf7bcf4e03671be1062961c8be1b1 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IDataSetPathInfoProvider.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IDataSetPathInfoProvider.java @@ -19,7 +19,6 @@ package ch.systemsx.cisd.openbis.dss.generic.shared; import java.util.List; import java.util.Map; -import ch.systemsx.cisd.openbis.dss.generic.server.DatabaseBasedDataSetPathInfoProvider.ExtendedDataSetFileRecord; import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetPathInfo; /** @@ -29,11 +28,11 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetPathInfo; */ public interface IDataSetPathInfoProvider { - + public List<DataSetPathInfo> listPathInfosByRegularExpression(String dataSetCode, String regularExpression); - public List<ExtendedDataSetFileRecord> listPathInfosByRegularExpression(String regularExpression); - + public List<DataSetPathInfo> listPathInfosByRegularExpression(String regularExpression); + public DataSetPathInfo tryGetFullDataSetRootPathInfo(String dataSetCode); public ISingleDataSetPathInfoProvider tryGetSingleDataSetPathInfoProvider(String dataSetCode); diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/dto/DataSetPathInfo.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/dto/DataSetPathInfo.java index 63077bc4f2bd9c2f9b44d005311142a8dfe8134a..5cc02a18a0088f3fceb5ea5beb641b0723a74aa6 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/dto/DataSetPathInfo.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/dto/DataSetPathInfo.java @@ -27,6 +27,8 @@ public class DataSetPathInfo { private long id; + private String dataSetCode; + private String fileName; private String relativePath; @@ -136,4 +138,13 @@ public class DataSetPathInfo children.add(child); } + public String getDataSetCode() + { + return dataSetCode; + } + + public void setDataSetCode(String dataSetCode) + { + this.dataSetCode = dataSetCode; + } } diff --git a/datastore_server/sourceTest/core-plugins/generic-test/1/dss/search-domain-services/filesearch/plugin.properties b/datastore_server/sourceTest/core-plugins/generic-test/1/dss/search-domain-services/filesearch/plugin.properties deleted file mode 100644 index 04f0f01dd3b36a5e0dd3893b5a5a63085e082e19..0000000000000000000000000000000000000000 --- a/datastore_server/sourceTest/core-plugins/generic-test/1/dss/search-domain-services/filesearch/plugin.properties +++ /dev/null @@ -1,2 +0,0 @@ -class = ch.systemsx.cisd.openbis.dss.generic.server.api.v2.sequencedatabases.FileSearchDomain -label = File \ No newline at end of file diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/FileSearchDomainTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/FileSearchDomainTest.java deleted file mode 100644 index cabb2405ed42edf0027ea5af76c8ba1455f02902..0000000000000000000000000000000000000000 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/FileSearchDomainTest.java +++ /dev/null @@ -1,25 +0,0 @@ -package ch.systemsx.cisd.openbis.datastoreserver.systemtests; - -import java.util.List; - -import org.testng.annotations.Test; - -import ch.systemsx.cisd.openbis.generic.shared.api.v1.IGeneralInformationService; -import ch.systemsx.cisd.openbis.generic.shared.api.v1.dto.SearchDomainSearchResult; - -public class FileSearchDomainTest extends GenericSystemTest -{ - - @Test - public void test() throws Exception - { - System.out.println("HERE"); - IGeneralInformationService gis = getGeneralInformationService(); - String sessionToken = gis.tryToAuthenticateForAllServices("test", "test"); - - List<SearchDomainSearchResult> results = gis.searchOnSearchDomain(sessionToken, "File", "", null); - - System.out.println("RESULT: " + results); - gis.logout(sessionToken); - } -} \ No newline at end of file