Skip to content

Commit e41cfcf

Browse files
committed
refactor: propagate IOException handling in reader.FolderStrategy and reader.ZipStrategy
1 parent 0fc94e7 commit e41cfcf

2 files changed

Lines changed: 20 additions & 33 deletions

File tree

src/main/java/edu/kit/datamanager/ro_crate/reader/FolderStrategy.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,11 @@
1717
public class FolderStrategy implements GenericReaderStrategy<String> {
1818

1919
@Override
20-
public ObjectNode readMetadataJson(String location) {
20+
public ObjectNode readMetadataJson(String location) throws IOException {
2121
Path metadata = new File(location).toPath().resolve("ro-crate-metadata.json");
2222
ObjectMapper objectMapper = MyObjectMapper.getMapper();
2323
ObjectNode objectNode = objectMapper.createObjectNode();
24-
try {
25-
objectNode = objectMapper.readTree(metadata.toFile()).deepCopy();
26-
} catch (IOException e) {
27-
e.printStackTrace();
28-
}
24+
objectNode = objectMapper.readTree(metadata.toFile()).deepCopy();
2925
return objectNode;
3026
}
3127

src/main/java/edu/kit/datamanager/ro_crate/reader/ZipStrategy.java

Lines changed: 18 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -80,29 +80,25 @@ public boolean isExtracted() {
8080
return isExtracted;
8181
}
8282

83-
private void readCrate(String location) {
84-
try {
85-
File folder = temporaryFolder.toFile();
86-
// ensure the directory is clean
87-
if (folder.isDirectory()) {
88-
FileUtils.cleanDirectory(folder);
89-
} else if (folder.isFile()) {
90-
FileUtils.delete(folder);
91-
}
92-
// extract
93-
try (ZipFile zf = new ZipFile(location)) {
94-
zf.extractAll(temporaryFolder.toAbsolutePath().toString());
95-
this.isExtracted = true;
96-
}
97-
// register deletion on exit
98-
FileUtils.forceDeleteOnExit(folder);
99-
} catch (IOException e) {
100-
e.printStackTrace();
83+
private void readCrate(String location) throws IOException {
84+
File folder = temporaryFolder.toFile();
85+
// ensure the directory is clean
86+
if (folder.isDirectory()) {
87+
FileUtils.cleanDirectory(folder);
88+
} else if (folder.isFile()) {
89+
FileUtils.delete(folder);
10190
}
91+
// extract
92+
try (ZipFile zf = new ZipFile(location)) {
93+
zf.extractAll(temporaryFolder.toAbsolutePath().toString());
94+
this.isExtracted = true;
95+
}
96+
// register deletion on exit
97+
FileUtils.forceDeleteOnExit(folder);
10298
}
10399

104100
@Override
105-
public ObjectNode readMetadataJson(String location) {
101+
public ObjectNode readMetadataJson(String location) throws IOException {
106102
if (!isExtracted) {
107103
this.readCrate(location);
108104
}
@@ -123,17 +119,12 @@ public ObjectNode readMetadataJson(String location) {
123119
.orElseThrow(() -> new IllegalStateException("No %s found in zip file".formatted(JsonDescriptor.ID)));
124120
jsonMetadata = firstSubdir.toPath().resolve(JsonDescriptor.ID).toFile();
125121
}
126-
127-
try {
128-
return objectMapper.readTree(jsonMetadata).deepCopy();
129-
} catch (IOException e) {
130-
e.printStackTrace();
131-
return null;
132-
}
122+
123+
return objectMapper.readTree(jsonMetadata).deepCopy();
133124
}
134125

135126
@Override
136-
public File readContent(String location) {
127+
public File readContent(String location) throws IOException {
137128
if (!isExtracted) {
138129
this.readCrate(location);
139130
}

0 commit comments

Comments
 (0)