All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.rosetta.jptlegalagreement.model.CsaInitialMargin2016JapaneseLaw Maven / Gradle / Ivy

There is a newer version: 11.25.1
Show newest version
package com.rosetta.jptlegalagreement.model;

import com.rosetta.jptlegalagreement.model.AdditionalRepresentation;
import com.rosetta.jptlegalagreement.model.CalculationDateLocation;
import com.rosetta.jptlegalagreement.model.ConditionsPrecedent;
import com.rosetta.jptlegalagreement.model.ContactElection;
import com.rosetta.jptlegalagreement.model.CreditSupportObligationsInitialMargin;
import com.rosetta.jptlegalagreement.model.CsaInitialMargin2016;
import com.rosetta.jptlegalagreement.model.CsaInitialMargin2016.CsaInitialMargin2016Builder;
import com.rosetta.jptlegalagreement.model.CsaInitialMargin2016.CsaInitialMargin2016BuilderImpl;
import com.rosetta.jptlegalagreement.model.CsaInitialMargin2016.CsaInitialMargin2016Impl;
import com.rosetta.jptlegalagreement.model.CsaInitialMargin2016JapaneseLaw;
import com.rosetta.jptlegalagreement.model.CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder;
import com.rosetta.jptlegalagreement.model.CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilderImpl;
import com.rosetta.jptlegalagreement.model.CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawImpl;
import com.rosetta.jptlegalagreement.model.DisputeResolution;
import com.rosetta.jptlegalagreement.model.FxHaircutCurrency;
import com.rosetta.jptlegalagreement.model.Method;
import com.rosetta.jptlegalagreement.model.NotificationTime;
import com.rosetta.jptlegalagreement.model.OneWayProvisions;
import com.rosetta.jptlegalagreement.model.Regime;
import com.rosetta.jptlegalagreement.model.SensitivityMethodology;
import com.rosetta.jptlegalagreement.model.Substitution;
import com.rosetta.jptlegalagreement.model.TerminationCurrencyAmendment;
import com.rosetta.jptlegalagreement.model.meta.CsaInitialMargin2016JapaneseLawMeta;
import com.rosetta.model.lib.RosettaModelObject;
import com.rosetta.model.lib.RosettaModelObjectBuilder;
import com.rosetta.model.lib.annotations.RosettaAttribute;
import com.rosetta.model.lib.annotations.RosettaDataType;
import com.rosetta.model.lib.meta.RosettaMetaData;
import com.rosetta.model.lib.path.RosettaPath;
import com.rosetta.model.lib.process.BuilderMerger;
import com.rosetta.model.lib.process.BuilderProcessor;
import com.rosetta.model.lib.process.Processor;
import com.rosetta.model.metafields.FieldWithMetaString;
import com.rosetta.model.metafields.FieldWithMetaString.FieldWithMetaStringBuilder;
import java.util.Objects;

import static java.util.Optional.ofNullable;

/**
 * @version test
 */
@RosettaDataType(value="CsaInitialMargin2016JapaneseLaw", builder=CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilderImpl.class, version="test")
public interface CsaInitialMargin2016JapaneseLaw extends CsaInitialMargin2016 {

	CsaInitialMargin2016JapaneseLawMeta metaData = new CsaInitialMargin2016JapaneseLawMeta();

	/*********************** Getter Methods  ***********************/
	Boolean getAutomaticSetOff();

	/*********************** Build Methods  ***********************/
	CsaInitialMargin2016JapaneseLaw build();
	
	CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder toBuilder();
	
	static CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder builder() {
		return new CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilderImpl();
	}

	/*********************** Utility Methods  ***********************/
	@Override
	default RosettaMetaData metaData() {
		return metaData;
	}
	
