
com.rosetta.jptlegalagreement.model.Identifier Maven / Gradle / Ivy
package com.rosetta.jptlegalagreement.model;
import com.rosetta.jptlegalagreement.model.Identifier;
import com.rosetta.jptlegalagreement.model.Identifier.IdentifierBuilder;
import com.rosetta.jptlegalagreement.model.Identifier.IdentifierBuilderImpl;
import com.rosetta.jptlegalagreement.model.Identifier.IdentifierImpl;
import com.rosetta.jptlegalagreement.model.Party;
import com.rosetta.jptlegalagreement.model.meta.IdentifierMeta;
import com.rosetta.jptlegalagreement.model.metafields.ReferenceWithMetaParty;
import com.rosetta.jptlegalagreement.model.metafields.ReferenceWithMetaParty.ReferenceWithMetaPartyBuilder;
import com.rosetta.model.lib.GlobalKey;
import com.rosetta.model.lib.GlobalKey.GlobalKeyBuilder;
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.MetaFields;
import com.rosetta.model.metafields.ReferenceWithMetaString;
import com.rosetta.model.metafields.ReferenceWithMetaString.ReferenceWithMetaStringBuilder;
import java.util.Objects;
import static java.util.Optional.ofNullable;
/**
* @version test
*/
@RosettaDataType(value="Identifier", builder=Identifier.IdentifierBuilderImpl.class, version="test")
public interface Identifier extends RosettaModelObject, GlobalKey {
IdentifierMeta metaData = new IdentifierMeta();
/*********************** Getter Methods ***********************/
ReferenceWithMetaParty getIssuerReference();
ReferenceWithMetaString getIssuer();
MetaFields getMeta();
/*********************** Build Methods ***********************/
Identifier build();
Identifier.IdentifierBuilder toBuilder();
static Identifier.IdentifierBuilder builder() {
return new Identifier.IdentifierBuilderImpl();
}
/*********************** Utility Methods ***********************/
@Override
default RosettaMetaData extends Identifier> metaData() {
return metaData;
}
@Override
default Class extends Identifier> getType() {
return Identifier.class;
}
@Override
default void process(RosettaPath path, Processor processor) {
processRosetta(path.newSubPath("issuerReference"), processor, ReferenceWithMetaParty.class, getIssuerReference());
processRosetta(path.newSubPath("issuer"), processor, ReferenceWithMetaString.class, getIssuer());
processRosetta(path.newSubPath("meta"), processor, MetaFields.class, getMeta());
}
/*********************** Builder Interface ***********************/
interface IdentifierBuilder extends Identifier, RosettaModelObjectBuilder {
ReferenceWithMetaParty.ReferenceWithMetaPartyBuilder getOrCreateIssuerReference();
ReferenceWithMetaParty.ReferenceWithMetaPartyBuilder getIssuerReference();
ReferenceWithMetaString.ReferenceWithMetaStringBuilder getOrCreateIssuer();
ReferenceWithMetaString.ReferenceWithMetaStringBuilder getIssuer();
MetaFields.MetaFieldsBuilder getOrCreateMeta();
MetaFields.MetaFieldsBuilder getMeta();
Identifier.IdentifierBuilder setIssuerReference(ReferenceWithMetaParty issuerReference0);
Identifier.IdentifierBuilder setIssuerReferenceValue(Party issuerReference1);
Identifier.IdentifierBuilder setIssuer(ReferenceWithMetaString issuer0);
Identifier.IdentifierBuilder setIssuerValue(String issuer1);
Identifier.IdentifierBuilder setMeta(MetaFields meta);
@Override
default void process(RosettaPath path, BuilderProcessor processor) {
processRosetta(path.newSubPath("issuerReference"), processor, ReferenceWithMetaParty.ReferenceWithMetaPartyBuilder.class, getIssuerReference());
processRosetta(path.newSubPath("issuer"), processor, ReferenceWithMetaString.ReferenceWithMetaStringBuilder.class, getIssuer());
processRosetta(path.newSubPath("meta"), processor, MetaFields.MetaFieldsBuilder.class, getMeta());
}
Identifier.IdentifierBuilder prune();
}
/*********************** Immutable Implementation of Identifier ***********************/
class IdentifierImpl implements Identifier {
private final ReferenceWithMetaParty issuerReference;
private final ReferenceWithMetaString issuer;
private final MetaFields meta;
protected IdentifierImpl(Identifier.IdentifierBuilder builder) {
this.issuerReference = ofNullable(builder.getIssuerReference()).map(f->f.build()).orElse(null);
this.issuer = ofNullable(builder.getIssuer()).map(f->f.build()).orElse(null);
this.meta = ofNullable(builder.getMeta()).map(f->f.build()).orElse(null);
}
@Override
@RosettaAttribute("issuerReference")
public ReferenceWithMetaParty getIssuerReference() {
return issuerReference;
}
@Override
@RosettaAttribute("issuer")
public ReferenceWithMetaString getIssuer() {
return issuer;
}
@Override
@RosettaAttribute("meta")
public MetaFields getMeta() {
return meta;
}
@Override
public Identifier build() {
return this;
}
@Override
public Identifier.IdentifierBuilder toBuilder() {
Identifier.IdentifierBuilder builder = builder();
setBuilderFields(builder);
return builder;
}
protected void setBuilderFields(Identifier.IdentifierBuilder builder) {
ofNullable(getIssuerReference()).ifPresent(builder::setIssuerReference);
ofNullable(getIssuer()).ifPresent(builder::setIssuer);
ofNullable(getMeta()).ifPresent(builder::setMeta);
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || !(o instanceof RosettaModelObject) || !getType().equals(((RosettaModelObject)o).getType())) return false;
Identifier _that = getType().cast(o);
if (!Objects.equals(issuerReference, _that.getIssuerReference())) return false;
if (!Objects.equals(issuer, _that.getIssuer())) return false;
if (!Objects.equals(meta, _that.getMeta())) return false;
return true;
}
@Override
public int hashCode() {
int _result = 0;
_result = 31 * _result + (issuerReference != null ? issuerReference.hashCode() : 0);
_result = 31 * _result + (issuer != null ? issuer.hashCode() : 0);
_result = 31 * _result + (meta != null ? meta.hashCode() : 0);
return _result;
}
@Override
public String toString() {
return "Identifier {" +
"issuerReference=" + this.issuerReference + ", " +
"issuer=" + this.issuer + ", " +
"meta=" + this.meta +
'}';
}
}
/*********************** Builder Implementation of Identifier ***********************/
class IdentifierBuilderImpl implements Identifier.IdentifierBuilder, GlobalKeyBuilder {
protected ReferenceWithMetaParty.ReferenceWithMetaPartyBuilder issuerReference;
protected ReferenceWithMetaString.ReferenceWithMetaStringBuilder issuer;
protected MetaFields.MetaFieldsBuilder meta;
public IdentifierBuilderImpl() {
}
@Override
@RosettaAttribute("issuerReference")
public ReferenceWithMetaParty.ReferenceWithMetaPartyBuilder getIssuerReference() {
return issuerReference;
}
@Override
public ReferenceWithMetaParty.ReferenceWithMetaPartyBuilder getOrCreateIssuerReference() {
ReferenceWithMetaParty.ReferenceWithMetaPartyBuilder result;
if (issuerReference!=null) {
result = issuerReference;
}
else {
result = issuerReference = ReferenceWithMetaParty.builder();
}
return result;
}
@Override
@RosettaAttribute("issuer")
public ReferenceWithMetaString.ReferenceWithMetaStringBuilder getIssuer() {
return issuer;
}
@Override
public ReferenceWithMetaString.ReferenceWithMetaStringBuilder getOrCreateIssuer() {
ReferenceWithMetaString.ReferenceWithMetaStringBuilder result;
if (issuer!=null) {
result = issuer;
}
else {
result = issuer = ReferenceWithMetaString.builder();
}
return result;
}
@Override
@RosettaAttribute("meta")
public MetaFields.MetaFieldsBuilder getMeta() {
return meta;
}
@Override
public MetaFields.MetaFieldsBuilder getOrCreateMeta() {
MetaFields.MetaFieldsBuilder result;
if (meta!=null) {
result = meta;
}
else {
result = meta = MetaFields.builder();
}
return result;
}
@Override
@RosettaAttribute("issuerReference")
public Identifier.IdentifierBuilder setIssuerReference(ReferenceWithMetaParty issuerReference) {
this.issuerReference = issuerReference==null?null:issuerReference.toBuilder();
return this;
}
@Override
public Identifier.IdentifierBuilder setIssuerReferenceValue(Party issuerReference) {
this.getOrCreateIssuerReference().setValue(issuerReference);
return this;
}
@Override
@RosettaAttribute("issuer")
public Identifier.IdentifierBuilder setIssuer(ReferenceWithMetaString issuer) {
this.issuer = issuer==null?null:issuer.toBuilder();
return this;
}
@Override
public Identifier.IdentifierBuilder setIssuerValue(String issuer) {
this.getOrCreateIssuer().setValue(issuer);
return this;
}
@Override
@RosettaAttribute("meta")
public Identifier.IdentifierBuilder setMeta(MetaFields meta) {
this.meta = meta==null?null:meta.toBuilder();
return this;
}
@Override
public Identifier build() {
return new Identifier.IdentifierImpl(this);
}
@Override
public Identifier.IdentifierBuilder toBuilder() {
return this;
}
@SuppressWarnings("unchecked")
@Override
public Identifier.IdentifierBuilder prune() {
if (issuerReference!=null && !issuerReference.prune().hasData()) issuerReference = null;
if (issuer!=null && !issuer.prune().hasData()) issuer = null;
if (meta!=null && !meta.prune().hasData()) meta = null;
return this;
}
@Override
public boolean hasData() {
if (getIssuerReference()!=null && getIssuerReference().hasData()) return true;
if (getIssuer()!=null) return true;
return false;
}
@SuppressWarnings("unchecked")
@Override
public Identifier.IdentifierBuilder merge(RosettaModelObjectBuilder other, BuilderMerger merger) {
Identifier.IdentifierBuilder o = (Identifier.IdentifierBuilder) other;
merger.mergeRosetta(getIssuerReference(), o.getIssuerReference(), this::setIssuerReference);
merger.mergeRosetta(getIssuer(), o.getIssuer(), this::setIssuer);
merger.mergeRosetta(getMeta(), o.getMeta(), this::setMeta);
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;
Identifier _that = getType().cast(o);
if (!Objects.equals(issuerReference, _that.getIssuerReference())) return false;
if (!Objects.equals(issuer, _that.getIssuer())) return false;
if (!Objects.equals(meta, _that.getMeta())) return false;
return true;
}
@Override
public int hashCode() {
int _result = 0;
_result = 31 * _result + (issuerReference != null ? issuerReference.hashCode() : 0);
_result = 31 * _result + (issuer != null ? issuer.hashCode() : 0);
_result = 31 * _result + (meta != null ? meta.hashCode() : 0);
return _result;
}
@Override
public String toString() {
return "IdentifierBuilder {" +
"issuerReference=" + this.issuerReference + ", " +
"issuer=" + this.issuer + ", " +
"meta=" + this.meta +
'}';
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy