package features.domain;
import java.util.ArrayList;
import java.util.List;
import joist.domain.DomainObject;
import joist.domain.orm.queries.Alias;
import joist.domain.orm.queries.JoinClause;
import joist.domain.orm.queries.columns.AliasColumn;
import joist.domain.orm.queries.columns.ForeignKeyAliasColumn;
import joist.domain.orm.queries.columns.IdAliasColumn;
import joist.domain.orm.queries.columns.LongAliasColumn;
import joist.domain.orm.queries.columns.StringAliasColumn;
public class InheritanceAThingAlias extends Alias<InheritanceAThing> {
private final List<AliasColumn<InheritanceAThing, ?, ?>> columns = new ArrayList<AliasColumn<InheritanceAThing, ?, ?>>();
public final IdAliasColumn<InheritanceAThing> id = new IdAliasColumn<InheritanceAThing>(this, "id", InheritanceAThingCodegen.Shims.id);
public final StringAliasColumn<InheritanceAThing> name = new StringAliasColumn<InheritanceAThing>(this, "name", InheritanceAThingCodegen.Shims.name);
public final LongAliasColumn<InheritanceAThing> version = new LongAliasColumn<InheritanceAThing>(this, "version", InheritanceAThingCodegen.Shims.version);
public InheritanceAThingAlias() {
this("iat0", null, true);
}
public InheritanceAThingAlias(String alias) {
this(alias, null, true);
}
public InheritanceAThingAlias(String alias, Object noopBaseAlias, boolean addSubClasses) {
super(InheritanceAThing.class, "inheritance_a_thing", alias);
this.columns.add(this.id);
this.columns.add(this.name);
this.columns.add(this.version);
}
public List<AliasColumn<InheritanceAThing, ?, ?>> getColumns() {
return this.columns;
}
public IdAliasColumn<InheritanceAThing> getIdColumn() {
return this.id;
}
public LongAliasColumn<InheritanceAThing> getVersionColumn() {
return this.version;
}
public IdAliasColumn<InheritanceAThing> getSubClassIdColumn() {
return null;
}
public int getOrder() {
return 5;
}
public <T extends DomainObject> JoinClause<T, InheritanceAThing> on(ForeignKeyAliasColumn<T, InheritanceAThing> on) {
return new JoinClause<T, InheritanceAThing>("INNER JOIN", this, on);
}
public <T extends DomainObject> JoinClause<T, InheritanceAThing> leftOn(ForeignKeyAliasColumn<T, InheritanceAThing> on) {
return new JoinClause<T, InheritanceAThing>("LEFT OUTER JOIN", this, on);
}
}