Skip to content

Commit a3df3ff

Browse files
authored
Merge pull request #80 from JsonSchema-JavaUI/patch-1.0.1
🐛 Patch 1.0.1
2 parents e300f8c + d321354 commit a3df3ff

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
<groupId>io.sfjava.ui</groupId>
55
<artifactId>sf-java-ui</artifactId>
6-
<version>1.0.1-SNAPSHOT</version>
6+
<version>1.0.2-SNAPSHOT</version>
77
<packaging>jar</packaging>
88

99
<name>sf-java-ui</name>

src/main/java/io/asfjava/ui/core/schema/UiFormSchemaGenerator.java

+12-7
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
importjava.io.Serializable;
44
importjava.lang.annotation.Annotation;
55
importjava.lang.reflect.Field;
6+
importjava.lang.reflect.Modifier;
67
importjava.util.ArrayList;
78
importjava.util.Arrays;
89
importjava.util.Comparator;
@@ -12,9 +13,12 @@
1213
importjava.util.Map;
1314
importjava.util.Map.Entry;
1415
importjava.util.Optional;
16+
importjava.util.Set;
1517
importjava.util.function.Predicate;
1618
importjava.util.stream.Collectors;
1719

20+
importorg.reflections.ReflectionUtils;
21+
1822
importcom.fasterxml.jackson.databind.JsonMappingException;
1923
importcom.fasterxml.jackson.databind.JsonNode;
2024
importcom.fasterxml.jackson.databind.ObjectMapper;
@@ -43,7 +47,8 @@ public final class UiFormSchemaGenerator {
4347
privatestaticUiFormSchemaGeneratorinstance;
4448

4549
publicUiFormgenerate(Class<? extendsSerializable> formDto) throwsJsonMappingException {
46-
Field[] declaredFields = formDto.getDeclaredFields();
50+
Set<Field> declaredFields = ReflectionUtils.getAllFields(formDto,
51+
field -> !Modifier.isStatic(field.getModifiers()));
4752
ObjectMappermapper = newObjectMapper();
4853

4954
JsonSchemaGeneratorschemaGen = initSchemaGen(mapper);
@@ -105,13 +110,13 @@ private ObjectNode buildActionNode(ObjectMapper mapper, Action action) {
105110
returnnode;
106111
}
107112

108-
privateObjectNodehandlerGroupedFields(ObjectMappermapper, Field[]declaredFields,
113+
privateObjectNodehandlerGroupedFields(ObjectMappermapper, Set<Field>declaredFields,
109114
Map<Field, JsonNode> sortedNodes) {
110115
Predicate<? superField> checkFieldSetAnnotation = field -> field.isAnnotationPresent(FieldSet.class);
111116

112117
Map<String, List<JsonNode>> groupedFields = newLinkedHashMap<>();
113118

114-
Arrays.stream(declaredFields).filter(checkFieldSetAnnotation)
119+
declaredFields.stream().filter(checkFieldSetAnnotation)
115120
.forEach(field -> groupFieldsByTab(sortedNodes, field, groupedFields));
116121

117122
ArrayNodegroups = mapper.createArrayNode();
@@ -123,7 +128,7 @@ private ObjectNode handlerGroupedFields(ObjectMapper mapper, Field[] declaredFie
123128

124129
}
125130

126-
privateObjectNodehandleTabbedFields(ObjectMappermapper, Field[]declaredFields, Map<Field, JsonNode> nodes) {
131+
privateObjectNodehandleTabbedFields(ObjectMappermapper, Set<Field>declaredFields, Map<Field, JsonNode> nodes) {
127132
Predicate<? superField> checkTabAnnotation = field -> field.isAnnotationPresent(Tab.class);
128133

129134
Comparator<? superField> tabIndexComparator = (field1, field2) -> Integer
@@ -138,7 +143,7 @@ private ObjectNode handleTabbedFields(ObjectMapper mapper, Field[] declaredField
138143

139144
Map<String, List<JsonNode>> groupedFieldsByTab = newLinkedHashMap<>();
140145

141-
Arrays.stream(declaredFields).filter(checkTabAnnotation).sorted(fieldIndexComparator).sorted(tabIndexComparator)
146+
declaredFields.stream().filter(checkTabAnnotation).sorted(fieldIndexComparator).sorted(tabIndexComparator)
142147
.forEach(field -> groupFieldsByTab(nodes, field, groupedFieldsByTab));
143148

144149
ArrayNodetabs = mapper.createArrayNode();
@@ -161,10 +166,10 @@ private ObjectNode handleTabbedFields(ObjectMapper mapper, Field[] declaredField
161166

162167
}
163168

164-
privateMap<Field, JsonNode> initFieldsFormDefinition(ObjectMappermapper, Field[]declaredFields) {
169+
privateMap<Field, JsonNode> initFieldsFormDefinition(ObjectMappermapper, Set<Field>declaredFields) {
165170
Map<Field, JsonNode> nodes = newHashMap<>();
166171

167-
Arrays.stream(declaredFields).forEach(field -> buildFormDefinition(nodes, mapper, field));
172+
declaredFields.forEach(field -> buildFormDefinition(nodes, mapper, field));
168173

169174
returnnodes;
170175
}

0 commit comments

Comments
 (0)
close