From dff5a8b8c7ace1e1868de3d548ccd06cdfa24891 Mon Sep 17 00:00:00 2001 From: brinn <brinn> Date: Mon, 4 Jun 2012 06:16:37 +0000 Subject: [PATCH] Fix Eclipse warning and ensure that AbstractOmniscientTopLevelDataSetRegistrator creates a DataSetInformation object with the correct type (which currently always is a DataSetInformation instance, but maybe an instance of a sub-class in the future). SVN: 25513 --- ...tOmniscientTopLevelDataSetRegistrator.java | 11 ++++++---- ...aultDataSetRegistrationDetailsFactory.java | 21 ++++++++++++++----- .../JythonTopLevelDataSetHandler.java | 10 +++++---- .../v2/JythonTopLevelDataSetHandlerV2.java | 6 +++--- .../DataSetStorageRollbackerTest.java | 2 +- .../registrator/TestingDataSetHandler.java | 2 +- .../registrator/TestingDataSetHandlerV2.java | 2 +- .../DataSetRegistrationTransactionTest.java | 2 +- .../etl/jython/JythonPlateDataSetHandler.java | 2 +- .../v2/JythonPlateDataSetHandlerV2.java | 2 +- 10 files changed, 38 insertions(+), 22 deletions(-) diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/AbstractOmniscientTopLevelDataSetRegistrator.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/AbstractOmniscientTopLevelDataSetRegistrator.java index 3459b3611a2..2d44e5063c9 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/AbstractOmniscientTopLevelDataSetRegistrator.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/AbstractOmniscientTopLevelDataSetRegistrator.java @@ -243,6 +243,8 @@ public abstract class AbstractOmniscientTopLevelDataSetRegistrator<T extends Dat protected final OmniscientTopLevelDataSetRegistratorState state; + private final Class<T> clazz; + private boolean stopped; /** @@ -251,10 +253,11 @@ public abstract class AbstractOmniscientTopLevelDataSetRegistrator<T extends Dat * @param globalState */ protected AbstractOmniscientTopLevelDataSetRegistrator( - TopLevelDataSetRegistratorGlobalState globalState) + TopLevelDataSetRegistratorGlobalState globalState, Class<T> clazz) { super(globalState); + this.clazz = clazz; IStorageProcessorTransactional storageProcessor = PropertiesBasedETLServerPlugin.create(IStorageProcessorTransactional.class, globalState.getThreadParameters().getThreadProperties(), @@ -661,10 +664,10 @@ public abstract class AbstractOmniscientTopLevelDataSetRegistrator<T extends Dat final IDelegatedActionWithResult<Boolean> cleanAfterwardsAction, ITopLevelDataSetRegistratorDelegate delegate) { - @SuppressWarnings("unchecked") DataSetRegistrationService<T> service = - new DataSetRegistrationService(this, incomingDataSetFile, - new DefaultDataSetRegistrationDetailsFactory(getRegistratorState(), + new DataSetRegistrationService<T>(this, incomingDataSetFile, + new DefaultDataSetRegistrationDetailsFactory<T>(clazz, + getRegistratorState(), callerDataSetInformationOrNull), cleanAfterwardsAction, delegate); return service; } diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DefaultDataSetRegistrationDetailsFactory.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DefaultDataSetRegistrationDetailsFactory.java index 9b89d10c280..25e738d775f 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DefaultDataSetRegistrationDetailsFactory.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DefaultDataSetRegistrationDetailsFactory.java @@ -22,24 +22,35 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation; /** * @author Chandrasekhar Ramakrishnan */ -public class DefaultDataSetRegistrationDetailsFactory extends - AbstractDataSetRegistrationDetailsFactory<DataSetInformation> +public class DefaultDataSetRegistrationDetailsFactory<T extends DataSetInformation> extends + AbstractDataSetRegistrationDetailsFactory<T> { + private final Class<T> dataSetInfoClass; /** * @param registratorState */ public DefaultDataSetRegistrationDetailsFactory( - OmniscientTopLevelDataSetRegistratorState registratorState, + Class<T> dataSetInfoClass, OmniscientTopLevelDataSetRegistratorState registratorState, DataSetInformation userProvidedDataSetInformationOrNull) { super(registratorState, userProvidedDataSetInformationOrNull); + this.dataSetInfoClass = dataSetInfoClass; } @Override - protected DataSetInformation createDataSetInformation() + protected T createDataSetInformation() { - return new DataSetInformation(); + try + { + return dataSetInfoClass.newInstance(); + } catch (InstantiationException ex) + { + throw new Error(ex); + } catch (IllegalAccessException ex) + { + throw new Error(ex); + } } } diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetHandler.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetHandler.java index 976dc0918e7..0b88e7a726a 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetHandler.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetHandler.java @@ -136,9 +136,10 @@ public class JythonTopLevelDataSetHandler<T extends DataSetInformation> extends * * @param globalState */ - public JythonTopLevelDataSetHandler(TopLevelDataSetRegistratorGlobalState globalState) + public JythonTopLevelDataSetHandler(TopLevelDataSetRegistratorGlobalState globalState, + Class<T> clazz) { - super(globalState); + super(globalState, clazz); String path = PropertyUtils.getMandatoryProperty(globalState.getThreadParameters() @@ -481,12 +482,13 @@ public class JythonTopLevelDataSetHandler<T extends DataSetInformation> extends invokeFunction(function, service, transaction); } - private void invokeTransactionFunctionWithContext(PyFunction function, DataSetRegistrationPersistentMap.IHolder persistentMapHolder, + private void invokeTransactionFunctionWithContext(PyFunction function, + DataSetRegistrationPersistentMap.IHolder persistentMapHolder, Object... additionalArgs) { if (additionalArgs.length > 0) { - invokeFunction(function, persistentMapHolder.getPersistentMap(), + invokeFunction(function, persistentMapHolder.getPersistentMap(), additionalArgs); } else { diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/JythonTopLevelDataSetHandlerV2.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/JythonTopLevelDataSetHandlerV2.java index 1dc810d763b..cf32b3ced21 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/JythonTopLevelDataSetHandlerV2.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/api/v2/JythonTopLevelDataSetHandlerV2.java @@ -58,15 +58,15 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; public class JythonTopLevelDataSetHandlerV2<T extends DataSetInformation> extends ch.systemsx.cisd.etlserver.registrator.JythonTopLevelDataSetHandler<T> { - /** * Constructor. * * @param globalState */ - public JythonTopLevelDataSetHandlerV2(TopLevelDataSetRegistratorGlobalState globalState) + public JythonTopLevelDataSetHandlerV2(TopLevelDataSetRegistratorGlobalState globalState, + Class<T> clazz) { - super(globalState); + super(globalState, clazz); } /** diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRollbackerTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRollbackerTest.java index 2741f2d4c3f..9200c7a3bdc 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRollbackerTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageRollbackerTest.java @@ -142,7 +142,7 @@ public class DataSetStorageRollbackerTest extends AbstractFileSystemTestCase */ protected TestDataSetRegistrator(TopLevelDataSetRegistratorGlobalState globalState) { - super(globalState); + super(globalState, DataSetInformation.class); } @Override diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/TestingDataSetHandler.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/TestingDataSetHandler.java index 2fad00a1b3a..e15b1188b5c 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/TestingDataSetHandler.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/TestingDataSetHandler.java @@ -14,7 +14,7 @@ public class TestingDataSetHandler extends JythonTopLevelDataSetHandler<DataSetI public TestingDataSetHandler(TopLevelDataSetRegistratorGlobalState globalState, boolean shouldRegistrationFail, boolean shouldReThrowRollbackException) { - super(globalState); + super(globalState, DataSetInformation.class); this.expectations = new TestingDataSetHandlerExpectations(shouldRegistrationFail, diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/TestingDataSetHandlerV2.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/TestingDataSetHandlerV2.java index 3499ef2ace8..28728fb0e89 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/TestingDataSetHandlerV2.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/TestingDataSetHandlerV2.java @@ -15,7 +15,7 @@ public class TestingDataSetHandlerV2 extends JythonTopLevelDataSetHandlerV2<Data public TestingDataSetHandlerV2(TopLevelDataSetRegistratorGlobalState globalState, boolean shouldRegistrationFail, boolean shouldReThrowRollbackException) { - super(globalState); + super(globalState, DataSetInformation.class); this.expectations = new TestingDataSetHandlerExpectations(shouldRegistrationFail, diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransactionTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransactionTest.java index 2bcaa84f74d..5b53f2a124a 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransactionTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/api/v1/impl/DataSetRegistrationTransactionTest.java @@ -680,7 +680,7 @@ public class DataSetRegistrationTransactionTest extends AbstractFileSystemTestCa */ protected TestingDataSetHandler(TopLevelDataSetRegistratorGlobalState globalState) { - super(globalState); + super(globalState, DataSetInformation.class); } @Override diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/JythonPlateDataSetHandler.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/JythonPlateDataSetHandler.java index 0437c456ca2..670b0afd3bc 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/JythonPlateDataSetHandler.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/JythonPlateDataSetHandler.java @@ -28,7 +28,7 @@ public class JythonPlateDataSetHandler extends JythonTopLevelDataSetHandler<Data public JythonPlateDataSetHandler(TopLevelDataSetRegistratorGlobalState globalState) { - super(globalState); + super(globalState, DataSetInformation.class); originalDirName = JythonPlateDataSetHandlerUtils.parseOriginalDir(globalState.getThreadParameters() .getThreadProperties()); diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/v2/JythonPlateDataSetHandlerV2.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/v2/JythonPlateDataSetHandlerV2.java index 21336ee67c0..59096b18f09 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/v2/JythonPlateDataSetHandlerV2.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/jython/v2/JythonPlateDataSetHandlerV2.java @@ -52,7 +52,7 @@ public class JythonPlateDataSetHandlerV2 extends JythonTopLevelDataSetHandlerV2< */ public JythonPlateDataSetHandlerV2(TopLevelDataSetRegistratorGlobalState globalState) { - super(globalState); + super(globalState, DataSetInformation.class); originalDirName = JythonPlateDataSetHandlerUtils.parseOriginalDir(globalState.getThreadParameters().getThreadProperties()); } -- GitLab