Skip to content

Commit d4e8378

Browse files
committed
Fixed singleton list
1 parent eec3ffd commit d4e8378

3 files changed

Lines changed: 20 additions & 9 deletions

File tree

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ plugins {
55
}
66

77
group 'ru.abstractmenus'
8-
version '1.0.3'
8+
version '1.0.4'
99

1010
repositories {
1111
mavenCentral()

src/main/java/ru/abstractmenus/hocon/api/SimpleConfigNode.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -122,15 +122,21 @@ public <T> T getValue(Class<T> type, T def) throws NodeSerializeException {
122122

123123
@Override
124124
public <T> List<T> getList(Class<T> type) throws NodeSerializeException {
125-
if (isList()) {
125+
if (!isNull()) {
126126
NodeSerializer<T> serializer = serializers.getSerializer(type);
127-
List<T> values = new LinkedList<>();
128127

129-
for (ConfigNode node : childrenList()) {
130-
values.add(serializer.deserialize(type, node));
128+
if (isList()) {
129+
List<T> values = new LinkedList<>();
130+
for (ConfigNode node : childrenList()) {
131+
values.add(serializer.deserialize(type, node));
132+
}
133+
return values;
131134
}
132135

133-
return values;
136+
T value = serializer.deserialize(type, this);
137+
138+
if (value != null)
139+
return Collections.singletonList(value);
134140
}
135141

136142
return Collections.emptyList();

src/test/java/TempTests.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,19 @@ public class TempTests {
1414
@Test
1515
public void test() throws Exception {
1616
ConfigSource source = ConfigSources.resource("test.conf", this);
17+
NodeSerializers serializers = NodeSerializers.defaults();
18+
NodeSerializers serializers1 = NodeSerializers.defaults();
19+
20+
serializers1.register(User.class, new UserSerializer());
21+
1722
ConfigurationLoader loader = ConfigurationLoader.builder()
1823
.source(source)
19-
.serializers(NodeSerializers.defaults()
20-
.register(User.class, new UserSerializer()))
24+
.serializers(serializers.merge(serializers1))
2125
.build();
2226
ConfigNode node = loader.load();
2327

2428
System.out.println(node.toString());
29+
System.out.println(node.node("str").getList(String.class));
2530
System.out.println(node.node("map", "param1").getString());
2631
System.out.println(node.node("map", "param15").getString());
2732
System.out.println(node.node("list").getList(String.class));
@@ -49,7 +54,7 @@ public String toString() {
4954
private class UserSerializer implements NodeSerializer<User> {
5055

5156
@Override
52-
public User deserialize(Class<?> type, ConfigNode node) throws NodeSerializeException {
57+
public User deserialize(Class<User> type, ConfigNode node) throws NodeSerializeException {
5358
User user = new User();
5459
user.name = node.node("name").getString();
5560
user.age = node.node("age").getInt();

0 commit comments

Comments
 (0)