Skip to content

Commit ff394f2

Browse files
committed
Update layer deserializer to not use Optional
1 parent 393de9e commit ff394f2

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

src/main/java/com/robotgryphon/compactcrafting/recipes/json/LayerDeserializer.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import com.robotgryphon.compactcrafting.recipes.layers.IRecipeLayer;
99

1010
import java.lang.reflect.Type;
11-
import java.util.Optional;
1211

1312
public class LayerDeserializer implements JsonDeserializer<IRecipeLayer> {
1413

@@ -23,32 +22,35 @@ public IRecipeLayer deserialize(JsonElement json, Type typeOfT, JsonDeserializat
2322
if(!root.has("type"))
2423
throw new JsonParseException("Layer definition missing 'type' property.");
2524

26-
Optional<ILayerLoader> loader = Optional.empty();
25+
ILayerLoader loader;
2726
String type = root.get("type").getAsString();
2827
switch(type.toLowerCase()) {
2928
case "mixed":
3029
// Mixed layer type
31-
loader = Optional.of(MIXED);
30+
loader = MIXED;
3231
break;
3332

3433
case "filled":
3534
case "solid":
3635
// Filled layer type
37-
loader = Optional.of(FILLED);
36+
loader = FILLED;
3837
break;
3938

4039
case "hollow":
4140
// Hollow layer type
42-
loader = Optional.of(HOLLOW);
41+
loader = HOLLOW;
4342
break;
4443

4544
default:
4645
throw new JsonParseException("Unknown layer type '" + type + "'");
4746
}
4847

49-
return loader
50-
.map(iLayerLoader -> iLayerLoader.createLayerFromDefinition(root))
51-
.orElse(null);
48+
try {
49+
return loader.createLayerFromDefinition(root);
50+
}
5251

52+
catch(RecipeLoadingException rle) {
53+
return null;
54+
}
5355
}
5456
}

0 commit comments

Comments
 (0)