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

com.rosetta.jptcaccessconditions.model.SomeCondition Maven / Gradle / Ivy

There is a newer version: 11.35.2
Show newest version
package com.rosetta.jptcaccessconditions.model;

import com.rosetta.jptcaccessconditions.model.SomeCondition;
import com.rosetta.jptcaccessconditions.model.SomeCondition.SomeConditionBuilder;
import com.rosetta.jptcaccessconditions.model.SomeCondition.SomeConditionBuilderImpl;
import com.rosetta.jptcaccessconditions.model.SomeCondition.SomeConditionImpl;
import com.rosetta.jptcaccessconditions.model.meta.SomeConditionMeta;
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 java.util.Objects;

import static java.util.Optional.ofNullable;

/**
 * @version test
 */
@RosettaDataType(value="SomeCondition", builder=SomeCondition.SomeConditionBuilderImpl.class, version="test")
public interface SomeCondition extends RosettaModelObject {

	SomeConditionMeta metaData = new SomeConditionMeta();

	/*********************** Getter Methods  ***********************/
	String getName();
	Boolean getIllegality();
	Boolean getForceMajeure();

	/*********************** Build Methods  ***********************/
	SomeCondition build();
	
	SomeCondition.SomeConditionBuilder toBuilder();
	
	static SomeCondition.SomeConditionBuilder builder() {
		return new SomeCondition.SomeConditionBuilderImpl();
	}

	/*********************** Utility Methods  ***********************/
	@Override
	default RosettaMetaData metaData() {
		return metaData;
	}
	
	@Override
	default Class getType() {
		return SomeCondition.class;
	}
	
	
	@Override
	default void process(RosettaPath path, Processor processor) {
		processor.processBasic(path.newSubPath("name"), String.class, getName(), this);
		processor.processBasic(path.newSubPath("illegality"), Boolean.class, getIllegality(), this);
		processor.processBasic(path.newSubPath("forceMajeure"), Boolean.class, getForceMajeure(), this);
	}
	

	/*********************** Builder Interface  ***********************/
	interface SomeConditionBuilder extends SomeCondition, RosettaModelObjectBuilder {
		SomeCondition.SomeConditionBuilder setName(String name);
		SomeCondition.SomeConditionBuilder setIllegality(Boolean illegality);
		SomeCondition.SomeConditionBuilder setForceMajeure(Boolean forceMajeure);

		@Override
		default void process(RosettaPath path, BuilderProcessor processor) {
			processor.processBasic(path.newSubPath("name"), String.class, getName(), this);
			processor.processBasic(path.newSubPath("illegality"), Boolean.class, getIllegality(), this);
			processor.processBasic(path.newSubPath("forceMajeure"), Boolean.class, getForceMajeure(), this);
		}
		

		SomeCondition.SomeConditionBuilder prune();
	}

	/*********************** Immutable Implementation of SomeCondition  ***********************/
	class SomeConditionImpl implements SomeCondition {
		private final String name;
		private final Boolean illegality;
		private final Boolean forceMajeure;
		
		protected SomeConditionImpl(SomeCondition.SomeConditionBuilder builder) {
			this.name = builder.getName();
			this.illegality = builder.getIllegality();
			this.forceMajeure = builder.getForceMajeure();
		}
		
		@Override
		@RosettaAttribute("name")
		public String getName() {
			return name;
		}
		
		@Override
		@RosettaAttribute("illegality")
		public Boolean getIllegality() {
			return illegality;
		}
		
		@Override
		@RosettaAttribute("forceMajeure")
		public Boolean getForceMajeure() {
			return forceMajeure;
		}
		
		@Override
		public SomeCondition build() {
			return this;
		}
		
		@Override
		public SomeCondition.SomeConditionBuilder toBuilder() {
			SomeCondition.SomeConditionBuilder builder = builder();
			setBuilderFields(builder);
			return builder;
		}
		
		protected void setBuilderFields(SomeCondition.SomeConditionBuilder builder) {
			ofNullable(getName()).ifPresent(builder::setName);
			ofNullable(getIllegality()).ifPresent(builder::setIllegality);
			ofNullable(getForceMajeure()).ifPresent(builder::setForceMajeure);
		}

