/** * Generates a new Descriptor Object sharing none of the references of the original but containing * identical data. * * @return new Descriptor initialized with this Descriptor's data */ public Object clone() { DescAggregate temp; try { temp = new DescAggregate(getCategory()); } catch (BadDataException bdx) { throw new IllegalStateException(bdx.getMessage()); } temp.setName(getName()); temp.attributes = new Attribute[attributes.length]; for (int i = 0; i < attributes.length; i++) temp.attributes[i] = (Attribute) attributes[i].clone(); temp.idList = (TreeSet) idList.clone(); temp.span = (span == null) ? null : (FrameSpan) span.clone(); return temp; }
/** @inheritDoc */ public Descriptor crop(FrameSpan span) { span.intersectWith(this.span); DescAggregate copy; try { copy = new DescAggregate(getCategory()); } catch (BadDataException bdx) { throw new IllegalStateException(bdx.getMessage()); } copy.setName(getName()); copy.attributes = new Attribute[attributes.length]; for (int i = 0; i < attributes.length; i++) { copy.attributes[i] = attributes[i].crop(span, this.span); } copy.idList = (TreeSet) idList.clone(); copy.span = span; return copy; }