diff --git a/src/main/java/io/github/zenwave360/zdl/antlr/ZdlListenerImpl.java b/src/main/java/io/github/zenwave360/zdl/antlr/ZdlListenerImpl.java index 164c85a..a0ae85c 100644 --- a/src/main/java/io/github/zenwave360/zdl/antlr/ZdlListenerImpl.java +++ b/src/main/java/io/github/zenwave360/zdl/antlr/ZdlListenerImpl.java @@ -163,8 +163,8 @@ public void enterField(io.github.zenwave360.zdl.antlr.ZdlParser.FieldContext ctx var name = getText(ctx.field_name()); var type = ctx.field_type() != null && ctx.field_type().ID() != null? ctx.field_type().ID().getText() : null; var javadoc = javadoc(first(ctx.javadoc(), ctx.suffix_javadoc())); - var isEnum = false; // TODO - var isEntity = false; // TODO + var isEnum = false; // see ZdlModelPostProcessor + var isEntity = false; // see ZdlModelPostProcessor var isArray = ctx.field_type().ARRAY() != null; var validations = processFieldValidations(ctx.field_validations()); var field = new FluentMap() diff --git a/src/main/java/io/github/zenwave360/zdl/antlr/ZdlModel.java b/src/main/java/io/github/zenwave360/zdl/antlr/ZdlModel.java index 41ddf19..549db46 100644 --- a/src/main/java/io/github/zenwave360/zdl/antlr/ZdlModel.java +++ b/src/main/java/io/github/zenwave360/zdl/antlr/ZdlModel.java @@ -30,6 +30,11 @@ public FluentMap getOutputs() { return (FluentMap) get("outputs"); } + public FluentMap getEvents() { + return (FluentMap) get("events"); + } + + public FluentMap getEnums() { var enumsRoot = (FluentMap) get("enums"); if(enumsRoot != null) { @@ -74,4 +79,5 @@ private Map problem(String path, String value, String error) { private int[] getLocation(String path) { return JSONPath.get(this, "$.locations.['" + path + "']"); } + } diff --git a/src/main/java/io/github/zenwave360/zdl/antlr/ZdlModelPostProcessor.java b/src/main/java/io/github/zenwave360/zdl/antlr/ZdlModelPostProcessor.java index b105826..d6a54fe 100644 --- a/src/main/java/io/github/zenwave360/zdl/antlr/ZdlModelPostProcessor.java +++ b/src/main/java/io/github/zenwave360/zdl/antlr/ZdlModelPostProcessor.java @@ -14,20 +14,29 @@ public static ZdlModel postProcess(ZdlModel model) { var inputs = model.getInputs(); var outputs = model.getOutputs(); var enums = model.getEnums(); + var events = model.getEvents(); var fields = JSONPath.get(model, "$..fields[*]", List.>of()); for (var field : fields) { - if(entities != null && entities.containsKey(field.get("name"))) { + if(entities != null && entities.containsKey(field.get("type"))) { field.put("isEntity", true); + field.put("isComplexType", true); } - if(enums != null && enums.containsKey(field.get("name"))) { + if(enums != null && enums.containsKey(field.get("type"))) { field.put("isEnum", true); + field.put("isComplexType", true); } - if(inputs != null && inputs.containsKey(field.get("name"))) { + if(inputs != null && inputs.containsKey(field.get("type"))) { field.put("isInput", true); + field.put("isComplexType", true); } - if(outputs != null && outputs.containsKey(field.get("name"))) { + if(outputs != null && outputs.containsKey(field.get("type"))) { field.put("isOutput", true); + field.put("isComplexType", true); + } + if(events != null && events.containsKey(field.get("type"))) { + field.put("isEvent", true); + field.put("isComplexType", true); } }