Skip to content

Commit 363298f

Browse files
committed
Removed more unnecessary classes and interfaces
1 parent dedae6f commit 363298f

File tree

7 files changed

+68
-169
lines changed

7 files changed

+68
-169
lines changed

src/main/java/nl/knaw/dans/dvingest/core/dansbag/DansBagMappingServiceImpl.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,11 @@
1919
import lombok.extern.slf4j.Slf4j;
2020
import nl.knaw.dans.dvingest.core.dansbag.deposit.BagDirResolver;
2121
import nl.knaw.dans.dvingest.core.dansbag.deposit.BagDirResolverImpl;
22-
import nl.knaw.dans.dvingest.core.dansbag.deposit.DepositFileLister;
23-
import nl.knaw.dans.dvingest.core.dansbag.deposit.DepositFileListerImpl;
22+
import nl.knaw.dans.dvingest.core.dansbag.deposit.DansBagDeposit;
2423
import nl.knaw.dans.dvingest.core.dansbag.deposit.DepositReader;
2524
import nl.knaw.dans.dvingest.core.dansbag.deposit.DepositReaderImpl;
26-
import nl.knaw.dans.dvingest.core.dansbag.deposit.DansBagDeposit;
2725
import nl.knaw.dans.dvingest.core.dansbag.exception.InvalidDepositException;
2826
import nl.knaw.dans.dvingest.core.dansbag.mapper.DepositToDvDatasetMetadataMapper;
29-
import nl.knaw.dans.dvingest.core.dansbag.service.BagDataManager;
30-
import nl.knaw.dans.dvingest.core.dansbag.service.BagDataManagerImpl;
3127
import nl.knaw.dans.dvingest.core.dansbag.service.ManifestHelper;
3228
import nl.knaw.dans.dvingest.core.dansbag.service.ManifestHelperImpl;
3329
import nl.knaw.dans.dvingest.core.dansbag.service.XmlReader;
@@ -71,12 +67,10 @@ public DansBagMappingServiceImpl(DepositToDvDatasetMetadataMapper depositToDvDat
7167
this.dataverseService = dataverseService;
7268
BagReader bagReader = new BagReader();
7369
ManifestHelper manifestHelper = new ManifestHelperImpl();
74-
DepositFileLister depositFileLister = new DepositFileListerImpl();
75-
BagDataManager bagDataManager = new BagDataManagerImpl(bagReader);
7670
XmlReader xmlReader = new XmlReaderImpl();
7771
BagDirResolver bagDirResolver = new BagDirResolverImpl();
7872

79-
depositReader = new DepositReaderImpl(xmlReader, bagDirResolver, bagDataManager, depositFileLister, manifestHelper);
73+
depositReader = new DepositReaderImpl(xmlReader, bagDirResolver, bagReader, manifestHelper);
8074
this.supportedLicenses = supportedLicenses;
8175
this.fileExclusionPattern = fileExclusionPattern;
8276
this.embargoExclusions = embargoExclusions;

src/main/java/nl/knaw/dans/dvingest/core/dansbag/deposit/DepositFileLister.java

Lines changed: 0 additions & 24 deletions
This file was deleted.

src/main/java/nl/knaw/dans/dvingest/core/dansbag/deposit/DepositFileListerImpl.java

Lines changed: 0 additions & 49 deletions
This file was deleted.

src/main/java/nl/knaw/dans/dvingest/core/dansbag/deposit/DepositReaderImpl.java

Lines changed: 63 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,21 @@
1616
package nl.knaw.dans.dvingest.core.dansbag.deposit;
1717

1818
import gov.loc.repository.bagit.domain.Bag;
19+
import gov.loc.repository.bagit.reader.BagReader;
1920
import nl.knaw.dans.dvingest.core.dansbag.exception.InvalidDepositException;
20-
import nl.knaw.dans.dvingest.core.dansbag.service.BagDataManager;
2121
import nl.knaw.dans.dvingest.core.dansbag.service.ManifestHelper;
22+
import nl.knaw.dans.dvingest.core.dansbag.service.ManifestHelperImpl;
23+
import nl.knaw.dans.dvingest.core.dansbag.service.XPathEvaluator;
2224
import nl.knaw.dans.dvingest.core.dansbag.service.XmlReader;
2325
import org.apache.commons.configuration2.Configuration;
26+
import org.apache.commons.configuration2.FileBasedConfiguration;
27+
import org.apache.commons.configuration2.PropertiesConfiguration;
28+
import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder;
29+
import org.apache.commons.configuration2.builder.fluent.Parameters;
30+
import org.apache.commons.configuration2.ex.ConfigurationException;
2431
import org.apache.commons.lang3.StringUtils;
2532
import org.w3c.dom.Document;
33+
import org.w3c.dom.Node;
2634
import org.xml.sax.SAXException;
2735

2836
import javax.xml.parsers.ParserConfigurationException;
@@ -32,20 +40,23 @@
3240
import java.time.OffsetDateTime;
3341
import java.util.List;
3442
import java.util.Optional;
43+
import java.util.stream.Collectors;
44+
45+
import static nl.knaw.dans.dvingest.core.dansbag.service.XPathConstants.FILES_FILE;
3546

3647
public class DepositReaderImpl implements DepositReader {
48+
private static final String DEPOSIT_PROPERTIES_FILENAME = "deposit.properties";
49+
3750
private final XmlReader xmlReader;
3851
private final BagDirResolver bagDirResolver;
39-
private final BagDataManager bagDataManager;
40-
private final DepositFileLister depositFileLister;
52+
private final BagReader bagReader;
4153

4254
private final ManifestHelper manifestHelper;
4355

44-
public DepositReaderImpl(XmlReader xmlReader, BagDirResolver bagDirResolver, BagDataManager bagDataManager, DepositFileLister depositFileLister, ManifestHelper manifestHelper) {
56+
public DepositReaderImpl(XmlReader xmlReader, BagDirResolver bagDirResolver, BagReader bagReader, ManifestHelper manifestHelper) {
4557
this.xmlReader = xmlReader;
4658
this.bagDirResolver = bagDirResolver;
47-
this.bagDataManager = bagDataManager;
48-
this.depositFileLister = depositFileLister;
59+
this.bagReader = bagReader;
4960
this.manifestHelper = manifestHelper;
5061
}
5162

@@ -54,18 +65,18 @@ public DansBagDeposit readDeposit(Path depositDir) throws InvalidDepositExceptio
5465
try {
5566
var bagDir = bagDirResolver.getBagDir(depositDir);
5667

57-
var config = bagDataManager.readDepositProperties(depositDir);
58-
var bag = bagDataManager.readBag(bagDir);
68+
var config = readDepositProperties(depositDir);
69+
var bag = bagReader.read(bagDir);
5970
manifestHelper.ensureSha1ManifestPresent(bag);
6071

6172
var deposit = mapToDeposit(depositDir, bagDir, config, bag);
6273

6374
deposit.setBag(bag);
64-
deposit.setDdm(readOptionalXmlFile(deposit.getDdmPath()));
65-
deposit.setFilesXml(readOptionalXmlFile(deposit.getFilesXmlPath()));
75+
deposit.setDdm(readRequiredXmlFile(deposit.getDdmPath()));
76+
deposit.setFilesXml(readRequiredXmlFile(deposit.getFilesXmlPath()));
6677
deposit.setAmd(readOptionalXmlFile(deposit.getAmdPath()));
6778

68-
deposit.setFiles(depositFileLister.getDepositFiles(deposit));
79+
deposit.setFiles(getDepositFiles(deposit));
6980

7081
return deposit;
7182
}
@@ -74,15 +85,54 @@ public DansBagDeposit readDeposit(Path depositDir) throws InvalidDepositExceptio
7485
}
7586
}
7687

77-
Document readOptionalXmlFile(Path path) throws ParserConfigurationException, IOException, SAXException {
88+
89+
private Configuration readDepositProperties(Path depositDir) throws ConfigurationException {
90+
var propertiesFile = depositDir.resolve(DEPOSIT_PROPERTIES_FILENAME);
91+
var params = new Parameters();
92+
var paramConfig = params.properties()
93+
.setFileName(propertiesFile.toString());
94+
95+
var builder = new FileBasedConfigurationBuilder<FileBasedConfiguration>
96+
(PropertiesConfiguration.class, null, true)
97+
.configure(paramConfig);
98+
99+
return builder.getConfiguration();
100+
}
101+
102+
private List<DepositFile> getDepositFiles(DansBagDeposit dansBagDeposit) throws IOException {
103+
var bag = dansBagDeposit.getBag();
104+
var filePathToSha1 = ManifestHelperImpl.getFilePathToSha1(bag);
105+
106+
return XPathEvaluator.nodes(dansBagDeposit.getFilesXml(), FILES_FILE)
107+
.map(node -> {
108+
var filePath = Optional.ofNullable(node.getAttributes().getNamedItem("filepath"))
109+
.map(Node::getTextContent)
110+
.map(Path::of)
111+
.orElseThrow(() -> new IllegalArgumentException("File element without filepath attribute"));
112+
113+
var sha1 = filePathToSha1.get(filePath);
114+
115+
return new DepositFile(filePath, sha1, node);
116+
})
117+
.collect(Collectors.toList());
118+
}
119+
120+
private Document readRequiredXmlFile(Path path) throws ParserConfigurationException, IOException, SAXException {
121+
if (!Files.exists(path)) {
122+
throw new IllegalArgumentException("Required file not found: " + path);
123+
}
124+
return xmlReader.readXmlFile(path);
125+
}
126+
127+
private Document readOptionalXmlFile(Path path) throws ParserConfigurationException, IOException, SAXException {
78128
if (Files.exists(path)) {
79129
return xmlReader.readXmlFile(path);
80130
}
81131

82132
return null;
83133
}
84134

85-
DansBagDeposit mapToDeposit(Path path, Path bagDir, Configuration config, Bag bag) {
135+
private DansBagDeposit mapToDeposit(Path path, Path bagDir, Configuration config, Bag bag) {
86136
var deposit = new DansBagDeposit();
87137
deposit.setBagDir(bagDir);
88138
deposit.setDir(path);

src/main/java/nl/knaw/dans/dvingest/core/dansbag/service/BagDataManager.java

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -15,39 +15,6 @@
1515
*/
1616
package nl.knaw.dans.dvingest.core.dansbag.service;
1717

18-
import gov.loc.repository.bagit.domain.Bag;
19-
import gov.loc.repository.bagit.exceptions.InvalidBagitFileFormatException;
20-
import gov.loc.repository.bagit.exceptions.MaliciousPathException;
21-
import gov.loc.repository.bagit.exceptions.UnparsableVersionException;
22-
import gov.loc.repository.bagit.exceptions.UnsupportedAlgorithmException;
23-
import org.apache.commons.configuration2.Configuration;
24-
import org.apache.commons.configuration2.ex.ConfigurationException;
25-
26-
import java.io.IOException;
27-
import java.nio.file.Path;
28-
2918
public interface BagDataManager {
3019

31-
/**
32-
* Reads the bag on the path that contains bag-info.txt and bagit.txt, among other files
33-
*
34-
* @param bagDir the path that contains bag-info.txt and bagit.txt
35-
* @return The bag object
36-
* @throws UnparsableVersionException
37-
* @throws InvalidBagitFileFormatException
38-
* @throws IOException
39-
* @throws MaliciousPathException
40-
* @throws UnsupportedAlgorithmException
41-
*/
42-
Bag readBag(Path bagDir) throws UnparsableVersionException, InvalidBagitFileFormatException, IOException, MaliciousPathException, UnsupportedAlgorithmException;
43-
44-
/**
45-
* Reads the deposit.properties file found inside the folder provided. The path should NOT reference deposit.properties directly
46-
*
47-
* @param depositDir The directory that contains a deposit.properties file
48-
* @return
49-
* @throws ConfigurationException
50-
*/
51-
Configuration readDepositProperties(Path depositDir) throws ConfigurationException;
52-
5320
}

src/main/java/nl/knaw/dans/dvingest/core/dansbag/service/BagDataManagerImpl.java

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,7 @@
1515
*/
1616
package nl.knaw.dans.dvingest.core.dansbag.service;
1717

18-
import gov.loc.repository.bagit.domain.Bag;
19-
import gov.loc.repository.bagit.exceptions.InvalidBagitFileFormatException;
20-
import gov.loc.repository.bagit.exceptions.MaliciousPathException;
21-
import gov.loc.repository.bagit.exceptions.UnparsableVersionException;
22-
import gov.loc.repository.bagit.exceptions.UnsupportedAlgorithmException;
2318
import gov.loc.repository.bagit.reader.BagReader;
24-
import org.apache.commons.configuration2.Configuration;
25-
import org.apache.commons.configuration2.FileBasedConfiguration;
26-
import org.apache.commons.configuration2.PropertiesConfiguration;
27-
import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder;
28-
import org.apache.commons.configuration2.builder.fluent.Parameters;
29-
import org.apache.commons.configuration2.ex.ConfigurationException;
30-
31-
import java.io.IOException;
32-
import java.nio.file.Path;
3319

3420
public class BagDataManagerImpl implements BagDataManager {
3521
private static final String DEPOSIT_PROPERTIES_FILENAME = "deposit.properties";
@@ -39,23 +25,4 @@ public BagDataManagerImpl(BagReader bagReader) {
3925
this.bagReader = bagReader;
4026
}
4127

42-
@Override
43-
public Bag readBag(Path bagDir) throws UnparsableVersionException, InvalidBagitFileFormatException, IOException, MaliciousPathException, UnsupportedAlgorithmException {
44-
return bagReader.read(bagDir);
45-
}
46-
47-
@Override
48-
public Configuration readDepositProperties(Path depositDir) throws ConfigurationException {
49-
var propertiesFile = depositDir.resolve(DEPOSIT_PROPERTIES_FILENAME);
50-
var params = new Parameters();
51-
var paramConfig = params.properties()
52-
.setFileName(propertiesFile.toString());
53-
54-
var builder = new FileBasedConfigurationBuilder<FileBasedConfiguration>
55-
(PropertiesConfiguration.class, null, true)
56-
.configure(paramConfig);
57-
58-
return builder.getConfiguration();
59-
}
60-
6128
}

src/test/java/nl/knaw/dans/dvingest/core/dansbag/DansConversionFixture.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,16 @@
1717

1818
import gov.loc.repository.bagit.reader.BagReader;
1919
import nl.knaw.dans.dvingest.core.TestDirFixture;
20-
import nl.knaw.dans.dvingest.core.service.DataverseService;
2120
import nl.knaw.dans.dvingest.core.dansbag.deposit.BagDirResolver;
2221
import nl.knaw.dans.dvingest.core.dansbag.deposit.BagDirResolverImpl;
23-
import nl.knaw.dans.dvingest.core.dansbag.deposit.DepositFileLister;
24-
import nl.knaw.dans.dvingest.core.dansbag.deposit.DepositFileListerImpl;
2522
import nl.knaw.dans.dvingest.core.dansbag.deposit.DepositReader;
2623
import nl.knaw.dans.dvingest.core.dansbag.deposit.DepositReaderImpl;
27-
import nl.knaw.dans.dvingest.core.dansbag.service.BagDataManager;
28-
import nl.knaw.dans.dvingest.core.dansbag.service.BagDataManagerImpl;
24+
import nl.knaw.dans.dvingest.core.dansbag.mapper.DepositToDvDatasetMetadataMapper;
2925
import nl.knaw.dans.dvingest.core.dansbag.service.ManifestHelper;
3026
import nl.knaw.dans.dvingest.core.dansbag.service.ManifestHelperImpl;
3127
import nl.knaw.dans.dvingest.core.dansbag.service.XmlReader;
3228
import nl.knaw.dans.dvingest.core.dansbag.service.XmlReaderImpl;
33-
import nl.knaw.dans.dvingest.core.dansbag.mapper.DepositToDvDatasetMetadataMapper;
29+
import nl.knaw.dans.dvingest.core.service.DataverseService;
3430
import nl.knaw.dans.lib.dataverse.model.dataset.License;
3531
import nl.knaw.dans.lib.util.MappingLoader;
3632
import org.apache.commons.io.FileUtils;
@@ -57,12 +53,10 @@ public void setUp() throws Exception {
5753
super.setUp();
5854
BagReader bagReader = new BagReader();
5955
ManifestHelper manifestHelper = new ManifestHelperImpl();
60-
DepositFileLister depositFileLister = new DepositFileListerImpl();
61-
BagDataManager bagDataManager = new BagDataManagerImpl(bagReader);
6256
XmlReader xmlReader = new XmlReaderImpl();
6357
BagDirResolver bagDirResolver = new BagDirResolverImpl();
6458

65-
depositReader = new DepositReaderImpl(xmlReader, bagDirResolver, bagDataManager, depositFileLister, manifestHelper);
59+
depositReader = new DepositReaderImpl(xmlReader, bagDirResolver, bagReader, manifestHelper);
6660
var defaultConfigDir = Paths.get("src/main/assembly/dist/cfg");
6761
var mapper = new DepositToDvDatasetMetadataMapper(
6862
false,

0 commit comments

Comments
 (0)