public boolean equals(
     ObjectLocator thisLocator,
     ObjectLocator thatLocator,
     Object object,
     EqualsStrategy strategy) {
   if (!(object instanceof IndirectEntryType)) {
     return false;
   }
   if (this == object) {
     return true;
   }
   final IndirectEntryType that = ((IndirectEntryType) object);
   {
     DefinitionProxyType lhsDefinitionProxy;
     lhsDefinitionProxy = this.getDefinitionProxy();
     DefinitionProxyType rhsDefinitionProxy;
     rhsDefinitionProxy = that.getDefinitionProxy();
     if (!strategy.equals(
         LocatorUtils.property(thisLocator, "definitionProxy", lhsDefinitionProxy),
         LocatorUtils.property(thatLocator, "definitionProxy", rhsDefinitionProxy),
         lhsDefinitionProxy,
         rhsDefinitionProxy)) {
       return false;
     }
   }
   return true;
 }
 public Object copyTo(ObjectLocator locator, Object target, CopyStrategy strategy) {
   final Object draftCopy = ((target == null) ? createNewInstance() : target);
   if (draftCopy instanceof IndirectEntryType) {
     final IndirectEntryType copy = ((IndirectEntryType) draftCopy);
     if (this.isSetDefinitionProxy()) {
       DefinitionProxyType sourceDefinitionProxy;
       sourceDefinitionProxy = this.getDefinitionProxy();
       DefinitionProxyType copyDefinitionProxy =
           ((DefinitionProxyType)
               strategy.copy(
                   LocatorUtils.property(locator, "definitionProxy", sourceDefinitionProxy),
                   sourceDefinitionProxy));
       copy.setDefinitionProxy(copyDefinitionProxy);
     } else {
       copy.definitionProxy = null;
     }
   }
   return draftCopy;
 }
 public void mergeFrom(
     ObjectLocator leftLocator,
     ObjectLocator rightLocator,
     Object left,
     Object right,
     MergeStrategy strategy) {
   if (right instanceof IndirectEntryType) {
     final IndirectEntryType target = this;
     final IndirectEntryType leftObject = ((IndirectEntryType) left);
     final IndirectEntryType rightObject = ((IndirectEntryType) right);
     {
       DefinitionProxyType lhsDefinitionProxy;
       lhsDefinitionProxy = leftObject.getDefinitionProxy();
       DefinitionProxyType rhsDefinitionProxy;
       rhsDefinitionProxy = rightObject.getDefinitionProxy();
       target.setDefinitionProxy(
           ((DefinitionProxyType)
               strategy.merge(
                   LocatorUtils.property(leftLocator, "definitionProxy", lhsDefinitionProxy),
                   LocatorUtils.property(rightLocator, "definitionProxy", rhsDefinitionProxy),
                   lhsDefinitionProxy,
                   rhsDefinitionProxy)));
     }
   }
 }