Skip to content

Commit bdba9ea

Browse files
committed
Resolving PR comments
1 parent d002947 commit bdba9ea

File tree

3 files changed

+15
-16
lines changed

3 files changed

+15
-16
lines changed

src/main/java/io/github/filelize/Filelizer.java

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -45,21 +45,11 @@ private IFilelizer resolveFilelizerType(Object valueType) {
4545
}
4646

4747
private IFilelizer resolveFilelizerType(FilelizeType filelizeType) {
48-
// I do not like this implementation. It's mandated because of object graph structure and Java 11.
49-
// With Java 17 or later, this becomes a switch expression and is much nicer.
50-
IFilelizer filelizer = null;
51-
switch (filelizeType) {
52-
case MULTIPLE_FILES:
53-
filelizer = filelizerMultiple;
54-
break;
55-
case SINGLE_FILE:
56-
filelizer = filelizerSingle;
57-
break;
58-
case OBJECT_FILE:
59-
filelizer = filelizerObject;
60-
break;
61-
}
62-
return filelizer;
48+
return switch(filelizeType) {
49+
case MULTIPLE_FILES -> filelizerMultiple;
50+
case SINGLE_FILE -> filelizerSingle;
51+
case OBJECT_FILE -> filelizerObject;
52+
};
6353
}
6454

6555
@Override

src/main/java/io/github/filelize/path/PathHandler.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public String getFullPath2(String id, Object object) {
3232
return getDirectoryPath(object) + "/" + id + ".json";
3333
}
3434

35+
// TODO should use the abstraction from Filelizer to dispatch: object graph issue
3536
public <T> String getFullPath(String id, Class<T> valueType) {
3637
if(filelizeType == FilelizeType.MULTIPLE_FILES) {
3738
var name = getFilelizeName(valueType);

src/test/java/io/github/filelize/path/PathHandlerSingleTest.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import java.util.Map;
1010

1111
import static org.junit.jupiter.api.Assertions.assertEquals;
12+
import static org.junit.jupiter.api.Assertions.assertThrows;
1213

1314
public class PathHandlerSingleTest {
1415

@@ -17,7 +18,14 @@ public class PathHandlerSingleTest {
1718
public PathHandlerSingleTest() {
1819
this.pathHandler = new PathHandler("src/test/resources", FilelizeType.SINGLE_FILE, new ObjectMapper());
1920
}
20-
21+
@Test
22+
public void testPathHandlerReturnsEmptyBaseForNull() {
23+
// TODO clarify API visibility
24+
assertThrows(NullPointerException.class, () -> {
25+
var path = pathHandler.getFullPath2("foo", null);
26+
assertEquals("src/test/resources/foo.json", path);
27+
});
28+
}
2129
@Test
2230
public void testGetFullPath() {
2331
var fullPath = pathHandler.getFullPath(new SomethingSingle());

0 commit comments

Comments
 (0)