	@Override
	default Class getType() {
		return CsaInitialMargin2016JapaneseLaw.class;
	}
	
	
	@Override
	default void process(RosettaPath path, Processor processor) {
		processRosetta(path.newSubPath("baseCurrency"), processor, FieldWithMetaString.class, getBaseCurrency());
		processor.processBasic(path.newSubPath("additionalObligations"), String.class, getAdditionalObligations(), this);
		processRosetta(path.newSubPath("conditionsPrecedent"), processor, ConditionsPrecedent.class, getConditionsPrecedent());
		processRosetta(path.newSubPath("substitution"), processor, Substitution.class, getSubstitution());
		processRosetta(path.newSubPath("disputeResolution"), processor, DisputeResolution.class, getDisputeResolution());
		processRosetta(path.newSubPath("additionalRepresentation"), processor, AdditionalRepresentation.class, getAdditionalRepresentation());
		processRosetta(path.newSubPath("demandsAndNotices"), processor, ContactElection.class, getDemandsAndNotices());
		processRosetta(path.newSubPath("addressesForTransfer"), processor, ContactElection.class, getAddressesForTransfer());
		processor.processBasic(path.newSubPath("bespokeProvision"), String.class, getBespokeProvision(), this);
		processRosetta(path.newSubPath("regime"), processor, Regime.class, getRegime());
		processRosetta(path.newSubPath("oneWayProvisions"), processor, OneWayProvisions.class, getOneWayProvisions());
		processRosetta(path.newSubPath("method"), processor, Method.class, getMethod());
		processor.processBasic(path.newSubPath("identifiedCrossCurrencySwap"), Boolean.class, getIdentifiedCrossCurrencySwap(), this);
		processRosetta(path.newSubPath("sensitivityToEquity"), processor, SensitivityMethodology.class, getSensitivityToEquity());
		processRosetta(path.newSubPath("sensitivityToCommodity"), processor, SensitivityMethodology.class, getSensitivityToCommodity());
		processRosetta(path.newSubPath("fxHaircutCurrency"), processor, FxHaircutCurrency.class, getFxHaircutCurrency());
		processRosetta(path.newSubPath("creditSupportObligations"), processor, CreditSupportObligationsInitialMargin.class, getCreditSupportObligations());
		processRosetta(path.newSubPath("calculationDateLocation"), processor, CalculationDateLocation.class, getCalculationDateLocation());
		processRosetta(path.newSubPath("notificationTime"), processor, NotificationTime.class, getNotificationTime());
		processRosetta(path.newSubPath("terminationCurrency"), processor, TerminationCurrencyAmendment.class, getTerminationCurrency());
		processor.processBasic(path.newSubPath("automaticSetOff"), Boolean.class, getAutomaticSetOff(), this);
	}
	

	/*********************** Builder Interface  ***********************/
	interface CsaInitialMargin2016JapaneseLawBuilder extends CsaInitialMargin2016JapaneseLaw, CsaInitialMargin2016.CsaInitialMargin2016Builder {
		CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setBaseCurrency(FieldWithMetaString baseCurrency0);
		CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setBaseCurrencyValue(String baseCurrency1);
		CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setAdditionalObligations(String additionalObligations);
		CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setConditionsPrecedent(ConditionsPrecedent conditionsPrecedent);
		CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setSubstitution(Substitution substitution);
		CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setDisputeResolution(DisputeResolution disputeResolution);
		CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setAdditionalRepresentation(AdditionalRepresentation additionalRepresentation);
		CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setDemandsAndNotices(ContactElection demandsAndNotices);
		CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setAddressesForTransfer(ContactElection addressesForTransfer);
		CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setBespokeProvision(String bespokeProvision);
		CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setRegime(Regime regime);
		CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setOneWayProvisions(OneWayProvisions oneWayProvisions);
		CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setMethod(Method method);
		CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setIdentifiedCrossCurrencySwap(Boolean identifiedCrossCurrencySwap);
		CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setSensitivityToEquity(SensitivityMethodology sensitivityToEquity);
		CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setSensitivityToCommodity(SensitivityMethodology sensitivityToCommodity);
		CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setFxHaircutCurrency(FxHaircutCurrency fxHaircutCurrency);
		CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setCreditSupportObligations(CreditSupportObligationsInitialMargin creditSupportObligations);
		CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setCalculationDateLocation(CalculationDateLocation calculationDateLocation);
		CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setNotificationTime(NotificationTime notificationTime);
		CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setTerminationCurrency(TerminationCurrencyAmendment terminationCurrency);
		CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setAutomaticSetOff(Boolean automaticSetOff);

