Skip to content

Commit 2280a66

Browse files
committed
🎨 Use Java 8 Features
Use Supplier Use streams to iterate
1 parent 12696ab commit 2280a66

File tree

4 files changed

+29
-31
lines changed

4 files changed

+29
-31
lines changed

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.Map;
44
import java.util.Optional;
55
import java.util.concurrent.ConcurrentHashMap;
6+
import java.util.function.Supplier;
67

78
import io.asfjava.ui.core.generators.FormDefinitionGenerator;
89

@@ -12,8 +13,8 @@ public Optional<FormDefinitionGenerator> getGenerator(String annotationName) {
1213
return Optional.ofNullable(GENERATORS.get(annotationName));
1314
}
1415

15-
void register(String annotationName, FormDefinitionGenerator generator) {
16-
GENERATORS.put(annotationName, generator);
16+
void register(Supplier<String> annotationName, FormDefinitionGenerator generator) {
17+
GENERATORS.put(annotationName.get(), generator);
1718
}
1819

1920
public static FormDefinitionGeneratorFactory getInstance() {
Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,32 @@
11
package io.asfjava.ui.core;
22

3-
import java.util.Set;
3+
import static io.asfjava.ui.core.logging.ErrorCode.ASF01;
44

55
import org.reflections.Reflections;
66

77
import io.asfjava.ui.core.generators.FormDefinitionGenerator;
88
import io.asfjava.ui.core.logging.ASFUILogger;
9-
import static io.asfjava.ui.core.logging.ErrorCode.*;
109

1110
final class GeneratorFactoryLoader {
1211
private static final String PACKAGESCAN = "io.asfjava.ui.core.generators";
1312
private static Reflections reflections = new Reflections(PACKAGESCAN);
13+
1414
void load() {
15+
reflections.getSubTypesOf(FormDefinitionGenerator.class).stream().forEach(subtype -> register(subtype));
16+
}
1517

16-
Set<Class<? extends FormDefinitionGenerator>> subTypes = reflections
17-
.getSubTypesOf(FormDefinitionGenerator.class);
18-
for (Class<? extends FormDefinitionGenerator> subtype : subTypes) {
19-
FormDefinitionGenerator formDefinitionGenerator;
20-
try {
21-
formDefinitionGenerator = (FormDefinitionGenerator) Class.forName(subtype.getName()).newInstance();
22-
FormDefinitionGeneratorFactory.getInstance().register(formDefinitionGenerator.getAnnoation(),
23-
formDefinitionGenerator);
24-
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
25-
ASFUILogger.getLogger().error(ASF01, e);
26-
}
18+
private void register(Class<? extends FormDefinitionGenerator> subtype) {
19+
try {
20+
FormDefinitionGenerator formDefinitionGenerator = subtype.newInstance();
21+
FormDefinitionGeneratorFactory.getInstance().register(formDefinitionGenerator::getAnnotation,
22+
formDefinitionGenerator);
23+
} catch (InstantiationException | IllegalAccessException e) {
24+
ASFUILogger.getLogger().error(ASF01, e);
2725
}
2826
}
2927

3028
void unload() {
31-
System.out.println("I'm unloader");
29+
ASFUILogger.getLogger().info("I'm unloader");
3230
}
3331

3432
static GeneratorFactoryLoader getInstance() {
@@ -41,4 +39,5 @@ static GeneratorFactoryLoader getInstance() {
4139

4240
private GeneratorFactoryLoader() {
4341
}
42+
4443
}

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.Map;
44
import java.util.Optional;
55
import java.util.concurrent.ConcurrentHashMap;
6+
import java.util.function.Supplier;
67

78
import io.asfjava.ui.core.schema.decorators.SchemaDecorator;
89

@@ -11,8 +12,8 @@ public Optional<SchemaDecorator> getDecorator(String annotationName) {
1112
return Optional.ofNullable(decorators.get(annotationName));
1213
}
1314

14-
void register(String annotationName, SchemaDecorator generator) {
15-
decorators.put(annotationName, generator);
15+
void register(Supplier<String> annotationName, SchemaDecorator generator) {
16+
decorators.put(annotationName.get(), generator);
1617
}
1718

1819
public static SchemaDecoratorFactory getInstance() {

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

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package io.asfjava.ui.core;
22

3-
import static io.asfjava.ui.core.logging.ErrorCode.ASF02;
4-
5-
import java.util.Set;
3+
import static io.asfjava.ui.core.logging.ErrorCode.ASF01;
64

75
import org.reflections.Reflections;
86

@@ -15,21 +13,20 @@ final class SchemaDecoratorLoader {
1513
private static Reflections reflections = new Reflections(PACKAGESCAN);
1614

1715
void load() {
16+
reflections.getSubTypesOf(SchemaDecorator.class).stream().forEach(subtype -> register(subtype));
17+
}
1818

19-
Set<Class<? extends SchemaDecorator>> subTypes = reflections.getSubTypesOf(SchemaDecorator.class);
20-
for (Class<? extends SchemaDecorator> subtype : subTypes) {
21-
SchemaDecorator schemaDecorator;
22-
try {
23-
schemaDecorator = (SchemaDecorator) Class.forName(subtype.getName()).newInstance();
24-
SchemaDecoratorFactory.getInstance().register(schemaDecorator.getAnnotation(), schemaDecorator);
25-
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
26-
ASFUILogger.getLogger().error(ASF02, e);
27-
}
19+
private void register(Class<? extends SchemaDecorator> subtype) {
20+
try {
21+
SchemaDecorator decorator = subtype.newInstance();
22+
SchemaDecoratorFactory.getInstance().register(decorator::getAnnotation, decorator);
23+
} catch (InstantiationException | IllegalAccessException e) {
24+
ASFUILogger.getLogger().error(ASF01, e);
2825
}
2926
}
3027

3128
void unload() {
32-
System.out.println("I'm unloader");
29+
ASFUILogger.getLogger().info("I'm unloader");
3330
}
3431

3532
static SchemaDecoratorLoader getInstance() {

0 commit comments

Comments
 (0)