public Object copyTo(ObjectLocator locator, Object target, CopyStrategy strategy) { final Object draftCopy = ((target == null) ? createNewInstance() : target); super.copyTo(locator, draftCopy, strategy); if (draftCopy instanceof RectangleType) { final RectangleType copy = ((RectangleType) draftCopy); if (this.isSetExterior()) { AbstractRingPropertyType sourceExterior; sourceExterior = this.getExterior(); AbstractRingPropertyType copyExterior = ((AbstractRingPropertyType) strategy.copy( LocatorUtils.property(locator, "exterior", sourceExterior), sourceExterior)); copy.setExterior(copyExterior); } else { copy.exterior = null; } } return draftCopy; }