		@Override
		default void process(RosettaPath path, BuilderProcessor processor) {
			processRosetta(path.newSubPath("baseCurrency"), processor, FieldWithMetaString.FieldWithMetaStringBuilder.class, getBaseCurrency());
			processor.processBasic(path.newSubPath("additionalObligations"), String.class, getAdditionalObligations(), this);
			processRosetta(path.newSubPath("conditionsPrecedent"), processor, ConditionsPrecedent.ConditionsPrecedentBuilder.class, getConditionsPrecedent());
			processRosetta(path.newSubPath("substitution"), processor, Substitution.SubstitutionBuilder.class, getSubstitution());
			processRosetta(path.newSubPath("disputeResolution"), processor, DisputeResolution.DisputeResolutionBuilder.class, getDisputeResolution());
			processRosetta(path.newSubPath("additionalRepresentation"), processor, AdditionalRepresentation.AdditionalRepresentationBuilder.class, getAdditionalRepresentation());
			processRosetta(path.newSubPath("demandsAndNotices"), processor, ContactElection.ContactElectionBuilder.class, getDemandsAndNotices());
			processRosetta(path.newSubPath("addressesForTransfer"), processor, ContactElection.ContactElectionBuilder.class, getAddressesForTransfer());
			processor.processBasic(path.newSubPath("bespokeProvision"), String.class, getBespokeProvision(), this);
			processRosetta(path.newSubPath("regime"), processor, Regime.RegimeBuilder.class, getRegime());
			processRosetta(path.newSubPath("oneWayProvisions"), processor, OneWayProvisions.OneWayProvisionsBuilder.class, getOneWayProvisions());
			processRosetta(path.newSubPath("method"), processor, Method.MethodBuilder.class, getMethod());
			processor.processBasic(path.newSubPath("identifiedCrossCurrencySwap"), Boolean.class, getIdentifiedCrossCurrencySwap(), this);
			processRosetta(path.newSubPath("sensitivityToEquity"), processor, SensitivityMethodology.SensitivityMethodologyBuilder.class, getSensitivityToEquity());
			processRosetta(path.newSubPath("sensitivityToCommodity"), processor, SensitivityMethodology.SensitivityMethodologyBuilder.class, getSensitivityToCommodity());
			processRosetta(path.newSubPath("fxHaircutCurrency"), processor, FxHaircutCurrency.FxHaircutCurrencyBuilder.class, getFxHaircutCurrency());
			processRosetta(path.newSubPath("creditSupportObligations"), processor, CreditSupportObligationsInitialMargin.CreditSupportObligationsInitialMarginBuilder.class, getCreditSupportObligations());
			processRosetta(path.newSubPath("calculationDateLocation"), processor, CalculationDateLocation.CalculationDateLocationBuilder.class, getCalculationDateLocation());
			processRosetta(path.newSubPath("notificationTime"), processor, NotificationTime.NotificationTimeBuilder.class, getNotificationTime());
			processRosetta(path.newSubPath("terminationCurrency"), processor, TerminationCurrencyAmendment.TerminationCurrencyAmendmentBuilder.class, getTerminationCurrency());
			processor.processBasic(path.newSubPath("automaticSetOff"), Boolean.class, getAutomaticSetOff(), this);
		}
		

		CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder prune();
	}

	/*********************** Immutable Implementation of CsaInitialMargin2016JapaneseLaw  ***********************/
	class CsaInitialMargin2016JapaneseLawImpl extends CsaInitialMargin2016.CsaInitialMargin2016Impl implements CsaInitialMargin2016JapaneseLaw {
		private final Boolean automaticSetOff;
		
		protected CsaInitialMargin2016JapaneseLawImpl(CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder builder) {
			super(builder);
			this.automaticSetOff = builder.getAutomaticSetOff();
		}
		
		@Override
		@RosettaAttribute("automaticSetOff")
		public Boolean getAutomaticSetOff() {
			return automaticSetOff;
		}
		
		@Override
		public CsaInitialMargin2016JapaneseLaw build() {
			return this;
		}
		
		@Override
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder toBuilder() {
			CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder builder = builder();
			setBuilderFields(builder);
			return builder;
		}
		
		protected void setBuilderFields(CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder builder) {
			super.setBuilderFields(builder);
			ofNullable(getAutomaticSetOff()).ifPresent(builder::setAutomaticSetOff);
		}

