private static Positions parsePositions(JsonReader in) throws IOException { Positions parsed = null; if (in.peek() != JsonToken.BEGIN_ARRAY) { throw new IllegalArgumentException("The given json is not a valid positions"); } in.beginArray(); if (in.peek() == JsonToken.NUMBER) { parsed = parseSinglePosition(in); } else if (in.peek() == JsonToken.BEGIN_ARRAY) { AbstractPositions.PositionsBuilder builder = null; while (in.hasNext()) { Positions p = parsePositions(in); if(builder == null) { builder = AbstractPositions.PositionsBuilder.builderOf(p); } builder.addChild(p); } if(builder != null) { parsed = builder.build(); } } in.endArray(); return parsed; }
private static Positions parsePositions(JsonReader in) throws IOException { Positions parsed = null; if (in.peek() != JsonToken.BEGIN_ARRAY) { throw new IllegalArgumentException("The given json is not a valid positions"); } in.beginArray(); if (in.peek() == JsonToken.NUMBER) { parsed = parseSinglePosition(in); } else if (in.peek() == JsonToken.BEGIN_ARRAY) { AbstractPositions.PositionsBuilder builder = null; while (in.hasNext()) { Positions p = parsePositions(in); if(builder == null) { builder = AbstractPositions.PositionsBuilder.builderOf(p); } builder.addChild(p); } if(builder != null) { parsed = builder.build(); } } in.endArray(); return parsed; }
@Override public PositionsBuilder addChild(Positions p) { if(p instanceof SinglePosition) { return addSinglePosition((SinglePosition) p); } else if (p instanceof LinearPositions) { return AreaPositions.builder().addChild(this.build()).addChild(p); } else { throw new IllegalArgumentException("The position " + p + "cannot be a child of LinearPositions"); } }
@Override public PositionsBuilder addChild(Positions p) { if(p instanceof SinglePosition) { return addSinglePosition((SinglePosition) p); } else if (p instanceof LinearPositions) { return AreaPositions.builder().addChild(this.build()).addChild(p); } else { throw new IllegalArgumentException("The position " + p + "cannot be a child of LinearPositions"); } }