Skip to content

Commit 7d5a997

Browse files
author
Christopher Raquet
committed
Prevent crate reader from removing data entities without corresponding file
1 parent 78cb1ee commit 7d5a997

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

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

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import edu.kit.datamanager.ro_crate.entities.data.RootDataEntity;
1313
import edu.kit.datamanager.ro_crate.special.JsonUtilFunctions;
1414
import static edu.kit.datamanager.ro_crate.special.UriUtil.decode;
15+
import static edu.kit.datamanager.ro_crate.special.UriUtil.isUrl;
16+
1517
import edu.kit.datamanager.ro_crate.validation.JsonSchemaValidation;
1618
import edu.kit.datamanager.ro_crate.validation.Validator;
1719

@@ -92,17 +94,18 @@ public RoCrate readCrate(String location) {
9294
// if the id is in the root hasPart list, we know this entity is a data entity
9395
RootDataEntity root = crate.getRootDataEntity();
9496
if (root != null && root.hasInHasPart(node.get(PROP_ID).asText())) {
97+
// data entity
98+
DataEntity.DataEntityBuilder dataEntity = new DataEntity.DataEntityBuilder()
99+
.setAll(node.deepCopy());
100+
101+
// Handle data entities with corresponding file
95102
File loc = checkFolderHasFile(node.get(PROP_ID).asText(), files);
96103
if (loc != null) {
97104
usedFiles.add(loc.getPath());
98-
99-
// data entity
100-
DataEntity dataEntity = new DataEntity.DataEntityBuilder()
101-
.setAll(node.deepCopy())
102-
.addContent(loc.toPath(), loc.getName())
103-
.build();
104-
crate.addDataEntity(dataEntity, false);
105+
dataEntity.addContent(loc.toPath(), loc.getName());
105106
}
107+
108+
crate.addDataEntity(dataEntity.build(), false);
106109
} else {
107110
// contextual entity
108111
crate.addContextualEntity(

0 commit comments

Comments
 (0)