		@Override
		public boolean equals(Object o) {
			if (this == o) return true;
			if (o == null || !(o instanceof RosettaModelObject) || !getType().equals(((RosettaModelObject)o).getType())) return false;
		
			SomeCondition _that = getType().cast(o);
		
			if (!Objects.equals(name, _that.getName())) return false;
			if (!Objects.equals(illegality, _that.getIllegality())) return false;
			if (!Objects.equals(forceMajeure, _that.getForceMajeure())) return false;
			return true;
		}
		
		@Override
		public int hashCode() {
			int _result = 0;
			_result = 31 * _result + (name != null ? name.hashCode() : 0);
			_result = 31 * _result + (illegality != null ? illegality.hashCode() : 0);
			_result = 31 * _result + (forceMajeure != null ? forceMajeure.hashCode() : 0);
			return _result;
		}
		
		@Override
		public String toString() {
			return "SomeCondition {" +
				"name=" + this.name + ", " +
				"illegality=" + this.illegality + ", " +
				"forceMajeure=" + this.forceMajeure +
			'}';
		}
	}

	/*********************** Builder Implementation of SomeCondition  ***********************/
	class SomeConditionBuilderImpl implements SomeCondition.SomeConditionBuilder {
	
		protected String name;
		protected Boolean illegality;
		protected Boolean forceMajeure;
	
		public SomeConditionBuilderImpl() {
		}
	
		@Override
		@RosettaAttribute("name")
		public String getName() {
			return name;
		}
		
		@Override
		@RosettaAttribute("illegality")
		public Boolean getIllegality() {
			return illegality;
		}
		
		@Override
		@RosettaAttribute("forceMajeure")
		public Boolean getForceMajeure() {
			return forceMajeure;
		}
		
		@Override
		@RosettaAttribute("name")
		public SomeCondition.SomeConditionBuilder setName(String name) {
			this.name = name==null?null:name;
			return this;
		}
		@Override
		@RosettaAttribute("illegality")
		public SomeCondition.SomeConditionBuilder setIllegality(Boolean illegality) {
			this.illegality = illegality==null?null:illegality;
			return this;
		}
		@Override
		@RosettaAttribute("forceMajeure")
		public SomeCondition.SomeConditionBuilder setForceMajeure(Boolean forceMajeure) {
			this.forceMajeure = forceMajeure==null?null:forceMajeure;
			return this;
		}
		
		@Override
		public SomeCondition build() {
			return new SomeCondition.SomeConditionImpl(this);
		}
		
		@Override
		public SomeCondition.SomeConditionBuilder toBuilder() {
			return this;
		}
	
		@SuppressWarnings("unchecked")
		@Override
		public SomeCondition.SomeConditionBuilder prune() {
			return this;
		}
		
		@Override
		public boolean hasData() {
			if (getName()!=null) return true;
			if (getIllegality()!=null) return true;
			if (getForceMajeure()!=null) return true;
			return false;
		}
	
		@SuppressWarnings("unchecked")
		@Override
		public SomeCondition.SomeConditionBuilder merge(RosettaModelObjectBuilder other, BuilderMerger merger) {
			SomeCondition.SomeConditionBuilder o = (SomeCondition.SomeConditionBuilder) other;
			
			
			merger.mergeBasic(getName(), o.getName(), this::setName);
			merger.mergeBasic(getIllegality(), o.getIllegality(), this::setIllegality);
			merger.mergeBasic(getForceMajeure(), o.getForceMajeure(), this::setForceMajeure);
			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;
		
			SomeCondition _that = getType().cast(o);
		
			if (!Objects.equals(name, _that.getName())) return false;
			if (!Objects.equals(illegality, _that.getIllegality())) return false;
			if (!Objects.equals(forceMajeure, _that.getForceMajeure())) return false;
			return true;
		}
		
		@Override
		public int hashCode() {
			int _result = 0;
			_result = 31 * _result + (name != null ? name.hashCode() : 0);
			_result = 31 * _result + (illegality != null ? illegality.hashCode() : 0);
			_result = 31 * _result + (forceMajeure != null ? forceMajeure.hashCode() : 0);
			return _result;
		}
		
		@Override
		public String toString() {
			return "SomeConditionBuilder {" +
				"name=" + this.name + ", " +
				"illegality=" + this.illegality + ", " +
				"forceMajeure=" + this.forceMajeure +
			'}';
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy