/** * Returns true if object is equals to * <code>this</code>. Tests equality between the length of the sequences and * then the equality of each CoordinateOperation. * * @param o The object to compare this CoordinateOperationSequence * against */ @Override public boolean equals(Object o) { if (this == o) { return true; } if (o instanceof CoordinateOperationSequence) { CoordinateOperationSequence cooordseq = (CoordinateOperationSequence) o; if (getSequence().length == cooordseq.getSequence().length) { for (int i = 0; i < getSequence().length; i++) { if (!getSequence()[i].equals(cooordseq.getSequence()[i])) { return false; } } return true; } } return false; }
/** * Returns {@link org.cts.op.CoordinateOperation}s including operations of a particular type. */ public static Set<CoordinateOperation> includeFilter(Collection<? extends CoordinateOperation> ops, Class clazz) { Set<CoordinateOperation> list = new HashSet<CoordinateOperation>(); for (CoordinateOperation op : ops) { if (clazz.isAssignableFrom(op.getClass())) list.add(op); else if (op instanceof CoordinateOperationSequence) { boolean includeOp = false; for (CoordinateOperation subOp : ((CoordinateOperationSequence)op).getSequence()) { if (clazz.isAssignableFrom(subOp.getClass())) { includeOp = true; break; } } if (includeOp) list.add(op); } } return list; }
/** * Returns {@link org.cts.op.CoordinateOperation}s excluding sequence containing a particular operation type. * @param ops * @param clazz * @return */ public static Set<CoordinateOperation> excludeFilter(Collection<? extends CoordinateOperation> ops, Class clazz) { Set<CoordinateOperation> list = new HashSet<CoordinateOperation>(); for (CoordinateOperation op : ops) { if (clazz.isAssignableFrom(op.getClass())) continue; if (op instanceof CoordinateOperationSequence) { boolean excludedOp = false; for (CoordinateOperation subOp : ((CoordinateOperationSequence)op).getSequence()) { if (clazz.isAssignableFrom(subOp.getClass())) { excludedOp = true; break; } } if (!excludedOp) list.add(op); } } return list; }
result.add(op); } else if (op instanceof CoordinateOperationSequence) { result = fusionSequences(result, Arrays.asList(((CoordinateOperationSequence) op).getSequence()));