diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/EntityInformationProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/EntityInformationProvider.java index e16f819943fe75b5bc4fef8bf046a816900d4e25..b0ff3aa9165fc3a894d815e5fbf01ecc8e07fa34 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/EntityInformationProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/EntityInformationProvider.java @@ -26,7 +26,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialIdentifier; import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialPE; import ch.systemsx.cisd.openbis.generic.shared.managed_property.EntityLinkElementTranslator; -import ch.systemsx.cisd.openbis.generic.shared.managed_property.IEntityInformationProvider; +import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IEntityInformationProvider; import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IEntityLinkElement; /** @@ -35,10 +35,17 @@ import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IEntityLinkE @Component(value = ResourceNames.ENTITY_INFORMATION_PROVIDER) public class EntityInformationProvider implements IEntityInformationProvider { + // @Autowired + private final IDAOFactory daoFactory; + @Autowired - private IDAOFactory daoFactory; + public EntityInformationProvider(IDAOFactory daoFactory) + { + assert daoFactory != null; + this.daoFactory = daoFactory; + } - public String getIdentifier(EntityKind entityKind, String permId) + private String getIdentifier(EntityKind entityKind, String permId) { IIdentifierHolder identifierHolderOrNull = null; switch (entityKind) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ManagedPropertyEvaluator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ManagedPropertyEvaluator.java index 02bbd219ccf11efdf189e47bbeaca1796b8d4f84..2c8bc15bd3d94a4bfe03e20d954404bcd1a54026 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ManagedPropertyEvaluator.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ManagedPropertyEvaluator.java @@ -106,7 +106,7 @@ public class ManagedPropertyEvaluator public ManagedPropertyEvaluator(String scriptExpression) { - evaluator = new Evaluator("", ScriptUtilityFactory.class, scriptExpression); + evaluator = new Evaluator("", ManagedPropertyFunctions.class, scriptExpression); updateFromBatchFunctionDefined = evaluator.hasFunction(UPDATE_FROM_BATCH_INPUT_FUNCTION); List<String> names = new ArrayList<String>(); if (evaluator.hasFunction(BATCH_COLUMN_NAMES_FUNCTION)) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ScriptUtilityFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ManagedPropertyFunctions.java similarity index 82% rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ScriptUtilityFactory.java rename to openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ManagedPropertyFunctions.java index a58bc5c8708f8788716c934b4b4d5bd274b34040..7db779092143f447e91fff39288b2898bc8c4e76 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ScriptUtilityFactory.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/ManagedPropertyFunctions.java @@ -8,6 +8,7 @@ import ch.systemsx.cisd.openbis.generic.shared.ResourceNames; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.api.ValidationException; import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IElement; import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IElementFactory; +import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IEntityInformationProvider; import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.ISimpleTableModelBuilderAdaptor; import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IStructuredPropertyConverter; import ch.systemsx.cisd.openbis.generic.shared.managed_property.structured.ElementFactory; @@ -19,7 +20,7 @@ import ch.systemsx.cisd.openbis.generic.shared.managed_property.structured.XmlSt * All public methods of this class are part of the Managed Properties API. */ @Component(value = ResourceNames.MANAGED_PROPERTY_SCRIPT_UTILITY_FACTORY) -public class ScriptUtilityFactory +public class ManagedPropertyFunctions { private static final IElementFactory ELEMENT_FACTORY_INSTANCE = new ElementFactory(); @@ -38,10 +39,10 @@ public class ScriptUtilityFactory @Resource(name = ResourceNames.ENTITY_INFORMATION_PROVIDER) public void setEntityInformationProvider(IEntityInformationProvider entityInformationProvider) { - ScriptUtilityFactory.entityInformationProvider = entityInformationProvider; + ManagedPropertyFunctions.entityInformationProvider = entityInformationProvider; } - private ScriptUtilityFactory() + private ManagedPropertyFunctions() { } @@ -67,7 +68,7 @@ public class ScriptUtilityFactory /** * @return a factory object that can be used to create {@link IElement}-s. */ - public static IElementFactory getElementFactory() + public static IElementFactory elementFactory() { return ELEMENT_FACTORY_INSTANCE; } @@ -75,9 +76,17 @@ public class ScriptUtilityFactory /** * @return a converter that can translate {@link IElement} to/from Strings. */ - public static IStructuredPropertyConverter getPropertyConverter() + public static IStructuredPropertyConverter propertyConverter() { return STRUCTURED_PROPERTY_CONVERTER_INSTANCE; } + /** + * @return a provider of information about entities. + */ + public static IEntityInformationProvider entityInformationProvider() + { + return entityInformationProvider; + } + } \ No newline at end of file diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/SimpleTableModelBuilderAdaptor.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/SimpleTableModelBuilderAdaptor.java index d9510a6c800d29d10a895a6ee88c3aefdd04eb8b..608bece4b357f37553eb98c29bee02cb01a55d14 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/SimpleTableModelBuilderAdaptor.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/SimpleTableModelBuilderAdaptor.java @@ -21,6 +21,7 @@ import java.util.Date; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityTableCell; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModel; +import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IEntityInformationProvider; import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IEntityLinkElement; import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IRowBuilderAdaptor; import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.ISimpleTableModelBuilderAdaptor; @@ -118,7 +119,7 @@ public class SimpleTableModelBuilderAdaptor implements ISimpleTableModelBuilderA final EntityKind entityKind = EntityLinkElementTranslator.translate(value.getEntityLinkKind()); final String permId = value.getPermId(); - final String identifierOrNull = tryExtractIdentifier(entityKind, permId); + final String identifierOrNull = tryExtractIdentifier(value); return new EntityTableCell(entityKind, permId, identifierOrNull); } @@ -135,8 +136,8 @@ public class SimpleTableModelBuilderAdaptor implements ISimpleTableModelBuilderA builder.addFullRow(values); } - private String tryExtractIdentifier(EntityKind entityKind, String permId) + private String tryExtractIdentifier(IEntityLinkElement entityLink) { - return entityInformationProvider.getIdentifier(entityKind, permId); + return entityInformationProvider.getIdentifier(entityLink); } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/EntityLinkElementKind.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/EntityLinkElementKind.java index 6007831c8d5386e675527df8a00a6a168e5063fa..f40f4816410a3f21d9712227035ab7a270ed5f59 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/EntityLinkElementKind.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/EntityLinkElementKind.java @@ -19,15 +19,18 @@ package ch.systemsx.cisd.openbis.generic.shared.managed_property.api; /** * The type of an entity link. * <p> + * <b>All methods of this enum are part of the Managed Properties API.</b> * * @author Kaloyan Enimanev */ public enum EntityLinkElementKind { - EXPERIMENT("Experiment"), SAMPLE("Sample"), DATA_SET("Dataset", "Data Set"), MATERIAL("Material"); + EXPERIMENT("Experiment"), SAMPLE("Sample"), DATA_SET("Dataset", "Data Set"), MATERIAL( + "Material"); private final String elementName; + private final String label; private EntityLinkElementKind(String elementName) @@ -40,7 +43,7 @@ public enum EntityLinkElementKind this.elementName = elementName; this.label = label; } - + /** * the {@link IElement} name corresponding to the link. */ diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IElement.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IElement.java index d2aff9f63290bb1156ea2f2c889d48e4d7a41f4f..f5c35b298384704f5d19bc2e0f692dd056ec9a6f 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IElement.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IElement.java @@ -26,6 +26,8 @@ import java.util.Map; * <p> * {@link IElement}-s are meant to be used as a convenient, hierarchical property-value persistence * technique for managed properties. + * <p> + * <b>All methods of this interface are part of the Managed Properties API.</b> * * @author Piotr Buczek * @author Kaloyan Enimanev @@ -60,9 +62,9 @@ public interface IElement * @return all children {@link IElement}-s. */ List<IElement> getChildren(); - + Map<String, String> getAttributes(); - + IElement setAttributes(Map<String, String> attributes); /** diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IElementFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IElementFactory.java index c83730ed94e54d74f9ce772d08d698e28057be33..d78be893ad8fec40cbc99a414301d4efb277f9a2 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IElementFactory.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IElementFactory.java @@ -18,6 +18,8 @@ package ch.systemsx.cisd.openbis.generic.shared.managed_property.api; /** * Contains helper method to construct {@link IElement} instances. + * <p> + * <b>All methods of this enum are part of the Managed Properties API.</b> * * @author Kaloyan Enimanev */ diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/IEntityInformationProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IEntityInformationProvider.java similarity index 68% rename from openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/IEntityInformationProvider.java rename to openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IEntityInformationProvider.java index 2333d91646cf3de0bf81e71f4e40351f9b1c3641..158fddfa33f802c9dfd488746fb58e870908a0bd 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/IEntityInformationProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IEntityInformationProvider.java @@ -14,15 +14,21 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.generic.shared.managed_property; - -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; +package ch.systemsx.cisd.openbis.generic.shared.managed_property.api; /** + * Provides required information about entities. + * <p> + * <b>All methods of this enum are part of the Managed Properties API.</b> + * * @author Piotr Buczek */ public interface IEntityInformationProvider { - /** @return identifier of entity with given kind and permid, <code>null</code> if such entity doesn't exist */ - String getIdentifier(EntityKind entityKind, String permId); + /** + * @return identifier of entity specified by given link, <code>null</code> if such an entity + * doesn't exist + */ + String getIdentifier(IEntityLinkElement entityLink); + } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IEntityLinkElement.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IEntityLinkElement.java index 450a7fad0f045b2b8dc41715f6d494f04bb4c505..391ceef7d689635dd34fb3fc929969c0c4e5c117 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IEntityLinkElement.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IEntityLinkElement.java @@ -16,9 +16,10 @@ package ch.systemsx.cisd.openbis.generic.shared.managed_property.api; - /** * Denotes a link to an entity in the openBIS database. + * <p> + * <b>All methods of this enum are part of the Managed Properties API.</b> * * @author Kaloyan Enimanev */ diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IRowBuilderAdaptor.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IRowBuilderAdaptor.java index a83f814cb1d184178741c72d0dd40d1aff67be78..b58eb0b68d6ab994b9e550047a0b76828417275f 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IRowBuilderAdaptor.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IRowBuilderAdaptor.java @@ -21,7 +21,7 @@ import java.util.Date; /** * Builder of a row of a simple table. * <p> - * All methods of this interface are part of the Managed Properties API. + * <b>All methods of this enum are part of the Managed Properties API.</b> * * @see ISimpleTableModelBuilderAdaptor * @author Piotr Buczek diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/ISimpleTableModelBuilderAdaptor.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/ISimpleTableModelBuilderAdaptor.java index e05b9777cf9f1b95c5dae8798a0d43e464827fa7..0ab800943b78a9d77ecb98738ad28b493da49c06 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/ISimpleTableModelBuilderAdaptor.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/ISimpleTableModelBuilderAdaptor.java @@ -22,7 +22,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.api.ITableModel; /** * Builder of simple table models. All column titles should be unique. * <p> - * All methods of this interface are part of the Managed Properties API. + * <b>All methods of this enum are part of the Managed Properties API.</b> * * @author Piotr Buczek */ diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IStructuredPropertyConverter.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IStructuredPropertyConverter.java index bd23080a8163fb1657bc0adb11294637f1734501..a7c63ee69c30ed4b758cb80b670fef0412f99116 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IStructuredPropertyConverter.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/api/IStructuredPropertyConverter.java @@ -23,6 +23,8 @@ import ch.systemsx.cisd.openbis.generic.shared.managed_property.structured.Eleme /** * Abstracts the conversion of {@link Element} objects to/from database strings. + * <p> + * <b>All methods of this enum are part of the Managed Properties API.</b> * * @author Kaloyan Enimanev */ @@ -34,10 +36,10 @@ public interface IStructuredPropertyConverter * @return an empty list if the value is undefined or special. */ List<IElement> convertToElements(IManagedProperty property); - + /** * @return a {@link String} representation of the specified elements that can be persisted in - * the database. + * the database. */ String convertToString(List<IElement> elements); diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractBOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractBOTest.java index 6609f459d4774f46a16d678bc51b75a7e6b9ecd9..97fbcd3a0436036d8d28862867d0edbc01eeeffc 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractBOTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/AbstractBOTest.java @@ -36,7 +36,6 @@ import ch.systemsx.cisd.openbis.generic.server.dataaccess.IExperimentDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IExternalDataDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IFileFormatTypeDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IGridCustomFilterDAO; -import ch.systemsx.cisd.openbis.generic.server.dataaccess.ISpaceDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.ILocatorTypeDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IMaterialDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IPersonDAO; @@ -46,6 +45,7 @@ import ch.systemsx.cisd.openbis.generic.server.dataaccess.IRelationshipTypeDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.ISampleDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.ISampleTypeDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IScriptDAO; +import ch.systemsx.cisd.openbis.generic.server.dataaccess.ISpaceDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IVocabularyDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IVocabularyTermDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.db.IPermIdDAO; @@ -186,6 +186,8 @@ public abstract class AbstractBOTest extends AssertJUnit will(returnValue(scriptDAO)); allowing(daoFactory).getMaterialDAO(); will(returnValue(materialDAO)); + allowing(daoFactory).getExperimentDAO(); + will(returnValue(experimentDAO)); } }); } diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/EntityInformationProviderTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/EntityInformationProviderTest.java new file mode 100644 index 0000000000000000000000000000000000000000..ce2622f2823ef87fcaf4f0a4a3ca281fc269c497 --- /dev/null +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/managed_property/EntityInformationProviderTest.java @@ -0,0 +1,91 @@ +/* + * Copyright 2009 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.generic.server.business.bo.managed_property; + +import org.jmock.Expectations; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import ch.systemsx.cisd.common.logging.LogInitializer; +import ch.systemsx.cisd.openbis.generic.server.business.bo.AbstractBOTest; +import ch.systemsx.cisd.openbis.generic.shared.CommonTestUtils; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialIdentifier; +import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE; +import ch.systemsx.cisd.openbis.generic.shared.dto.SamplePE; +import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier; +import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IEntityLinkElement; +import ch.systemsx.cisd.openbis.generic.shared.managed_property.structured.ElementFactory; + +/** + * @author Piotr Buczek + */ +public class EntityInformationProviderTest extends AbstractBOTest +{ + + private EntityInformationProvider provider; + + private ElementFactory elementFactory; + + @BeforeMethod + public void setUp() + { + LogInitializer.init(); + provider = new EntityInformationProvider(daoFactory); + elementFactory = new ElementFactory(); + } + + @Test + public void testGetIdentifier() + { + final String mCode = "mCode"; + final String mTypeCode = "mTypeCode"; + final String sPermId = "sPermId"; + final String ePermId = "ePermId"; + final String dPermId = "dPermId"; + IEntityLinkElement sampleLink = elementFactory.createSampleLink(sPermId); + IEntityLinkElement experimentLink = elementFactory.createExperimentLink(ePermId); + IEntityLinkElement materialLink = elementFactory.createMaterialLink(mCode, mTypeCode); + IEntityLinkElement datasetLink = elementFactory.createDataSetLink(dPermId); + + final SamplePE sample = CommonTestUtils.createSample(); + final ExperimentPE experiment = + CommonTestUtils.createExperiment(new ExperimentIdentifier("proj", "exp")); + context.checking(new Expectations() + { + { + one(sampleDAO).tryToFindByPermID(sPermId); + will(returnValue(sample)); + + one(experimentDAO).tryGetByPermID(ePermId); + will(returnValue(experiment)); + one(materialDAO).tryFindMaterial(new MaterialIdentifier(mCode, mTypeCode)); + // will(returnValue(any(MaterialPE.class))); + + one(externalDataDAO).tryToFindDataSetByCode(dPermId); + // will(returnValue(any(DataPE.class))); + } + }); + + String sIdentifier = provider.getIdentifier(sampleLink); + assertEquals(sample.getIdentifier(), sIdentifier); + String eIdentifier = provider.getIdentifier(experimentLink); + assertEquals(experiment.getIdentifier(), eIdentifier); + String mIdentifier = provider.getIdentifier(materialLink); + String dIdentifier = provider.getIdentifier(datasetLink); + } + +} diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/structured/StructuredPropertyConverterPythonTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/structured/StructuredPropertyConverterPythonTest.java index 5f79271b9f18501fb2e1db17b0c07f4d5496f477..33806bf1476c78a1b4e56bd2de2e83ed4ee2a3f3 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/structured/StructuredPropertyConverterPythonTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/structured/StructuredPropertyConverterPythonTest.java @@ -29,7 +29,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ManagedEntityProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.api.IManagedProperty; import ch.systemsx.cisd.openbis.generic.shared.managed_property.ManagedPropertyEvaluator; -import ch.systemsx.cisd.openbis.generic.shared.managed_property.ScriptUtilityFactory; +import ch.systemsx.cisd.openbis.generic.shared.managed_property.ManagedPropertyFunctions; import ch.systemsx.cisd.openbis.generic.shared.managed_property.api.IElement; /** @@ -55,7 +55,7 @@ public class StructuredPropertyConverterPythonTest extends AssertJUnit // the script will create several elements and serialize them in the property value List<IElement> elements = - ScriptUtilityFactory.getPropertyConverter().convertToElements(managedProperty); + ManagedPropertyFunctions.propertyConverter().convertToElements(managedProperty); assertEquals(3, elements.size()); } diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/structured/structured-property-test.py b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/structured/structured-property-test.py index 7fc95c5fd40417657580a7eb657e59e8dfba25fa..958557d1202fd9ed5d97610ece080c8fdded2d4a 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/structured/structured-property-test.py +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/managed_property/structured/structured-property-test.py @@ -1,5 +1,5 @@ -factory = getElementFactory() -converter = getPropertyConverter() +factory = elementFactory() +converter = propertyConverter() # # we use a function named "configureUI" to test something completely unrelated, diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/util/SimpleTableModelBuilderTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/util/SimpleTableModelBuilderTest.java index b66a83118902b98857b0b85d2662d3ca26c776d6..63a539b6274b648915a4cf0c35168250bdb56e10 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/util/SimpleTableModelBuilderTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/util/SimpleTableModelBuilderTest.java @@ -196,9 +196,9 @@ public class SimpleTableModelBuilderTest extends AssertJUnit rowBuilder.setCell("datasetCol", createDataSetCell("d2")); rowBuilder = builder.addRow(); rowBuilder.setCell("materialCol", SimpleTableModelBuilder.createNullCell()); - rowBuilder.setCell("sampleCol", createSampleCell("s3")); + rowBuilder.setCell("sampleCol", createSampleCell("s3", null)); rowBuilder.setCell("experimentCol", SimpleTableModelBuilder.createNullCell()); - rowBuilder.setCell("datasetCol", createDataSetCell("d3")); + rowBuilder.setCell("datasetCol", createDataSetCell("d3", "d3 id")); TableModel tableModel = builder.getTableModel(); @@ -225,9 +225,13 @@ public class SimpleTableModelBuilderTest extends AssertJUnit assertEquals("d2", rows.get(1).getValues().get(3).toString()); assertEquals(4, rows.get(2).getValues().size()); assertEquals("", rows.get(2).getValues().get(0).toString()); - assertEquals("s3", rows.get(2).getValues().get(1).toString()); + assertEquals("s3 (missing)", rows.get(2).getValues().get(1).toString()); + assertEquals(true, ((EntityTableCell) rows.get(2).getValues().get(1)).isMissing()); + assertEquals("s3", ((EntityTableCell) rows.get(2).getValues().get(1)).getPermId()); assertEquals("", rows.get(2).getValues().get(2).toString()); - assertEquals("d3", rows.get(2).getValues().get(3).toString()); + assertEquals("d3 id", rows.get(2).getValues().get(3).toString()); + assertEquals(false, ((EntityTableCell) rows.get(2).getValues().get(3)).isMissing()); + assertEquals("d3", ((EntityTableCell) rows.get(2).getValues().get(3)).getPermId()); } private static EntityTableCell createMaterialCell(String permId) @@ -240,6 +244,11 @@ public class SimpleTableModelBuilderTest extends AssertJUnit return new EntityTableCell(EntityKind.SAMPLE, permId); } + private static EntityTableCell createSampleCell(String permId, String identifierOrNull) + { + return new EntityTableCell(EntityKind.SAMPLE, permId, identifierOrNull); + } + private static EntityTableCell createExperimentCell(String permId) { return new EntityTableCell(EntityKind.EXPERIMENT, permId); @@ -250,6 +259,11 @@ public class SimpleTableModelBuilderTest extends AssertJUnit return new EntityTableCell(EntityKind.DATA_SET, permId); } + private static EntityTableCell createDataSetCell(String permId, String identifierOrNull) + { + return new EntityTableCell(EntityKind.DATA_SET, permId, identifierOrNull); + } + private void assertHeader(String expectedTitle, String expectedID, int expectedDefaultWidth, int expectedIndex, DataTypeCode expectedDataType, TableModelColumnHeader header) {