Skip to content

Commit d781aa5

Browse files
authored
Merge pull request #39 from Z7oussem/master
In order to support the loading of addons generators and decorators. fix sonar violation fix #40 assinged to @Z7oussem
2 parents 5aa723e + 093840b commit d781aa5

File tree

7 files changed

+48
-21
lines changed

7 files changed

+48
-21
lines changed

src/main/java/io/asfjava/ui/core/GeneratorFactoryLoader.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,30 @@
22

33
import static io.asfjava.ui.core.logging.ErrorCode.ASF01;
44

5+
import java.util.List;
6+
import java.util.stream.Collectors;
7+
import java.util.stream.Stream;
8+
59
import org.reflections.Reflections;
610

711
import io.asfjava.ui.core.generators.FormDefinitionGenerator;
812
import io.asfjava.ui.core.logging.ASFUILogger;
913

1014
final class GeneratorFactoryLoader {
11-
private static final String PACKAGESCAN = "io.asfjava.ui.core.generators";
15+
private static final List<String> PACKAGESCAN = Stream
16+
.of("io.asfjava.ui.core.generators", "io.asfjava.ui.addons.generators").collect(Collectors.toList());
1217
private static Reflections reflections = new Reflections(PACKAGESCAN);
1318

1419
void load() {
15-
reflections.getSubTypesOf(FormDefinitionGenerator.class).stream().forEach(subtype -> register(subtype));
20+
for (Class<? extends FormDefinitionGenerator> subType : reflections
21+
.getSubTypesOf(FormDefinitionGenerator.class)) {
22+
register(subType);
23+
}
1624
}
1725

18-
private void register(Class<? extends FormDefinitionGenerator> subtype) {
26+
private void register(Class<? extends FormDefinitionGenerator> subType) {
1927
try {
20-
FormDefinitionGenerator formDefinitionGenerator = subtype.newInstance();
28+
FormDefinitionGenerator formDefinitionGenerator = subType.newInstance();
2129
FormDefinitionGeneratorFactory.getInstance().register(formDefinitionGenerator::getAnnotation,
2230
formDefinitionGenerator);
2331
} catch (InstantiationException | IllegalAccessException e) {

src/main/java/io/asfjava/ui/core/SchemaDecoratorLoader.java

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,31 @@
22

33
import static io.asfjava.ui.core.logging.ErrorCode.ASF01;
44

5+
import java.util.List;
6+
import java.util.stream.Collectors;
7+
import java.util.stream.Stream;
8+
59
import org.reflections.Reflections;
610

711
import io.asfjava.ui.core.logging.ASFUILogger;
812
import io.asfjava.ui.core.schema.decorators.SchemaDecorator;
913

1014
final class SchemaDecoratorLoader {
1115

12-
private static final String PACKAGESCAN = "io.asfjava.ui.core.schema.decorators";
16+
private static final List<String> PACKAGESCAN = Stream
17+
.of("io.asfjava.ui.core.schema.decorators", "io.asfjava.ui.addons.schema.decorators")
18+
.collect(Collectors.toList());
1319
private static Reflections reflections = new Reflections(PACKAGESCAN);
1420

1521
void load() {
16-
reflections.getSubTypesOf(SchemaDecorator.class).stream().forEach(subtype -> register(subtype));
22+
for (Class<? extends SchemaDecorator> subType : reflections.getSubTypesOf(SchemaDecorator.class)) {
23+
register(subType);
24+
}
1725
}
1826

19-
private void register(Class<? extends SchemaDecorator> subtype) {
27+
private void register(Class<? extends SchemaDecorator> subType) {
2028
try {
21-
SchemaDecorator decorator = subtype.newInstance();
29+
SchemaDecorator decorator = subType.newInstance();
2230
SchemaDecoratorFactory.getInstance().register(decorator::getAnnotation, decorator);
2331
} catch (InstantiationException | IllegalAccessException e) {
2432
ASFUILogger.getLogger().error(ASF01, e);
@@ -30,12 +38,12 @@ void unload() {
3038
}
3139

3240
static SchemaDecoratorLoader getInstance() {
33-
if (INSTANCE == null)
34-
INSTANCE = new SchemaDecoratorLoader();
35-
return INSTANCE;
41+
if (instance == null)
42+
instance = new SchemaDecoratorLoader();
43+
return instance;
3644
}
3745

38-
private static SchemaDecoratorLoader INSTANCE;
46+
private static SchemaDecoratorLoader instance;
3947

4048
private SchemaDecoratorLoader() {
4149
}

src/main/java/io/asfjava/ui/core/generators/CheckBoxGenerator.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,18 @@ public void generate(ObjectNode fieldFormDefinition, Field field) {
4040
fieldFormDefinition.set("titleMap", titlesMap);
4141
} catch (InstantiationException | IllegalAccessException e) {
4242
ASFUILogger.getLogger().error(e.getMessage());
43+
throw new RuntimeException(e);
4344
}
4445
}
4546
}
4647

4748
private void buildValueDefinition(ObjectMapper checkBoxMapper, ArrayNode titlesMap, String value) {
4849
ObjectNode entry = checkBoxMapper.createObjectNode();
49-
if (value.equals(value.toUpperCase())) {
50+
String upperCasedValue = value.toUpperCase();
51+
String lowerCasedValue = value.toLowerCase();
52+
if (value.equals(upperCasedValue)) {
5053
entry.put("name", value.toLowerCase());
51-
} else if (value.equals(value.toLowerCase())) {
54+
} else if (value.equals(lowerCasedValue)) {
5255
entry.put("name", value.replace(value.substring(0, 1), value.substring(0, 1).toUpperCase()));
5356
} else {
5457
entry.put("name", value);

src/main/java/io/asfjava/ui/core/generators/ComboBoxGenerator.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,19 @@ public void generate(ObjectNode fieldFormDefinition, Field field) {
4444
fieldFormDefinition.set("titleMap", titlesMap);
4545
} catch (InstantiationException | IllegalAccessException e) {
4646
ASFUILogger.getLogger().error(e.getMessage());
47+
throw new RuntimeException(e);
4748
}
4849
}
4950

5051
}
5152

5253
private void buildValueDefinition(ObjectMapper comboMapper, ArrayNode titlesMap, String value) {
5354
ObjectNode entry = comboMapper.createObjectNode();
54-
if (value.equals(value.toUpperCase())) {
55+
String upperCasedValue = value.toUpperCase();
56+
String lowerCasedValue = value.toLowerCase();
57+
if (value.equals(upperCasedValue)) {
5558
entry.put("name", value.toLowerCase());
56-
} else if (value.equals(value.toLowerCase())) {
59+
} else if (value.equals(lowerCasedValue)) {
5760
entry.put("name", value.replace(value.substring(0, 1), value.substring(0, 1).toUpperCase()));
5861
} else {
5962
entry.put("name", value);

src/main/java/io/asfjava/ui/core/generators/RadioBoxGenerator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public void generate(ObjectNode fieldFormDefinition, Field field) {
2121
fieldFormDefinition.put("readOnly", annotation.readOnly());
2222
fieldFormDefinition.put("type", "radios");
2323

24-
JsonNode radioFieldFormDefinition = ((JsonNode) fieldFormDefinition);
24+
JsonNode radioFieldFormDefinition = fieldFormDefinition;
2525

2626
ObjectMapper radioMapper = new ObjectMapper();
2727

@@ -41,6 +41,7 @@ public void generate(ObjectNode fieldFormDefinition, Field field) {
4141
}
4242
} catch (InstantiationException | IllegalAccessException e) {
4343
ASFUILogger.getLogger().error(e.getMessage());
44+
throw new RuntimeException(e);
4445
}
4546

4647
((ObjectNode) radioFieldFormDefinition).set("titleMap", titlesMap);

src/main/java/io/asfjava/ui/core/logging/ASFUILogger.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,8 @@ public final class ASFUILogger {
99
public static Logger getLogger(){
1010
return LOGGER;
1111
}
12+
13+
private ASFUILogger() {
14+
}
15+
1216
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
public final class UiFormSchemaGenerator {
2828

29-
private static UiFormSchemaGenerator INSTANCE;
29+
private static UiFormSchemaGenerator instance;
3030

3131
public UiForm generate(Class<? extends Serializable> formDto) throws JsonMappingException {
3232
Field[] declaredFields = formDto.getDeclaredFields();
@@ -122,10 +122,10 @@ private void buildFieldDefinition(Field field, Annotation annotation, ObjectMapp
122122
}
123123

124124
public static UiFormSchemaGenerator get() {
125-
if (INSTANCE == null) {
126-
INSTANCE = new UiFormSchemaGenerator();
125+
if (instance == null) {
126+
instance = new UiFormSchemaGenerator();
127127
}
128-
return INSTANCE;
128+
return instance;
129129
}
130130

131131
private UiFormSchemaGenerator() {

0 commit comments

Comments
 (0)