@@ -26,7 +26,7 @@ public class ArrayValue implements ValueNode {
2626
2727 private final String name ;
2828
29- private final List <ValueNode > value = new ArrayList <>(5 );
29+ private final List <ValueNode > list = new ArrayList <>(5 );
3030
3131 public ArrayValue (Context ctx , String name ) {
3232 this .ctx = ctx ;
@@ -38,7 +38,7 @@ public ArrayValue(Context ctx, String name) {
3838 }
3939
4040 public ArrayValue add (ValueNode value ) {
41- this .value .add (value );
41+ this .list .add (value );
4242 return this ;
4343 }
4444
@@ -55,7 +55,7 @@ public ArrayValue add(String value) {
5555
5656 @ Override public ValueNode get (@ Nonnull int index ) {
5757 try {
58- return value .get (index );
58+ return list .get (index );
5959 } catch (IndexOutOfBoundsException x ) {
6060 return new MissingValue (name + "[" + index + "]" );
6161 }
@@ -66,33 +66,28 @@ public ArrayValue add(String value) {
6666 }
6767
6868 @ Override public int size () {
69- return value .size ();
69+ return list .size ();
7070 }
7171
7272 @ Override public String value () {
7373 String name = name ();
74-
7574 throw new TypeMismatchException (name == null ? getClass ().getSimpleName () : name , String .class );
7675 }
7776
7877 @ Override public String toString () {
79- return value .toString ();
78+ return list .toString ();
8079 }
8180
8281 @ Override public Iterator <ValueNode > iterator () {
83- return value .iterator ();
82+ return list .iterator ();
8483 }
8584
8685 @ Nonnull @ Override public <T > T to (@ Nonnull Class <T > type ) {
87- return ctx .convert (value .get (0 ), type );
86+ return ctx .convert (list .get (0 ), type );
8887 }
8988
9089 @ Nonnull @ Override public <T > List <T > toList (@ Nonnull Class <T > type ) {
91- List <T > list = new ArrayList <>(value .size ());
92- for (ValueNode it : value ) {
93- list .add (it .to (type ));
94- }
95- return list ;
90+ return collect (new ArrayList <>(this .list .size ()), type );
9691 }
9792
9893 @ Nonnull @ Override public <T > Optional <T > toOptional (@ Nonnull Class <T > type ) {
@@ -104,29 +99,27 @@ public ArrayValue add(String value) {
10499 }
105100
106101 @ Nonnull @ Override public <T > Set <T > toSet (@ Nonnull Class <T > type ) {
107- Set <T > list = new LinkedHashSet <>(value .size ());
108- for (ValueNode it : value ) {
109- list .add (it .to (type ));
110- }
111- return list ;
102+ return collect (new LinkedHashSet <>(this .list .size ()), type );
112103 }
113104
114105 @ Override public Map <String , List <String >> toMultimap () {
115106 List <String > values = new ArrayList <>();
116- value .stream ().forEach (it -> it .toMultimap ().values ().forEach (values ::addAll ));
107+ list .stream ().forEach (it -> it .toMultimap ().values ().forEach (values ::addAll ));
117108 return Collections .singletonMap (name , values );
118109 }
119110
120111 @ Override public List <String > toList () {
121- return fill (new ArrayList <>());
112+ return collect (new ArrayList <>(), String . class );
122113 }
123114
124115 @ Override public Set <String > toSet () {
125- return fill (new LinkedHashSet <>());
116+ return collect (new LinkedHashSet <>(), String . class );
126117 }
127118
128- private <C extends Collection <String >> C fill (C values ) {
129- value .forEach (v -> values .addAll (v .toList ()));
130- return values ;
119+ private <T , C extends Collection <T >> C collect (C collection , Class <T > type ) {
120+ for (ValueNode node : list ) {
121+ collection .add (node .to (type ));
122+ }
123+ return collection ;
131124 }
132125}
0 commit comments