Skip to content

Commit ffe5b91

Browse files
committed
fix: writing files uses decoded ID of an entity
1 parent 2a1f0e1 commit ffe5b91

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

src/main/java/edu/kit/datamanager/ro_crate/writer/WriteFolderStrategy.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import edu.kit.datamanager.ro_crate.Crate;
66
import edu.kit.datamanager.ro_crate.entities.data.DataEntity;
77
import edu.kit.datamanager.ro_crate.objectmapper.MyObjectMapper;
8+
import edu.kit.datamanager.ro_crate.special.IdentifierUtils;
89
import org.apache.commons.io.FileUtils;
910
import org.slf4j.Logger;
1011
import org.slf4j.LoggerFactory;
@@ -64,16 +65,18 @@ public void save(Crate crate, String destination) throws IOException {
6465
}
6566
}
6667
for (DataEntity dataEntity : crate.getAllDataEntities()) {
67-
savetoFile(dataEntity, file);
68+
saveToFile(dataEntity, file);
6869
}
6970
}
7071

71-
private void savetoFile(DataEntity entity, File file) throws IOException {
72+
private void saveToFile(DataEntity entity, File file) throws IOException {
7273
if (entity.getPath() != null) {
74+
String id = entity.getId();
75+
String filename = IdentifierUtils.decode(id).orElse(id);
7376
if (entity.getPath().toFile().isDirectory()) {
74-
FileUtils.copyDirectory(entity.getPath().toFile(), file.toPath().resolve(entity.getId()).toFile());
77+
FileUtils.copyDirectory(entity.getPath().toFile(), file.toPath().resolve(filename).toFile());
7578
} else {
76-
FileUtils.copyFile(entity.getPath().toFile(), file.toPath().resolve(entity.getId()).toFile());
79+
FileUtils.copyFile(entity.getPath().toFile(), file.toPath().resolve(filename).toFile());
7780
}
7881
}
7982
}

0 commit comments

Comments
 (0)