From ee9146658c08511cca880df1182cfece606ab628 Mon Sep 17 00:00:00 2001 From: buczekp <buczekp> Date: Wed, 20 Apr 2011 10:01:27 +0000 Subject: [PATCH] [LMS-2172] refactorization: extracted class to make testing easier SVN: 21004 --- .../DatabaseBasedDataSetPathInfoProvider.java | 132 ++++++++++-------- 1 file changed, 71 insertions(+), 61 deletions(-) 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 e5195c63a1c..6e365999b88 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 @@ -131,75 +131,85 @@ public class DatabaseBasedDataSetPathInfoProvider implements IDataSetPathInfoPro final Long dataSetId = getDao().tryToGetDataSetId(dataSetCode); if (dataSetId != null) { - return new ISingleDataSetPathInfoProvider() - { - public DataSetPathInfo getRootPathInfo() - { - DataSetFileRecord record = getDao().getDataSetRootFile(dataSetId); - return asPathInfo(record); - } + return new SingleDataSetPathInfoProvider(dataSetId, getDao()); + } + return null; + } - public DataSetPathInfo tryGetPathInfoByRelativePath(String relativePath) - { - DataSetFileRecord record = - getDao().tryToGetRelativeDataSetFile(dataSetId, relativePath); - if (record != null) - { - return asPathInfo(record); - } else - { - return null; - } - } + private final class SingleDataSetPathInfoProvider implements ISingleDataSetPathInfoProvider + { + private final Long dataSetId; - public List<DataSetPathInfo> listChildrenPathInfos(DataSetPathInfo parent) - { - List<DataSetFileRecord> records = - getDao().listChildrenByParentId(dataSetId, parent.getId()); - return asPathInfos(records); - } + @SuppressWarnings("hiding") + private final IPathInfoDAO dao; - public List<DataSetPathInfo> listMatchingPathInfos(String relativePathPattern) - { - List<DataSetFileRecord> records = - getDao().listDataSetFilesByRelativePathRegex(dataSetId, - prepareDBStyleRegex(relativePathPattern)); - return asPathInfos(records); - } + public SingleDataSetPathInfoProvider(Long dataSetId, IPathInfoDAO dao) + { + this.dataSetId = dataSetId; + this.dao = dao; + } - public List<DataSetPathInfo> listMatchingPathInfos(String startingPath, - String fileNamePattern) - { - List<DataSetFileRecord> records = - getDao().listDataSetFilesByFilenameRegex(dataSetId, startingPath, - prepareDBStyleRegex(fileNamePattern)); - return asPathInfos(records); - } + public DataSetPathInfo getRootPathInfo() + { + DataSetFileRecord record = dao.getDataSetRootFile(dataSetId); + return asPathInfo(record); + } - private DataSetPathInfo asPathInfo(DataSetFileRecord record) - { - DataSetPathInfo result = new DataSetPathInfo(); - result.setId(record.id); - result.setFileName(record.file_name); - result.setRelativePath(record.relative_path); - result.setDirectory(record.is_directory); - result.setSizeInBytes(record.size_in_bytes); - return result; - } + public DataSetPathInfo tryGetPathInfoByRelativePath(String relativePath) + { + DataSetFileRecord record = dao.tryToGetRelativeDataSetFile(dataSetId, relativePath); + if (record != null) + { + return asPathInfo(record); + } else + { + return null; + } + } - private List<DataSetPathInfo> asPathInfos(List<DataSetFileRecord> records) - { - List<DataSetPathInfo> results = new ArrayList<DataSetPathInfo>(); - for (DataSetFileRecord record : records) - { - results.add(asPathInfo(record)); - } - return results; - } + public List<DataSetPathInfo> listChildrenPathInfos(DataSetPathInfo parent) + { + List<DataSetFileRecord> records = dao.listChildrenByParentId(dataSetId, parent.getId()); + return asPathInfos(records); + } + + public List<DataSetPathInfo> listMatchingPathInfos(String relativePathPattern) + { + List<DataSetFileRecord> records = + dao.listDataSetFilesByRelativePathRegex(dataSetId, + prepareDBStyleRegex(relativePathPattern)); + return asPathInfos(records); + } - }; + public List<DataSetPathInfo> listMatchingPathInfos(String startingPath, + String fileNamePattern) + { + List<DataSetFileRecord> records = + dao.listDataSetFilesByFilenameRegex(dataSetId, startingPath, + prepareDBStyleRegex(fileNamePattern)); + return asPathInfos(records); + } + + private DataSetPathInfo asPathInfo(DataSetFileRecord record) + { + DataSetPathInfo result = new DataSetPathInfo(); + result.setId(record.id); + result.setFileName(record.file_name); + result.setRelativePath(record.relative_path); + result.setDirectory(record.is_directory); + result.setSizeInBytes(record.size_in_bytes); + return result; + } + + private List<DataSetPathInfo> asPathInfos(List<DataSetFileRecord> records) + { + List<DataSetPathInfo> results = new ArrayList<DataSetPathInfo>(); + for (DataSetFileRecord record : records) + { + results.add(asPathInfo(record)); + } + return results; } - return null; } private final class Loader -- GitLab