Skip to content

Commit b55de27

Browse files
author
Anton Bashirov
authored
Merge branch 'latest' into fix/fix-config-with-dot
2 parents 74e5ced + 6828489 commit b55de27

File tree

3 files changed

+19
-3
lines changed

3 files changed

+19
-3
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ art {
4747
For bugs, questions and discussions please use the [Github Issues](https://github.com/art-community/art/issues).
4848

4949
Join us on Telegram: https://t.me/art_github
50+
Join us on Discord: https://discord.gg/jaqxB38
5051

5152
## Documentation
5253

application-entity/src/main/java/ru/art/entity/Entity.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -795,12 +795,17 @@ public EntityBuilder valueCollectionField(String name, Collection<Value> value)
795795
return this;
796796
}
797797

798+
public EntityBuilder collectionValueField(String name, CollectionValue<?> value) {
799+
fields.put(name, value);
800+
return this;
801+
}
802+
798803
public EntityBuilder stringParametersCollectionField(String name, Collection<StringParametersMap> value) {
799804
fields.put(name, collectionValue(CollectionElementsType.STRING_PARAMETERS_MAP, value));
800805
return this;
801806
}
802807

803-
public EntityBuilder collectionValueCollectionField(String name, Collection<CollectionValue<?>> value) {
808+
public EntityBuilder collectionValueCollectionField(String name, Collection<CollectionValue<Entity>> value) {
804809
fields.put(name, collectionValue(CollectionElementsType.COLLECTION, value));
805810
return this;
806811
}

application-json/src/main/java/ru/art/json/descriptor/JsonEntityReader.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ private static void parseArray(EntityBuilder entityBuilder, JsonParser parser) t
154154
entityBuilder.entityCollectionField(currentName, parseEntityArray(parser));
155155
return;
156156
case START_ARRAY:
157-
parseArray(entityBuilder, parser);
157+
entityBuilder.collectionValueCollectionField(currentName, parseArraysArray(parser));
158158
return;
159159
case VALUE_STRING:
160160
entityBuilder.stringCollectionField(currentName, parseStringArray(parser));
@@ -187,7 +187,7 @@ private static CollectionValue<?> parseArray(JsonParser parser) throws IOExcepti
187187
case START_OBJECT:
188188
return entityCollection(parseEntityArray(parser));
189189
case START_ARRAY:
190-
return parseArray(parser);
190+
return collectionOfCollections(parseArraysArray(parser));
191191
case VALUE_STRING:
192192
return stringCollection(parseStringArray(parser));
193193
case VALUE_NUMBER_INT:
@@ -267,4 +267,14 @@ private static Collection<Entity> parseEntityArray(JsonParser parser) throws IOE
267267
} while (!parser.isClosed() && currentToken != END_ARRAY);
268268
return array;
269269
}
270+
271+
private Collection<CollectionValue<Entity>> parseArraysArray(JsonParser parser) throws IOException {
272+
List<CollectionValue<Entity>> array = dynamicArrayOf();
273+
JsonToken currentToken = parser.currentToken();
274+
do {
275+
if (currentToken != START_ARRAY) array.add(entityCollection(parseEntityArray(parser)));
276+
currentToken = parser.nextToken();
277+
} while (!parser.isClosed() && currentToken != END_ARRAY);
278+
return array;
279+
}
270280
}

0 commit comments

Comments
 (0)