public boolean equals(
     ObjectLocator thisLocator,
     ObjectLocator thatLocator,
     Object object,
     EqualsStrategy strategy) {
   if (!(object instanceof ZustandAngaben)) {
     return false;
   }
   if (this == object) {
     return true;
   }
   final ZustandAngaben that = ((ZustandAngaben) object);
   {
     String lhsBaujahr;
     lhsBaujahr = this.getBaujahr();
     String rhsBaujahr;
     rhsBaujahr = that.getBaujahr();
     if (!strategy.equals(
         LocatorUtils.property(thisLocator, "baujahr", lhsBaujahr),
         LocatorUtils.property(thatLocator, "baujahr", rhsBaujahr),
         lhsBaujahr,
         rhsBaujahr)) {
       return false;
     }
   }
   {
     Zustand lhsZustand;
     lhsZustand = this.getZustand();
     Zustand rhsZustand;
     rhsZustand = that.getZustand();
     if (!strategy.equals(
         LocatorUtils.property(thisLocator, "zustand", lhsZustand),
         LocatorUtils.property(thatLocator, "zustand", rhsZustand),
         lhsZustand,
         rhsZustand)) {
       return false;
     }
   }
   {
     Alter lhsAlter;
     lhsAlter = this.getAlter();
     Alter rhsAlter;
     rhsAlter = that.getAlter();
     if (!strategy.equals(
         LocatorUtils.property(thisLocator, "alter", lhsAlter),
         LocatorUtils.property(thatLocator, "alter", rhsAlter),
         lhsAlter,
         rhsAlter)) {
       return false;
     }
   }
   {
     BebaubarNach lhsBebaubarNach;
     lhsBebaubarNach = this.getBebaubarNach();
     BebaubarNach rhsBebaubarNach;
     rhsBebaubarNach = that.getBebaubarNach();
     if (!strategy.equals(
         LocatorUtils.property(thisLocator, "bebaubarNach", lhsBebaubarNach),
         LocatorUtils.property(thatLocator, "bebaubarNach", rhsBebaubarNach),
         lhsBebaubarNach,
         rhsBebaubarNach)) {
       return false;
     }
   }
   {
     Erschliessung lhsErschliessung;
     lhsErschliessung = this.getErschliessung();
     Erschliessung rhsErschliessung;
     rhsErschliessung = that.getErschliessung();
     if (!strategy.equals(
         LocatorUtils.property(thisLocator, "erschliessung", lhsErschliessung),
         LocatorUtils.property(thatLocator, "erschliessung", rhsErschliessung),
         lhsErschliessung,
         rhsErschliessung)) {
       return false;
     }
   }
   {
     String lhsAltlasten;
     lhsAltlasten = this.getAltlasten();
     String rhsAltlasten;
     rhsAltlasten = that.getAltlasten();
     if (!strategy.equals(
         LocatorUtils.property(thisLocator, "altlasten", lhsAltlasten),
         LocatorUtils.property(thatLocator, "altlasten", rhsAltlasten),
         lhsAltlasten,
         rhsAltlasten)) {
       return false;
     }
   }
   {
     List<UserDefinedSimplefield> lhsUserDefinedSimplefield;
     lhsUserDefinedSimplefield =
         (((this.userDefinedSimplefield != null) && (!this.userDefinedSimplefield.isEmpty()))
             ? this.getUserDefinedSimplefield()
             : null);
     List<UserDefinedSimplefield> rhsUserDefinedSimplefield;
     rhsUserDefinedSimplefield =
         (((that.userDefinedSimplefield != null) && (!that.userDefinedSimplefield.isEmpty()))
             ? that.getUserDefinedSimplefield()
             : null);
     if (!strategy.equals(
         LocatorUtils.property(thisLocator, "userDefinedSimplefield", lhsUserDefinedSimplefield),
         LocatorUtils.property(thatLocator, "userDefinedSimplefield", rhsUserDefinedSimplefield),
         lhsUserDefinedSimplefield,
         rhsUserDefinedSimplefield)) {
       return false;
     }
   }
   {
     List<UserDefinedAnyfield> lhsUserDefinedAnyfield;
     lhsUserDefinedAnyfield =
         (((this.userDefinedAnyfield != null) && (!this.userDefinedAnyfield.isEmpty()))
             ? this.getUserDefinedAnyfield()
             : null);
     List<UserDefinedAnyfield> rhsUserDefinedAnyfield;
     rhsUserDefinedAnyfield =
         (((that.userDefinedAnyfield != null) && (!that.userDefinedAnyfield.isEmpty()))
             ? that.getUserDefinedAnyfield()
             : null);
     if (!strategy.equals(
         LocatorUtils.property(thisLocator, "userDefinedAnyfield", lhsUserDefinedAnyfield),
         LocatorUtils.property(thatLocator, "userDefinedAnyfield", rhsUserDefinedAnyfield),
         lhsUserDefinedAnyfield,
         rhsUserDefinedAnyfield)) {
       return false;
     }
   }
   return true;
 }
 public Object copyTo(ObjectLocator locator, Object target, CopyStrategy strategy) {
   final Object draftCopy = ((target == null) ? createNewInstance() : target);
   if (draftCopy instanceof ZustandAngaben) {
     final ZustandAngaben copy = ((ZustandAngaben) draftCopy);
     if (this.baujahr != null) {
       String sourceBaujahr;
       sourceBaujahr = this.getBaujahr();
       String copyBaujahr =
           ((String)
               strategy.copy(
                   LocatorUtils.property(locator, "baujahr", sourceBaujahr), sourceBaujahr));
       copy.setBaujahr(copyBaujahr);
     } else {
       copy.baujahr = null;
     }
     if (this.zustand != null) {
       Zustand sourceZustand;
       sourceZustand = this.getZustand();
       Zustand copyZustand =
           ((Zustand)
               strategy.copy(
                   LocatorUtils.property(locator, "zustand", sourceZustand), sourceZustand));
       copy.setZustand(copyZustand);
     } else {
       copy.zustand = null;
     }
     if (this.alter != null) {
       Alter sourceAlter;
       sourceAlter = this.getAlter();
       Alter copyAlter =
           ((Alter)
               strategy.copy(LocatorUtils.property(locator, "alter", sourceAlter), sourceAlter));
       copy.setAlter(copyAlter);
     } else {
       copy.alter = null;
     }
     if (this.bebaubarNach != null) {
       BebaubarNach sourceBebaubarNach;
       sourceBebaubarNach = this.getBebaubarNach();
       BebaubarNach copyBebaubarNach =
           ((BebaubarNach)
               strategy.copy(
                   LocatorUtils.property(locator, "bebaubarNach", sourceBebaubarNach),
                   sourceBebaubarNach));
       copy.setBebaubarNach(copyBebaubarNach);
     } else {
       copy.bebaubarNach = null;
     }
     if (this.erschliessung != null) {
       Erschliessung sourceErschliessung;
       sourceErschliessung = this.getErschliessung();
       Erschliessung copyErschliessung =
           ((Erschliessung)
               strategy.copy(
                   LocatorUtils.property(locator, "erschliessung", sourceErschliessung),
                   sourceErschliessung));
       copy.setErschliessung(copyErschliessung);
     } else {
       copy.erschliessung = null;
     }
     if (this.altlasten != null) {
       String sourceAltlasten;
       sourceAltlasten = this.getAltlasten();
       String copyAltlasten =
           ((String)
               strategy.copy(
                   LocatorUtils.property(locator, "altlasten", sourceAltlasten), sourceAltlasten));
       copy.setAltlasten(copyAltlasten);
     } else {
       copy.altlasten = null;
     }
     if ((this.userDefinedSimplefield != null) && (!this.userDefinedSimplefield.isEmpty())) {
       List<UserDefinedSimplefield> sourceUserDefinedSimplefield;
       sourceUserDefinedSimplefield =
           (((this.userDefinedSimplefield != null) && (!this.userDefinedSimplefield.isEmpty()))
               ? this.getUserDefinedSimplefield()
               : null);
       @SuppressWarnings("unchecked")
       List<UserDefinedSimplefield> copyUserDefinedSimplefield =
           ((List<UserDefinedSimplefield>)
               strategy.copy(
                   LocatorUtils.property(
                       locator, "userDefinedSimplefield", sourceUserDefinedSimplefield),
                   sourceUserDefinedSimplefield));
       copy.userDefinedSimplefield = null;
       if (copyUserDefinedSimplefield != null) {
         List<UserDefinedSimplefield> uniqueUserDefinedSimplefieldl =
             copy.getUserDefinedSimplefield();
         uniqueUserDefinedSimplefieldl.addAll(copyUserDefinedSimplefield);
       }
     } else {
       copy.userDefinedSimplefield = null;
     }
     if ((this.userDefinedAnyfield != null) && (!this.userDefinedAnyfield.isEmpty())) {
       List<UserDefinedAnyfield> sourceUserDefinedAnyfield;
       sourceUserDefinedAnyfield =
           (((this.userDefinedAnyfield != null) && (!this.userDefinedAnyfield.isEmpty()))
               ? this.getUserDefinedAnyfield()
               : null);
       @SuppressWarnings("unchecked")
       List<UserDefinedAnyfield> copyUserDefinedAnyfield =
           ((List<UserDefinedAnyfield>)
               strategy.copy(
                   LocatorUtils.property(
                       locator, "userDefinedAnyfield", sourceUserDefinedAnyfield),
                   sourceUserDefinedAnyfield));
       copy.userDefinedAnyfield = null;
       if (copyUserDefinedAnyfield != null) {
         List<UserDefinedAnyfield> uniqueUserDefinedAnyfieldl = copy.getUserDefinedAnyfield();
         uniqueUserDefinedAnyfieldl.addAll(copyUserDefinedAnyfield);
       }
     } else {
       copy.userDefinedAnyfield = null;
     }
   }
   return draftCopy;
 }