diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolver.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolver.java index f86218d500fdfe1ace1d6a94cec6955c9a72bc44..fd0f26da13d71a570b50c4c2613823574a5adbac 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolver.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolver.java @@ -35,7 +35,7 @@ import ch.systemsx.cisd.common.io.IHierarchicalContentNode; import ch.systemsx.cisd.common.io.IHierarchicalContentNodeFilter; import ch.systemsx.cisd.common.logging.LogCategory; import ch.systemsx.cisd.common.logging.LogFactory; -import ch.systemsx.cisd.common.utilities.ExtendedProperties; +import ch.systemsx.cisd.common.utilities.Template; import ch.systemsx.cisd.openbis.dss.generic.server.ftp.FtpConstants; import ch.systemsx.cisd.openbis.dss.generic.server.ftp.FtpPathResolverContext; import ch.systemsx.cisd.openbis.dss.generic.server.ftp.FtpServerConfig; @@ -73,8 +73,6 @@ public class TemplateBasedDataSetResourceResolver implements IFtpPathResolver, private static final String DATA_SET_DATE_FORMAT = "yyyy-MM-dd-HH-mm"; - private static final String TEMPLATE = "template"; - private static final Logger operationLog = LogFactory.getLogger(LogCategory.OPERATION, TemplateBasedDataSetResourceResolver.class); @@ -405,19 +403,18 @@ public class TemplateBasedDataSetResourceResolver implements IFtpPathResolver, private String evaluateTemplate(ExternalData dataSet, String fileName, String disambiguation) { - ExtendedProperties properties = new ExtendedProperties(); - properties.put(DATA_SET_CODE_VARNAME, dataSet.getCode()); - properties.put(DATA_SET_TYPE_VARNAME, dataSet.getDataSetType().getCode()); + Template eval = new Template(template); + eval.attemptToBind(DATA_SET_CODE_VARNAME, dataSet.getCode()); + eval.attemptToBind(DATA_SET_TYPE_VARNAME, dataSet.getDataSetType().getCode()); String dataSetDate = extractDateValue(dataSet.getRegistrationDate()); - properties.put(DATA_SET_DATE_VARNAME, dataSetDate); + eval.attemptToBind(DATA_SET_DATE_VARNAME, dataSetDate); if (fileName != null) { - properties.put(FILE_NAME_VARNAME, fileName); + eval.attemptToBind(FILE_NAME_VARNAME, fileName); } - properties.put(DISAMBIGUATION_VARNAME, disambiguation); + eval.attemptToBind(DISAMBIGUATION_VARNAME, disambiguation); - properties.put(TEMPLATE, template); - return properties.getProperty(TEMPLATE); + return eval.createText(); } /** @@ -433,13 +430,8 @@ public class TemplateBasedDataSetResourceResolver implements IFtpPathResolver, */ private boolean isVariablePresentInTemplate(String variableName) { - ExtendedProperties properties = new ExtendedProperties(); - // try to replace the variable with something different - properties.put(variableName, variableName + variableName); - - properties.put(TEMPLATE, template); - String evaluatedTemplate = properties.getProperty(TEMPLATE); - return false == evaluatedTemplate.equals(template); + Template parsedTemplate = new Template(template); + return parsedTemplate.getPlaceholderNames().contains(variableName); } private IHierarchicalContentNodeFilter createFilter(final String fileFilterPattern)