		@Override
		public boolean equals(Object o) {
			if (this == o) return true;
			if (o == null || !(o instanceof RosettaModelObject) || !getType().equals(((RosettaModelObject)o).getType())) return false;
			if (!super.equals(o)) return false;
		
			CsaInitialMargin2016JapaneseLaw _that = getType().cast(o);
		
			if (!Objects.equals(automaticSetOff, _that.getAutomaticSetOff())) return false;
			return true;
		}
		
		@Override
		public int hashCode() {
			int _result = super.hashCode();
			_result = 31 * _result + (automaticSetOff != null ? automaticSetOff.hashCode() : 0);
			return _result;
		}
		
		@Override
		public String toString() {
			return "CsaInitialMargin2016JapaneseLaw {" +
				"automaticSetOff=" + this.automaticSetOff +
			'}' + " " + super.toString();
		}
	}

	/*********************** Builder Implementation of CsaInitialMargin2016JapaneseLaw  ***********************/
	class CsaInitialMargin2016JapaneseLawBuilderImpl extends CsaInitialMargin2016.CsaInitialMargin2016BuilderImpl  implements CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder {
	
		protected Boolean automaticSetOff;
	
		public CsaInitialMargin2016JapaneseLawBuilderImpl() {
		}
	
		@Override
		@RosettaAttribute("automaticSetOff")
		public Boolean getAutomaticSetOff() {
			return automaticSetOff;
		}
		
		@Override
		@RosettaAttribute("baseCurrency")
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setBaseCurrency(FieldWithMetaString baseCurrency) {
			this.baseCurrency = baseCurrency==null?null:baseCurrency.toBuilder();
			return this;
		}
		@Override
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setBaseCurrencyValue(String baseCurrency) {
			this.getOrCreateBaseCurrency().setValue(baseCurrency);
			return this;
		}
		@Override
		@RosettaAttribute("additionalObligations")
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setAdditionalObligations(String additionalObligations) {
			this.additionalObligations = additionalObligations==null?null:additionalObligations;
			return this;
		}
		@Override
		@RosettaAttribute("conditionsPrecedent")
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setConditionsPrecedent(ConditionsPrecedent conditionsPrecedent) {
			this.conditionsPrecedent = conditionsPrecedent==null?null:conditionsPrecedent.toBuilder();
			return this;
		}
		@Override
		@RosettaAttribute("substitution")
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setSubstitution(Substitution substitution) {
			this.substitution = substitution==null?null:substitution.toBuilder();
			return this;
		}
		@Override
		@RosettaAttribute("disputeResolution")
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setDisputeResolution(DisputeResolution disputeResolution) {
			this.disputeResolution = disputeResolution==null?null:disputeResolution.toBuilder();
			return this;
		}
		@Override
		@RosettaAttribute("additionalRepresentation")
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setAdditionalRepresentation(AdditionalRepresentation additionalRepresentation) {
			this.additionalRepresentation = additionalRepresentation==null?null:additionalRepresentation.toBuilder();
			return this;
		}
		@Override
		@RosettaAttribute("demandsAndNotices")
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setDemandsAndNotices(ContactElection demandsAndNotices) {
			this.demandsAndNotices = demandsAndNotices==null?null:demandsAndNotices.toBuilder();
			return this;
		}
		@Override
		@RosettaAttribute("addressesForTransfer")
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setAddressesForTransfer(ContactElection addressesForTransfer) {
			this.addressesForTransfer = addressesForTransfer==null?null:addressesForTransfer.toBuilder();
			return this;
		}
		@Override
		@RosettaAttribute("bespokeProvision")
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setBespokeProvision(String bespokeProvision) {
			this.bespokeProvision = bespokeProvision==null?null:bespokeProvision;
			return this;
		}
		@Override
		@RosettaAttribute("regime")
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setRegime(Regime regime) {
			this.regime = regime==null?null:regime.toBuilder();
			return this;
		}
		@Override
		@RosettaAttribute("oneWayProvisions")
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setOneWayProvisions(OneWayProvisions oneWayProvisions) {
			this.oneWayProvisions = oneWayProvisions==null?null:oneWayProvisions.toBuilder();
			return this;
		}
		@Override
		@RosettaAttribute("method")
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setMethod(Method method) {
			this.method = method==null?null:method.toBuilder();
			return this;
		}
		@Override
		@RosettaAttribute("identifiedCrossCurrencySwap")
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setIdentifiedCrossCurrencySwap(Boolean identifiedCrossCurrencySwap) {
			this.identifiedCrossCurrencySwap = identifiedCrossCurrencySwap==null?null:identifiedCrossCurrencySwap;
			return this;
		}
		@Override
		@RosettaAttribute("sensitivityToEquity")
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setSensitivityToEquity(SensitivityMethodology sensitivityToEquity) {
			this.sensitivityToEquity = sensitivityToEquity==null?null:sensitivityToEquity.toBuilder();
			return this;
		}
		@Override
		@RosettaAttribute("sensitivityToCommodity")
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setSensitivityToCommodity(SensitivityMethodology sensitivityToCommodity) {
			this.sensitivityToCommodity = sensitivityToCommodity==null?null:sensitivityToCommodity.toBuilder();
			return this;
		}
		@Override
		@RosettaAttribute("fxHaircutCurrency")
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setFxHaircutCurrency(FxHaircutCurrency fxHaircutCurrency) {
			this.fxHaircutCurrency = fxHaircutCurrency==null?null:fxHaircutCurrency.toBuilder();
			return this;
		}
		@Override
		@RosettaAttribute("creditSupportObligations")
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setCreditSupportObligations(CreditSupportObligationsInitialMargin creditSupportObligations) {
			this.creditSupportObligations = creditSupportObligations==null?null:creditSupportObligations.toBuilder();
			return this;
		}
		@Override
		@RosettaAttribute("calculationDateLocation")
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setCalculationDateLocation(CalculationDateLocation calculationDateLocation) {
			this.calculationDateLocation = calculationDateLocation==null?null:calculationDateLocation.toBuilder();
			return this;
		}
		@Override
		@RosettaAttribute("notificationTime")
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setNotificationTime(NotificationTime notificationTime) {
			this.notificationTime = notificationTime==null?null:notificationTime.toBuilder();
			return this;
		}
		@Override
		@RosettaAttribute("terminationCurrency")
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setTerminationCurrency(TerminationCurrencyAmendment terminationCurrency) {
			this.terminationCurrency = terminationCurrency==null?null:terminationCurrency.toBuilder();
			return this;
		}
		@Override
		@RosettaAttribute("automaticSetOff")
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder setAutomaticSetOff(Boolean automaticSetOff) {
			this.automaticSetOff = automaticSetOff==null?null:automaticSetOff;
			return this;
		}
		
