package features.domain; import features.domain.queries.InheritanceASubOneChildQueries; import joist.domain.AbstractChanged; import joist.domain.AbstractDomainObject; import joist.domain.Changed; import joist.domain.Shim; import joist.domain.orm.ForeignKeyHolder; import joist.domain.uow.UoW; import joist.domain.validation.rules.MaxLength; import joist.domain.validation.rules.NotEmpty; import joist.domain.validation.rules.NotNull; @SuppressWarnings("all") public abstract class InheritanceASubOneChildCodegen extends AbstractDomainObject { public static final InheritanceASubOneChildQueries queries; private Long id = null; private String name = null; private Long version = null; private final ForeignKeyHolder<InheritanceASubOneChild, InheritanceASubOne> sub = new ForeignKeyHolder<InheritanceASubOneChild, InheritanceASubOne>(InheritanceASubOneChild.class, InheritanceASubOne.class, Aliases.inheritanceASubOne(), Aliases.inheritanceASubOneChild().sub); protected Changed changed; static { Aliases.inheritanceASubOneChild(); queries = new InheritanceASubOneChildQueries(); } protected InheritanceASubOneChildCodegen() { this.addExtraRules(); } private void addExtraRules() { this.addRule(new NotNull<InheritanceASubOneChild>(Shims.name)); this.addRule(new MaxLength<InheritanceASubOneChild>(Shims.name, 100)); this.addRule(new NotEmpty<InheritanceASubOneChild>(Shims.name)); this.addRule(new NotNull<InheritanceASubOneChild>(Shims.subId)); } public Long getId() { return this.id; } public void setId(Long id) { if (this.id != null) { throw new IllegalStateException(this + " id cannot be changed"); } this.getChanged().record("id", this.id, id); this.id = id; if (UoW.isOpen()) { UoW.getIdentityMap().store(this); } } public String getName() { return this.name; } public void setName(String name) { this.getChanged().record("name", this.name, name); this.name = name; } protected void defaultName(String name) { this.name = name; } public Long getVersion() { return this.version; } public InheritanceASubOne getSub() { return this.sub.get(); } public void setSub(InheritanceASubOne sub) { if (sub == this.getSub()) { return; } if (this.sub.get() != null) { this.sub.get().removeInheritanceASubOneChildWithoutPercolation((InheritanceASubOneChild) this); } this.setSubWithoutPercolation(sub); if (this.sub.get() != null) { this.sub.get().addInheritanceASubOneChildWithoutPercolation((InheritanceASubOneChild) this); } } protected void setSubWithoutPercolation(InheritanceASubOne sub) { this.getChanged().record("sub", this.sub.get(), sub); this.sub.set(sub); } public InheritanceASubOneChildChanged getChanged() { if (this.changed == null) { this.changed = new InheritanceASubOneChildChanged((InheritanceASubOneChild) this); } return (InheritanceASubOneChildChanged) this.changed; } @Override public void clearAssociations() { super.clearAssociations(); this.setSub(null); } static class Shims { protected static final Shim<InheritanceASubOneChild, Long> id = new Shim<InheritanceASubOneChild, Long>() { public void set(InheritanceASubOneChild instance, Long id) { ((InheritanceASubOneChildCodegen) instance).id = id; } public Long get(InheritanceASubOneChild instance) { return ((InheritanceASubOneChildCodegen) instance).id; } public String getName() { return "id"; } }; protected static final Shim<InheritanceASubOneChild, String> name = new Shim<InheritanceASubOneChild, String>() { public void set(InheritanceASubOneChild instance, String name) { ((InheritanceASubOneChildCodegen) instance).name = name; } public String get(InheritanceASubOneChild instance) { return ((InheritanceASubOneChildCodegen) instance).name; } public String getName() { return "name"; } }; protected static final Shim<InheritanceASubOneChild, Long> version = new Shim<InheritanceASubOneChild, Long>() { public void set(InheritanceASubOneChild instance, Long version) { ((InheritanceASubOneChildCodegen) instance).version = version; } public Long get(InheritanceASubOneChild instance) { return ((InheritanceASubOneChildCodegen) instance).version; } public String getName() { return "version"; } }; protected static final Shim<InheritanceASubOneChild, Long> subId = new Shim<InheritanceASubOneChild, Long>() { public void set(InheritanceASubOneChild instance, Long subId) { ((InheritanceASubOneChildCodegen) instance).sub.setId(subId); } public Long get(InheritanceASubOneChild instance) { return ((InheritanceASubOneChildCodegen) instance).sub.getId(); } public String getName() { return "sub"; } }; } public static class InheritanceASubOneChildChanged extends AbstractChanged { public InheritanceASubOneChildChanged(InheritanceASubOneChild instance) { super(instance); } public boolean hasId() { return this.contains("id"); } public Long getOriginalId() { return (Long) this.getOriginal("id"); } public boolean hasName() { return this.contains("name"); } public String getOriginalName() { return (java.lang.String) this.getOriginal("name"); } public boolean hasVersion() { return this.contains("version"); } public Long getOriginalVersion() { return (Long) this.getOriginal("version"); } public boolean hasSub() { return this.contains("sub"); } public InheritanceASubOne getOriginalSub() { return (InheritanceASubOne) this.getOriginal("sub"); } } }