@Override
 public void initialize(final StandaloneCatalog root, final URI uri) {
   super.initialize(root, uri);
   CatalogSafetyInitializer.initializeNonRequiredNullFieldsWithDefaultValue(this);
   if (recurringPrice != null) {
     recurringPrice.initialize(root, uri);
   }
 }
  @Override
  public boolean equals(final Object o) {
    if (this == o) {
      return true;
    }
    if (!(o instanceof DefaultRecurring)) {
      return false;
    }

    final DefaultRecurring that = (DefaultRecurring) o;

    if (billingPeriod != that.billingPeriod) {
      return false;
    }
    if (recurringPrice != null
        ? !recurringPrice.equals(that.recurringPrice)
        : that.recurringPrice != null) {
      return false;
    }

    return true;
  }
 @Override
 public int hashCode() {
   int result = billingPeriod != null ? billingPeriod.hashCode() : 0;
   result = 31 * result + (recurringPrice != null ? recurringPrice.hashCode() : 0);
   return result;
 }