public void mergeFrom(
     ObjectLocator leftLocator,
     ObjectLocator rightLocator,
     Object left,
     Object right,
     MergeStrategy strategy) {
   super.mergeFrom(leftLocator, rightLocator, left, right, strategy);
   if (right instanceof RelatedTimeType) {
     final RelatedTimeType target = this;
     final RelatedTimeType leftObject = ((RelatedTimeType) left);
     final RelatedTimeType rightObject = ((RelatedTimeType) right);
     {
       String lhsRelativePosition;
       lhsRelativePosition = leftObject.getRelativePosition();
       String rhsRelativePosition;
       rhsRelativePosition = rightObject.getRelativePosition();
       target.setRelativePosition(
           ((String)
               strategy.merge(
                   LocatorUtils.property(leftLocator, "relativePosition", lhsRelativePosition),
                   LocatorUtils.property(rightLocator, "relativePosition", rhsRelativePosition),
                   lhsRelativePosition,
                   rhsRelativePosition)));
     }
   }
 }
 public boolean equals(
     ObjectLocator thisLocator,
     ObjectLocator thatLocator,
     Object object,
     EqualsStrategy strategy) {
   if (!(object instanceof RelatedTimeType)) {
     return false;
   }
   if (this == object) {
     return true;
   }
   if (!super.equals(thisLocator, thatLocator, object, strategy)) {
     return false;
   }
   final RelatedTimeType that = ((RelatedTimeType) object);
   {
     String lhsRelativePosition;
     lhsRelativePosition = this.getRelativePosition();
     String rhsRelativePosition;
     rhsRelativePosition = that.getRelativePosition();
     if (!strategy.equals(
         LocatorUtils.property(thisLocator, "relativePosition", lhsRelativePosition),
         LocatorUtils.property(thatLocator, "relativePosition", rhsRelativePosition),
         lhsRelativePosition,
         rhsRelativePosition)) {
       return false;
     }
   }
   return true;
 }