public void mergeFrom(
     ObjectLocator leftLocator,
     ObjectLocator rightLocator,
     Object left,
     Object right,
     MergeStrategy strategy) {
   super.mergeFrom(leftLocator, rightLocator, left, right, strategy);
   if (right instanceof DynamicFeatureMemberType) {
     final DynamicFeatureMemberType target = this;
     final DynamicFeatureMemberType leftObject = ((DynamicFeatureMemberType) left);
     final DynamicFeatureMemberType rightObject = ((DynamicFeatureMemberType) right);
     {
       List<JAXBElement<? extends DynamicFeatureType>> lhsDynamicFeature;
       lhsDynamicFeature = leftObject.getDynamicFeature();
       List<JAXBElement<? extends DynamicFeatureType>> rhsDynamicFeature;
       rhsDynamicFeature = rightObject.getDynamicFeature();
       target.unsetDynamicFeature();
       List<JAXBElement<? extends DynamicFeatureType>> uniqueDynamicFeaturel =
           target.getDynamicFeature();
       uniqueDynamicFeaturel.addAll(
           ((List<JAXBElement<? extends DynamicFeatureType>>)
               strategy.merge(
                   LocatorUtils.property(leftLocator, "dynamicFeature", lhsDynamicFeature),
                   LocatorUtils.property(rightLocator, "dynamicFeature", rhsDynamicFeature),
                   lhsDynamicFeature,
                   rhsDynamicFeature)));
     }
     {
       List<String> lhsNilReason;
       lhsNilReason = leftObject.getNilReason();
       List<String> rhsNilReason;
       rhsNilReason = rightObject.getNilReason();
       target.unsetNilReason();
       List<String> uniqueNilReasonl = target.getNilReason();
       uniqueNilReasonl.addAll(
           ((List<String>)
               strategy.merge(
                   LocatorUtils.property(leftLocator, "nilReason", lhsNilReason),
                   LocatorUtils.property(rightLocator, "nilReason", rhsNilReason),
                   lhsNilReason,
                   rhsNilReason)));
     }
     {
       String lhsRemoteSchema;
       lhsRemoteSchema = leftObject.getRemoteSchema();
       String rhsRemoteSchema;
       rhsRemoteSchema = rightObject.getRemoteSchema();
       target.setRemoteSchema(
           ((String)
               strategy.merge(
                   LocatorUtils.property(leftLocator, "remoteSchema", lhsRemoteSchema),
                   LocatorUtils.property(rightLocator, "remoteSchema", rhsRemoteSchema),
                   lhsRemoteSchema,
                   rhsRemoteSchema)));
     }
     {
       String lhsHref;
       lhsHref = leftObject.getHref();
       String rhsHref;
       rhsHref = rightObject.getHref();
       target.setHref(
           ((String)
               strategy.merge(
                   LocatorUtils.property(leftLocator, "href", lhsHref),
                   LocatorUtils.property(rightLocator, "href", rhsHref),
                   lhsHref,
                   rhsHref)));
     }
     {
       String lhsRole;
       lhsRole = leftObject.getRole();
       String rhsRole;
       rhsRole = rightObject.getRole();
       target.setRole(
           ((String)
               strategy.merge(
                   LocatorUtils.property(leftLocator, "role", lhsRole),
                   LocatorUtils.property(rightLocator, "role", rhsRole),
                   lhsRole,
                   rhsRole)));
     }
     {
       String lhsArcrole;
       lhsArcrole = leftObject.getArcrole();
       String rhsArcrole;
       rhsArcrole = rightObject.getArcrole();
       target.setArcrole(
           ((String)
               strategy.merge(
                   LocatorUtils.property(leftLocator, "arcrole", lhsArcrole),
                   LocatorUtils.property(rightLocator, "arcrole", rhsArcrole),
                   lhsArcrole,
                   rhsArcrole)));
     }
     {
       String lhsTitle;
       lhsTitle = leftObject.getTitle();
       String rhsTitle;
       rhsTitle = rightObject.getTitle();
       target.setTitle(
           ((String)
               strategy.merge(
                   LocatorUtils.property(leftLocator, "title", lhsTitle),
                   LocatorUtils.property(rightLocator, "title", rhsTitle),
                   lhsTitle,
                   rhsTitle)));
     }
     {
       String lhsShow;
       lhsShow = leftObject.getShow();
       String rhsShow;
       rhsShow = rightObject.getShow();
       target.setShow(
           ((String)
               strategy.merge(
                   LocatorUtils.property(leftLocator, "show", lhsShow),
                   LocatorUtils.property(rightLocator, "show", rhsShow),
                   lhsShow,
                   rhsShow)));
     }
     {
       String lhsActuate;
       lhsActuate = leftObject.getActuate();
       String rhsActuate;
       rhsActuate = rightObject.getActuate();
       target.setActuate(
           ((String)
               strategy.merge(
                   LocatorUtils.property(leftLocator, "actuate", lhsActuate),
                   LocatorUtils.property(rightLocator, "actuate", rhsActuate),
                   lhsActuate,
                   rhsActuate)));
     }
   }
 }
 public Object copyTo(ObjectLocator locator, Object target, CopyStrategy strategy) {
   final Object draftCopy = ((target == null) ? createNewInstance() : target);
   super.copyTo(locator, draftCopy, strategy);
   if (draftCopy instanceof DynamicFeatureMemberType) {
     final DynamicFeatureMemberType copy = ((DynamicFeatureMemberType) draftCopy);
     if (this.isSetDynamicFeature()) {
       List<JAXBElement<? extends DynamicFeatureType>> sourceDynamicFeature;
       sourceDynamicFeature = this.getDynamicFeature();
       @SuppressWarnings("unchecked")
       List<JAXBElement<? extends DynamicFeatureType>> copyDynamicFeature =
           ((List<JAXBElement<? extends DynamicFeatureType>>)
               strategy.copy(
                   LocatorUtils.property(locator, "dynamicFeature", sourceDynamicFeature),
                   sourceDynamicFeature));
       copy.unsetDynamicFeature();
       List<JAXBElement<? extends DynamicFeatureType>> uniqueDynamicFeaturel =
           copy.getDynamicFeature();
       uniqueDynamicFeaturel.addAll(copyDynamicFeature);
     } else {
       copy.unsetDynamicFeature();
     }
     if (this.isSetNilReason()) {
       List<String> sourceNilReason;
       sourceNilReason = this.getNilReason();
       @SuppressWarnings("unchecked")
       List<String> copyNilReason =
           ((List<String>)
               strategy.copy(
                   LocatorUtils.property(locator, "nilReason", sourceNilReason), sourceNilReason));
       copy.unsetNilReason();
       List<String> uniqueNilReasonl = copy.getNilReason();
       uniqueNilReasonl.addAll(copyNilReason);
     } else {
       copy.unsetNilReason();
     }
     if (this.isSetRemoteSchema()) {
       String sourceRemoteSchema;
       sourceRemoteSchema = this.getRemoteSchema();
       String copyRemoteSchema =
           ((String)
               strategy.copy(
                   LocatorUtils.property(locator, "remoteSchema", sourceRemoteSchema),
                   sourceRemoteSchema));
       copy.setRemoteSchema(copyRemoteSchema);
     } else {
       copy.remoteSchema = null;
     }
     if (this.isSetHref()) {
       String sourceHref;
       sourceHref = this.getHref();
       String copyHref =
           ((String)
               strategy.copy(LocatorUtils.property(locator, "href", sourceHref), sourceHref));
       copy.setHref(copyHref);
     } else {
       copy.href = null;
     }
     if (this.isSetRole()) {
       String sourceRole;
       sourceRole = this.getRole();
       String copyRole =
           ((String)
               strategy.copy(LocatorUtils.property(locator, "role", sourceRole), sourceRole));
       copy.setRole(copyRole);
     } else {
       copy.role = null;
     }
     if (this.isSetArcrole()) {
       String sourceArcrole;
       sourceArcrole = this.getArcrole();
       String copyArcrole =
           ((String)
               strategy.copy(
                   LocatorUtils.property(locator, "arcrole", sourceArcrole), sourceArcrole));
       copy.setArcrole(copyArcrole);
     } else {
       copy.arcrole = null;
     }
     if (this.isSetTitle()) {
       String sourceTitle;
       sourceTitle = this.getTitle();
       String copyTitle =
           ((String)
               strategy.copy(LocatorUtils.property(locator, "title", sourceTitle), sourceTitle));
       copy.setTitle(copyTitle);
     } else {
       copy.title = null;
     }
     if (this.isSetShow()) {
       String sourceShow;
       sourceShow = this.getShow();
       String copyShow =
           ((String)
               strategy.copy(LocatorUtils.property(locator, "show", sourceShow), sourceShow));
       copy.setShow(copyShow);
     } else {
       copy.show = null;
     }
     if (this.isSetActuate()) {
       String sourceActuate;
       sourceActuate = this.getActuate();
       String copyActuate =
           ((String)
               strategy.copy(
                   LocatorUtils.property(locator, "actuate", sourceActuate), sourceActuate));
       copy.setActuate(copyActuate);
     } else {
       copy.actuate = null;
     }
   }
   return draftCopy;
 }