From 370e60973ed23814c4133e6c0abd0e48b1a19fdc Mon Sep 17 00:00:00 2001 From: Saif Eddine Jerbi Date: Mon, 12 Mar 2018 21:13:44 +0100 Subject: [PATCH 1/3] Inherited Form Fields #78 expected behavior : The form definition contains the inherited fields fix #78 --- .../ui/core/schema/UiFormSchemaGenerator.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/main/java/io/asfjava/ui/core/schema/UiFormSchemaGenerator.java b/src/main/java/io/asfjava/ui/core/schema/UiFormSchemaGenerator.java index 7e1e678..110adee 100644 --- a/src/main/java/io/asfjava/ui/core/schema/UiFormSchemaGenerator.java +++ b/src/main/java/io/asfjava/ui/core/schema/UiFormSchemaGenerator.java @@ -3,6 +3,7 @@ import java.io.Serializable; import java.lang.annotation.Annotation; import java.lang.reflect.Field; +import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; @@ -12,9 +13,12 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Optional; +import java.util.Set; import java.util.function.Predicate; import java.util.stream.Collectors; +import org.reflections.ReflectionUtils; + import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; @@ -43,7 +47,8 @@ public final class UiFormSchemaGenerator { private static UiFormSchemaGenerator instance; public UiForm generate(Class formDto) throws JsonMappingException { - Field[] declaredFields = formDto.getDeclaredFields(); + Set declaredFields = ReflectionUtils.getAllFields(formDto, + field -> !Modifier.isStatic(field.getModifiers())); ObjectMapper mapper = new ObjectMapper(); JsonSchemaGenerator schemaGen = initSchemaGen(mapper); @@ -105,13 +110,13 @@ private ObjectNode buildActionNode(ObjectMapper mapper, Action action) { return node; } - private ObjectNode handlerGroupedFields(ObjectMapper mapper, Field[] declaredFields, + private ObjectNode handlerGroupedFields(ObjectMapper mapper, Set declaredFields, Map sortedNodes) { Predicate checkFieldSetAnnotation = field -> field.isAnnotationPresent(FieldSet.class); Map> groupedFields = new LinkedHashMap<>(); - Arrays.stream(declaredFields).filter(checkFieldSetAnnotation) + declaredFields.stream().filter(checkFieldSetAnnotation) .forEach(field -> groupFieldsByTab(sortedNodes, field, groupedFields)); ArrayNode groups = mapper.createArrayNode(); @@ -123,7 +128,7 @@ private ObjectNode handlerGroupedFields(ObjectMapper mapper, Field[] declaredFie } - private ObjectNode handleTabbedFields(ObjectMapper mapper, Field[] declaredFields, Map nodes) { + private ObjectNode handleTabbedFields(ObjectMapper mapper, Set declaredFields, Map nodes) { Predicate checkTabAnnotation = field -> field.isAnnotationPresent(Tab.class); Comparator tabIndexComparator = (field1, field2) -> Integer @@ -138,7 +143,7 @@ private ObjectNode handleTabbedFields(ObjectMapper mapper, Field[] declaredField Map> groupedFieldsByTab = new LinkedHashMap<>(); - Arrays.stream(declaredFields).filter(checkTabAnnotation).sorted(fieldIndexComparator).sorted(tabIndexComparator) + declaredFields.stream().filter(checkTabAnnotation).sorted(fieldIndexComparator).sorted(tabIndexComparator) .forEach(field -> groupFieldsByTab(nodes, field, groupedFieldsByTab)); ArrayNode tabs = mapper.createArrayNode(); @@ -161,10 +166,10 @@ private ObjectNode handleTabbedFields(ObjectMapper mapper, Field[] declaredField } - private Map initFieldsFormDefinition(ObjectMapper mapper, Field[] declaredFields) { + private Map initFieldsFormDefinition(ObjectMapper mapper, Set declaredFields) { Map nodes = new HashMap<>(); - Arrays.stream(declaredFields).forEach(field -> buildFormDefinition(nodes, mapper, field)); + declaredFields.forEach(field -> buildFormDefinition(nodes, mapper, field)); return nodes; } From cf6bae659d44c91e24de6a4647a7ff3352a3704b Mon Sep 17 00:00:00 2001 From: Saif Eddine Jerbi Date: Mon, 12 Mar 2018 23:15:47 +0100 Subject: [PATCH 2/3] [maven-release-plugin] prepare release sf-java-ui-1.0.1 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 9d359f7..9ccdb1e 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ io.sfjava.ui sf-java-ui - 1.0.1-SNAPSHOT + 1.0.1 jar sf-java-ui @@ -30,7 +30,7 @@ https://github.com/JsonSchema-JavaUI/sf-java-ui scm:git:git://github.com/JsonSchema-JavaUI/sf-java-ui.git scm:git:git@github.com:JsonSchema-JavaUI/sf-java-ui.git - sf-java-ui-1.0.0 + sf-java-ui-1.0.1 From d321354a0cd57f36598ee66e1a0e4dc3c623c244 Mon Sep 17 00:00:00 2001 From: Saif Eddine Jerbi Date: Mon, 12 Mar 2018 23:15:47 +0100 Subject: [PATCH 3/3] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 9ccdb1e..5355566 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ io.sfjava.ui sf-java-ui - 1.0.1 + 1.0.2-SNAPSHOT jar sf-java-ui @@ -30,7 +30,7 @@ https://github.com/JsonSchema-JavaUI/sf-java-ui scm:git:git://github.com/JsonSchema-JavaUI/sf-java-ui.git scm:git:git@github.com:JsonSchema-JavaUI/sf-java-ui.git - sf-java-ui-1.0.1 + sf-java-ui-1.0.0