		@Override
		public CsaInitialMargin2016JapaneseLaw build() {
			return new CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawImpl(this);
		}
		
		@Override
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder toBuilder() {
			return this;
		}
	
		@SuppressWarnings("unchecked")
		@Override
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder prune() {
			super.prune();
			return this;
		}
		
		@Override
		public boolean hasData() {
			if (super.hasData()) return true;
			if (getAutomaticSetOff()!=null) return true;
			return false;
		}
	
		@SuppressWarnings("unchecked")
		@Override
		public CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder merge(RosettaModelObjectBuilder other, BuilderMerger merger) {
			super.merge(other, merger);
			
			CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder o = (CsaInitialMargin2016JapaneseLaw.CsaInitialMargin2016JapaneseLawBuilder) other;
			
			
			merger.mergeBasic(getAutomaticSetOff(), o.getAutomaticSetOff(), this::setAutomaticSetOff);
			return this;
		}
	
		@Override
		public boolean equals(Object o) {
			if (this == o) return true;
			if (o == null || !(o instanceof RosettaModelObject) || !getType().equals(((RosettaModelObject)o).getType())) return false;
			if (!super.equals(o)) return false;
		
			CsaInitialMargin2016JapaneseLaw _that = getType().cast(o);
		
			if (!Objects.equals(automaticSetOff, _that.getAutomaticSetOff())) return false;
			return true;
		}
		
		@Override
		public int hashCode() {
			int _result = super.hashCode();
			_result = 31 * _result + (automaticSetOff != null ? automaticSetOff.hashCode() : 0);
			return _result;
		}
		
		@Override
		public String toString() {
			return "CsaInitialMargin2016JapaneseLawBuilder {" +
				"automaticSetOff=" + this.automaticSetOff +
			'}' + " " + super.toString();
		}
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy