From 4fcf7352331d37415081a6eb5bc06c2f7f2fbb2c Mon Sep 17 00:00:00 2001 From: tpylak <tpylak> Date: Tue, 1 Sep 2009 07:38:18 +0000 Subject: [PATCH] LMS-1119 dataset lister: sql bugfixes, fetch dataset properties, rename IEntitySetPropertyListingQuery -> IEntityPropertySetListingQuery SVN: 12341 --- .../grid/entity/PropertyTypesFilterUtil.java | 4 +- .../server/CommonBusinessObjectFactory.java | 7 +- .../bo/common/EntityPropertiesEnricher.java | 4 +- ...va => IEntityPropertySetListingQuery.java} | 2 +- .../PropertiesSetListingQueryFallback.java | 8 +- ...ropertiesSetListingQueryFullTableScan.java | 2 +- .../PropertiesSetListingQueryOneByOne.java | 16 ++-- .../bo/datasetlister/DatasetLister.java | 89 ++++++++++++++++++- .../bo/datasetlister/DatasetListerDAO.java | 17 ++-- .../IDatasetListingFullQuery.java | 2 +- .../datasetlister/IDatasetListingQuery.java | 7 +- .../bo/samplelister/SampleListerDAO.java | 19 ++-- .../samplelister/SampleListingQueryTest.java | 2 +- .../SampleSetListingQueryTest.java | 6 +- 14 files changed, 134 insertions(+), 51 deletions(-) rename openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/{IEntitySetPropertyListingQuery.java => IEntityPropertySetListingQuery.java} (97%) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/entity/PropertyTypesFilterUtil.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/entity/PropertyTypesFilterUtil.java index f17d4c2c126..824418692cd 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/entity/PropertyTypesFilterUtil.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/entity/PropertyTypesFilterUtil.java @@ -80,7 +80,7 @@ public class PropertyTypesFilterUtil Set<BasicEntityType> entityTypes) { Set<String> entityTypesCodes = extractCodes(entityTypes); - List<PropertyType> result = new ArrayList<PropertyType>(); + Set<PropertyType> result = new HashSet<PropertyType>(); for (final PropertyType propertyType : propertyTypes) { List<? extends EntityTypePropertyType<?>> assignments = @@ -95,7 +95,7 @@ public class PropertyTypesFilterUtil } } } - return result; + return new ArrayList<PropertyType>(result); } private static Set<String> extractCodes(Set<BasicEntityType> entityTypes) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonBusinessObjectFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonBusinessObjectFactory.java index c7f48105cc9..202f6cb728b 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonBusinessObjectFactory.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonBusinessObjectFactory.java @@ -75,14 +75,15 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.properties.EntityKind; public final class CommonBusinessObjectFactory extends AbstractBusinessObjectFactory implements ICommonBusinessObjectFactory { - private SampleListerDAO sampleListerDAO; + private final SampleListerDAO sampleListerDAO; - private DatasetListerDAO datasetListerDAO; + private final DatasetListerDAO datasetListerDAO; public CommonBusinessObjectFactory(IDAOFactory daoFactory, IDataStoreServiceFactory dssFactory) { super(daoFactory, dssFactory); - sampleListerDAO = SampleListerDAO.createDAO(daoFactory); + this.sampleListerDAO = SampleListerDAO.create(daoFactory); + this.datasetListerDAO = DatasetListerDAO.create(daoFactory); } public final IAttachmentBO createAttachmentBO(final Session session) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/EntityPropertiesEnricher.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/EntityPropertiesEnricher.java index 881310b099a..29615d730d5 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/EntityPropertiesEnricher.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/EntityPropertiesEnricher.java @@ -42,10 +42,10 @@ public final class EntityPropertiesEnricher implements IEntityPropertiesEnricher { private final IPropertyListingQuery query; - private final IEntitySetPropertyListingQuery setQuery; + private final IEntityPropertySetListingQuery setQuery; public EntityPropertiesEnricher(final IPropertyListingQuery query, - final IEntitySetPropertyListingQuery setQuery) + final IEntityPropertySetListingQuery setQuery) { this.query = query; this.setQuery = setQuery; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/IEntitySetPropertyListingQuery.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/IEntityPropertySetListingQuery.java similarity index 97% rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/IEntitySetPropertyListingQuery.java rename to openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/IEntityPropertySetListingQuery.java index 4cfeaa263b5..f2a18f40a5e 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/IEntitySetPropertyListingQuery.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/IEntityPropertySetListingQuery.java @@ -23,7 +23,7 @@ import it.unimi.dsi.fastutil.longs.LongSet; * * @author Franz-Josef Elmer */ -public interface IEntitySetPropertyListingQuery +public interface IEntityPropertySetListingQuery { /** diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/PropertiesSetListingQueryFallback.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/PropertiesSetListingQueryFallback.java index 966d7069ab8..b6024d940e3 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/PropertiesSetListingQueryFallback.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/PropertiesSetListingQueryFallback.java @@ -21,17 +21,17 @@ import it.unimi.dsi.fastutil.longs.LongSet; import ch.rinn.restrictions.Friend; /** - * A fallback implementation of {@link IEntitySetPropertyListingQuery} for database engines who + * A fallback implementation of {@link IEntityPropertySetListingQuery} for database engines who * don't support querying for identifier sets. * * @author Bernd Rinn */ @Friend(toClasses = IEntityPropertyListingQuery.class) -public class PropertiesSetListingQueryFallback implements IEntitySetPropertyListingQuery +public class PropertiesSetListingQueryFallback implements IEntityPropertySetListingQuery { - private final IEntitySetPropertyListingQuery oneByOneDelegate; + private final IEntityPropertySetListingQuery oneByOneDelegate; - private final IEntitySetPropertyListingQuery fullTableScanDelegate; + private final IEntityPropertySetListingQuery fullTableScanDelegate; private final QueryStrategyChooser strategyChooser; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/PropertiesSetListingQueryFullTableScan.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/PropertiesSetListingQueryFullTableScan.java index 689ce89356b..42cf4988650 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/PropertiesSetListingQueryFullTableScan.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/PropertiesSetListingQueryFullTableScan.java @@ -35,7 +35,7 @@ import ch.rinn.restrictions.Friend; */ @Friend(toClasses = { IEntityPropertyListingQuery.class }) -class PropertiesSetListingQueryFullTableScan implements IEntitySetPropertyListingQuery +class PropertiesSetListingQueryFullTableScan implements IEntityPropertySetListingQuery { private final IEntityPropertyListingQuery query; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/PropertiesSetListingQueryOneByOne.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/PropertiesSetListingQueryOneByOne.java index 3f42f348f8a..1d0e03fb19e 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/PropertiesSetListingQueryOneByOne.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/common/PropertiesSetListingQueryOneByOne.java @@ -16,26 +16,24 @@ package ch.systemsx.cisd.openbis.generic.server.business.bo.common; +import it.unimi.dsi.fastutil.longs.LongIterator; +import it.unimi.dsi.fastutil.longs.LongSet; + import java.util.Iterator; import net.lemnik.eodsql.DataIterator; -import it.unimi.dsi.fastutil.longs.LongIterator; -import it.unimi.dsi.fastutil.longs.LongSet; - import ch.rinn.restrictions.Friend; -import ch.systemsx.cisd.openbis.generic.server.business.bo.common.VocabularyTermRecord; -import ch.systemsx.cisd.openbis.generic.server.business.bo.common.GenericEntityPropertyRecord; -import ch.systemsx.cisd.openbis.generic.server.business.bo.common.MaterialEntityPropertyRecord; /** - * An implementation of {@link IEntitySetPropertyListingQuery} that gets the entity properties one + * An implementation of {@link IEntityPropertySetListingQuery} that gets the entity properties one * by one. * * @author Bernd Rinn */ -@Friend(toClasses = IEntitySetPropertyListingQuery.class) -class PropertiesSetListingQueryOneByOne implements IEntitySetPropertyListingQuery +@Friend(toClasses = + { IEntityPropertySetListingQuery.class, IEntityPropertyListingQuery.class }) +class PropertiesSetListingQueryOneByOne implements IEntityPropertySetListingQuery { private final IEntityPropertyListingQuery query; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java index 3e368e9d334..1aee5a57292 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java @@ -19,24 +19,39 @@ package ch.systemsx.cisd.openbis.generic.server.business.bo.datasetlister; import it.unimi.dsi.fastutil.longs.Long2ObjectMap; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; +import java.util.ArrayList; import java.util.List; +import net.lemnik.eodsql.DataIterator; + +import org.apache.log4j.Logger; + +import ch.systemsx.cisd.common.logging.LogCategory; +import ch.systemsx.cisd.common.logging.LogFactory; +import ch.systemsx.cisd.common.types.BooleanOrUnknown; import ch.systemsx.cisd.openbis.generic.server.business.bo.common.CodeRecord; import ch.systemsx.cisd.openbis.generic.server.business.bo.common.EntityPropertiesEnricher; import ch.systemsx.cisd.openbis.generic.server.business.bo.common.IEntityPropertiesEnricher; +import ch.systemsx.cisd.openbis.generic.server.business.bo.common.IEntityPropertiesHolderResolver; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataStore; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseInstance; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.FileFormatType; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.LocatorType; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType; /** * @author Tomasz Pylak */ public class DatasetLister implements IDatasetLister { + private final static Logger operationLog = + LogFactory.getLogger(LogCategory.OPERATION, DatasetLister.class); + // // Input // @@ -51,6 +66,10 @@ public class DatasetLister implements IDatasetLister private final IDatasetListingQuery query; + private final IDatasetSetListingQuery setQuery; + + private final IEntityPropertiesEnricher propertiesEnricher; + // // Working data structures // @@ -79,7 +98,7 @@ public class DatasetLister implements IDatasetLister // For unit tests DatasetLister(final long databaseInstanceId, final DatabaseInstance databaseInstance, final IDatasetListingQuery query, final IDatasetSetListingQuery setQuery, - IEntityPropertiesEnricher propertiesEnricherOrNull) + IEntityPropertiesEnricher propertiesEnricher) { assert databaseInstance != null; assert query != null; @@ -88,12 +107,76 @@ public class DatasetLister implements IDatasetLister this.databaseInstanceId = databaseInstanceId; this.databaseInstance = databaseInstance; this.query = query; + this.setQuery = setQuery; + this.propertiesEnricher = propertiesEnricher; } public List<ExternalData> listByExperimentTechId(TechId experimentId) { loadSmallConnectedTables(); - return null; + DataIterator<DatasetRecord> datasets = query.getDatasetsForExperiment(experimentId.getId()); + final Long2ObjectMap<ExternalData> resultMap = createDatasets(datasets); + propertiesEnricher.enrich(resultMap.keySet(), new IEntityPropertiesHolderResolver() + { + public ExternalData get(long id) + { + return resultMap.get(id); + } + }); + + return asList(resultMap); + } + + private static <T> List<T> asList(Long2ObjectMap<T> items) + { + List<T> result = new ArrayList<T>(); + org.apache.commons.collections.CollectionUtils.addAll(result, items.values().iterator()); + return result; + } + + private Long2ObjectMap<ExternalData> createDatasets(DataIterator<DatasetRecord> records) + { + Long2ObjectMap<ExternalData> datasets = new Long2ObjectOpenHashMap<ExternalData>(); + for (DatasetRecord record : records) + { + datasets.put(record.id, createDataset(record)); + } + return datasets; + } + + private ExternalData createDataset(DatasetRecord record) + { + ExternalData dataset = new ExternalData(); + dataset.setCode(record.code); + dataset.setComplete(BooleanOrUnknown.tryToResolve(BooleanOrUnknown + .valueOf(record.is_complete))); + dataset.setDataProducerCode(record.data_producer_code); + dataset.setDataSetType(dataSetTypes.get(record.dsty_id)); + dataset.setDataStore(dataStores.get(record.dast_id)); + dataset.setDerived(record.is_derived); + + dataset.setFileFormatType(fileFormatTypes.get(record.ffty_id)); + dataset.setId(record.id); + dataset.setLocation(record.location); + dataset.setLocatorType(locatorTypes.get(record.loty_id)); + dataset.setProductionDate(record.production_timestamp); + dataset.setRegistrationDate(record.registration_timestamp); + dataset.setDataSetProperties(new ArrayList<IEntityProperty>()); + Sample sample = new Sample(); + SampleType sampleType = new SampleType(); + sampleType.setCode("sampleType"); + sampleType.setDatabaseInstance(databaseInstance); + sample.setSampleType(sampleType); + dataset.setSample(sample); + // dataset.setInvalidation(record.); // from sample + // dataset.setPermlink(PermlinkUtilities.createPermlinkURL(baseIndexURL, + // EntityKind.DATA_SET, record.code)); + // dataset.setParent(record.); + // dataset.setExperiment(record.); + // dataset.setRegistrator(record.); + // dataset.setSample(record.); + + return dataset; } private void loadSmallConnectedTables() @@ -111,7 +194,7 @@ public class DatasetLister implements IDatasetLister } locatorTypes.clear(); - for (CodeRecord code : query.getLocatorTypes(databaseInstanceId)) + for (CodeRecord code : query.getLocatorTypes()) { locatorTypes.put(code.id, createLocatorType(code)); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetListerDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetListerDAO.java index 0a3e799cdba..edd654f9ca5 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetListerDAO.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetListerDAO.java @@ -28,7 +28,7 @@ import ch.systemsx.cisd.dbmigration.DatabaseConfigurationContext; import ch.systemsx.cisd.openbis.generic.server.business.bo.common.DatabaseContextUtils; import ch.systemsx.cisd.openbis.generic.server.business.bo.common.GenericEntityPropertyRecord; import ch.systemsx.cisd.openbis.generic.server.business.bo.common.IEntityPropertyListingQuery; -import ch.systemsx.cisd.openbis.generic.server.business.bo.common.IEntitySetPropertyListingQuery; +import ch.systemsx.cisd.openbis.generic.server.business.bo.common.IEntityPropertySetListingQuery; import ch.systemsx.cisd.openbis.generic.server.business.bo.common.MaterialEntityPropertyRecord; import ch.systemsx.cisd.openbis.generic.server.business.bo.common.PropertiesSetListingQueryFallback; import ch.systemsx.cisd.openbis.generic.server.business.bo.common.QueryStrategyChooser; @@ -46,14 +46,15 @@ import ch.systemsx.cisd.openbis.generic.shared.translator.DatabaseInstanceTransl * * @author Bernd Rinn */ -@Friend(toClasses = IDatasetListingFullQuery.class) +@Friend(toClasses = + { IDatasetListingFullQuery.class, IEntityPropertyListingQuery.class }) public final class DatasetListerDAO { /** * Creates a new instance based on {@link PersistencyResources} and home * {@link DatabaseInstancePE} of specified DAO factory. */ - public static DatasetListerDAO createDAO(IDAOFactory daoFactory) + public static DatasetListerDAO create(IDAOFactory daoFactory) { DatabaseConfigurationContext context = DatabaseContextUtils.getDatabaseContext(daoFactory); final boolean supportsSetQuery = DatabaseContextUtils.isSupportingSetQueries(context); @@ -65,7 +66,7 @@ public final class DatasetListerDAO private final IDatasetSetListingQuery setQuery; - private final IEntitySetPropertyListingQuery propertySetQuery; + private final IEntityPropertySetListingQuery propertySetQuery; private final QueryStrategyChooser strategyChooser; @@ -105,7 +106,7 @@ public final class DatasetListerDAO return setQuery; } - IEntitySetPropertyListingQuery getPropertySetQuery() + IEntityPropertySetListingQuery getPropertySetQuery() { return propertySetQuery; } @@ -121,7 +122,7 @@ public final class DatasetListerDAO }); } - private static IEntitySetPropertyListingQuery createSetPropertyQuery(boolean supportsSetQuery, + private static IEntityPropertySetListingQuery createSetPropertyQuery(boolean supportsSetQuery, IDatasetListingFullQuery query, QueryStrategyChooser strategyChooser) { if (supportsSetQuery) @@ -174,10 +175,10 @@ public final class DatasetListerDAO }; } - private static IEntitySetPropertyListingQuery asEntitySetPropertyListingQuery( + private static IEntityPropertySetListingQuery asEntitySetPropertyListingQuery( final IDatasetListingFullQuery query) { - return new IEntitySetPropertyListingQuery() + return new IEntityPropertySetListingQuery() { public Iterable<GenericEntityPropertyRecord> getEntityPropertyGenericValues( LongSet entityIDs) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/IDatasetListingFullQuery.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/IDatasetListingFullQuery.java index 0a906810065..09a038278b6 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/IDatasetListingFullQuery.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/IDatasetListingFullQuery.java @@ -100,7 +100,7 @@ public interface IDatasetListingFullQuery extends IDatasetListingQuery * * @param entityIds The set of sample ids to get the property values for. */ - @Select(sql = "select sp.ds_id as entity_id, etpt.prty_id, m.id, m.code, m.maty_id" + @Select(sql = "select pr.ds_id as entity_id, etpt.prty_id, m.id, m.code, m.maty_id" + " from data_set_properties pr" + " join data_set_type_property_types etpt on pr.dstpt_id=etpt.id" + " join materials m on pr.mate_prop_id=m.id where pr.ds_id = any(?{1})", parameterBindings = diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/IDatasetListingQuery.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/IDatasetListingQuery.java index 649ad95571c..f9456f45195 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/IDatasetListingQuery.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/IDatasetListingQuery.java @@ -55,8 +55,7 @@ public interface IDatasetListingQuery extends TransactionQuery, IPropertyListing /** * Returns all datasets in the database. */ - @Select(sql = "select * from data d left outer join external_data e on d.id = e.data_id" - + " where d.id=?{1}", fetchSize = FETCH_SIZE) + @Select(sql = "select * from data d left outer join external_data e on d.id = e.data_id", fetchSize = FETCH_SIZE) public DataIterator<DatasetRecord> getDatasets(); @Select(sql = "select id, code from data_set_types where dbin_id=?{1}") @@ -68,8 +67,8 @@ public interface IDatasetListingQuery extends TransactionQuery, IPropertyListing @Select(sql = "select id, code from file_format_types where dbin_id=?{1}") public CodeRecord[] getFileFormatTypes(long databaseInstanceId); - @Select(sql = "select id, code from locator_types where dbin_id=?{1}") - public CodeRecord[] getLocatorTypes(long databaseInstanceId); + @Select(sql = "select id, code from locator_types") + public CodeRecord[] getLocatorTypes(); // private Experiment experiment; // diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListerDAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListerDAO.java index baa4cb6ae0b..0a5c40ba8c1 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListerDAO.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListerDAO.java @@ -28,7 +28,7 @@ import ch.systemsx.cisd.dbmigration.DatabaseConfigurationContext; import ch.systemsx.cisd.openbis.generic.server.business.bo.common.DatabaseContextUtils; import ch.systemsx.cisd.openbis.generic.server.business.bo.common.GenericEntityPropertyRecord; import ch.systemsx.cisd.openbis.generic.server.business.bo.common.IEntityPropertyListingQuery; -import ch.systemsx.cisd.openbis.generic.server.business.bo.common.IEntitySetPropertyListingQuery; +import ch.systemsx.cisd.openbis.generic.server.business.bo.common.IEntityPropertySetListingQuery; import ch.systemsx.cisd.openbis.generic.server.business.bo.common.MaterialEntityPropertyRecord; import ch.systemsx.cisd.openbis.generic.server.business.bo.common.PropertiesSetListingQueryFallback; import ch.systemsx.cisd.openbis.generic.server.business.bo.common.QueryStrategyChooser; @@ -46,14 +46,15 @@ import ch.systemsx.cisd.openbis.generic.shared.translator.DatabaseInstanceTransl * * @author Bernd Rinn */ -@Friend(toClasses = ISampleListingFullQuery.class) +@Friend(toClasses = + { ISampleListingFullQuery.class, IEntityPropertyListingQuery.class }) public final class SampleListerDAO { /** * Creates a new instance based on {@link PersistencyResources} and home * {@link DatabaseInstancePE} of specified DAO factory. */ - public static SampleListerDAO createDAO(IDAOFactory daoFactory) + public static SampleListerDAO create(IDAOFactory daoFactory) { DatabaseConfigurationContext context = DatabaseContextUtils.getDatabaseContext(daoFactory); final boolean supportsSetQuery = DatabaseContextUtils.isSupportingSetQueries(context); @@ -65,7 +66,7 @@ public final class SampleListerDAO private final ISampleSetListingQuery setQuery; - private final IEntitySetPropertyListingQuery propertySetQuery; + private final IEntityPropertySetListingQuery propertySetQuery; private final QueryStrategyChooser strategyChooser; @@ -105,7 +106,7 @@ public final class SampleListerDAO return setQuery; } - IEntitySetPropertyListingQuery getPropertySetQuery() + IEntityPropertySetListingQuery getPropertySetQuery() { return propertySetQuery; } @@ -121,12 +122,12 @@ public final class SampleListerDAO }); } - private static IEntitySetPropertyListingQuery createSetPropertyQuery(boolean supportsSetQuery, + private static IEntityPropertySetListingQuery createSetPropertyQuery(boolean supportsSetQuery, ISampleListingFullQuery query, QueryStrategyChooser strategyChooser) { if (supportsSetQuery) { - return asEntitySetPropertyListingQuery(query); + return asEntityPropertySetListingQuery(query); } else { return new PropertiesSetListingQueryFallback(asEntityPropertyListingQuery(query), @@ -174,10 +175,10 @@ public final class SampleListerDAO }; } - private static IEntitySetPropertyListingQuery asEntitySetPropertyListingQuery( + private static IEntityPropertySetListingQuery asEntityPropertySetListingQuery( final ISampleListingFullQuery query) { - return new IEntitySetPropertyListingQuery() + return new IEntityPropertySetListingQuery() { public Iterable<GenericEntityPropertyRecord> getEntityPropertyGenericValues( LongSet entityIDs) diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingQueryTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingQueryTest.java index ecc3d0d53c7..5981eed01e7 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingQueryTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleListingQueryTest.java @@ -104,7 +104,7 @@ public class SampleListingQueryTest extends AbstractDAOTest @BeforeClass(alwaysRun = true) public void init() { - SampleListerDAO sampleListerDAO = SampleListerDAO.createDAO(daoFactory); + SampleListerDAO sampleListerDAO = SampleListerDAO.create(daoFactory); dbInstanceId = sampleListerDAO.getDatabaseInstanceId(); dbInstance = daoFactory.getDatabaseInstanceDAO().getByTechId(new TechId(dbInstanceId)); group = daoFactory.getGroupDAO().tryFindGroupByCodeAndDatabaseInstance("CISD", dbInstance); diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleSetListingQueryTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleSetListingQueryTest.java index c514d0c2a6c..7719aac1421 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleSetListingQueryTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/samplelister/SampleSetListingQueryTest.java @@ -34,7 +34,7 @@ import ch.rinn.restrictions.Friend; import ch.systemsx.cisd.openbis.generic.server.business.bo.common.BaseEntityPropertyRecord; import ch.systemsx.cisd.openbis.generic.server.business.bo.common.EntityListingTestUtils; import ch.systemsx.cisd.openbis.generic.server.business.bo.common.GenericEntityPropertyRecord; -import ch.systemsx.cisd.openbis.generic.server.business.bo.common.IEntitySetPropertyListingQuery; +import ch.systemsx.cisd.openbis.generic.server.business.bo.common.IEntityPropertySetListingQuery; import ch.systemsx.cisd.openbis.generic.server.business.bo.common.MaterialEntityPropertyRecord; import ch.systemsx.cisd.openbis.generic.server.business.bo.common.VocabularyTermRecord; import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.AbstractDAOTest; @@ -75,7 +75,7 @@ public class SampleSetListingQueryTest extends AbstractDAOTest private LongSet cellPlateIds; - private IEntitySetPropertyListingQuery propertySetQuery; + private IEntityPropertySetListingQuery propertySetQuery; private ISampleSetListingQuery setQuery; @@ -84,7 +84,7 @@ public class SampleSetListingQueryTest extends AbstractDAOTest @BeforeClass(alwaysRun = true) public void init() { - SampleListerDAO sampleListerDAO = SampleListerDAO.createDAO(daoFactory); + SampleListerDAO sampleListerDAO = SampleListerDAO.create(daoFactory); dbInstanceId = sampleListerDAO.getDatabaseInstanceId(); dbInstance = daoFactory.getDatabaseInstanceDAO().getByTechId(new TechId(dbInstanceId)); group = daoFactory.getGroupDAO().listGroups().get(0); -- GitLab