@Override public LinearPositions build() { Boolean isClosed = size >= 4 && first.equals(last); return new LinearPositions(singlePositions, isClosed); }
@Override public PositionsBuilder addChild(Positions p) { if(p instanceof LinearPositions) { return addLinearPosition((LinearPositions)p); } else if (p instanceof SinglePosition) { return addLinearPosition(LinearPositions.builder().addSinglePosition((SinglePosition) p).build()); } else if (p instanceof AreaPositions) { return MultiDimensionalPositions.builder().addAreaPosition(this.build()).addChild(p); } else { throw new IllegalArgumentException("The position " + p + "cannot be a child of AreaPosition"); } }
public static MultiDimensionalPositions.Builder builder(MultiDimensionalPositions positions) { return builder().addAreaPositions(positions.children); }
@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 MultiDimensionalPositions.Builder addChild(Positions p) { if(p instanceof AreaPositions) { return addAreaPosition((AreaPositions) p); } else if (p instanceof LinearPositions) { return addAreaPosition(AreaPositions.builder().addLinearPosition((LinearPositions) p).build()); } else { throw new IllegalArgumentException("The position " + p + "cannot be a child of MultiDimensionalPositions"); } }
static PositionsBuilder builderOf(Positions p) { if(p instanceof SinglePosition) { return LinearPositions.builder(); } else if (p instanceof LinearPositions) { return AreaPositions.builder(); } else if (p instanceof AreaPositions) { return MultiDimensionalPositions.builder(); } else { throw new IllegalArgumentException("No builder can be supplied for Positions " + p); } }
public static LinearPositions.Builder builder(LinearPositions positions) { return builder().addSinglePositions(positions.children); }
public static AreaPositions.Builder builder(AreaPositions positions) { return builder().addLinearPositions(positions.children); }
@Override public Positions positions() { Positions positions = new SinglePosition(Double.NaN, Double.NaN, Double.NaN); for (Geometry<?> geometry : this.geometries) { positions.merge(geometry.positions()); } return positions; }
/** * Returns the underlying {@link Positions} size. * * @return int */ @Override public int size() { return positions.size(); }
@Override public PositionsBuilder addChild(Positions p) { if(p instanceof LinearPositions) { return addLinearPosition((LinearPositions)p); } else if (p instanceof SinglePosition) { return addLinearPosition(LinearPositions.builder().addSinglePosition((SinglePosition) p).build()); } else if (p instanceof AreaPositions) { return MultiDimensionalPositions.builder().addAreaPosition(this.build()).addChild(p); } else { throw new IllegalArgumentException("The position " + p + "cannot be a child of AreaPosition"); } }
@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 MultiDimensionalPositions.Builder addChild(Positions p) { if(p instanceof AreaPositions) { return addAreaPosition((AreaPositions) p); } else if (p instanceof LinearPositions) { return addAreaPosition(AreaPositions.builder().addLinearPosition((LinearPositions) p).build()); } else { throw new IllegalArgumentException("The position " + p + "cannot be a child of MultiDimensionalPositions"); } }
static PositionsBuilder builderOf(Positions p) { if(p instanceof SinglePosition) { return LinearPositions.builder(); } else if (p instanceof LinearPositions) { return AreaPositions.builder(); } else if (p instanceof AreaPositions) { return MultiDimensionalPositions.builder(); } else { throw new IllegalArgumentException("No builder can be supplied for Positions " + p); } }
@Override public LinearPositions build() { Boolean isClosed = size >= 4 && first.equals(last); return new LinearPositions(singlePositions, isClosed); }
public static MultiDimensionalPositions.Builder builder(MultiDimensionalPositions positions) { return builder().addAreaPositions(positions.children); }
public static LinearPositions.Builder builder(LinearPositions positions) { return builder().addSinglePositions(positions.children); }
public static AreaPositions.Builder builder(AreaPositions positions) { return builder().addLinearPositions(positions.children); }
@Override public Positions positions() { Positions positions = new SinglePosition(Double.NaN, Double.NaN, Double.NaN); for (Geometry<?> geometry : this.geometries) { positions.merge(geometry.positions()); } return positions; }
/** * Returns the underlying {@link Positions} size. * * @return int */ @Override public int size() { return positions.size(); }