AncestorJoin.java
package org.codefilarete.stalactite.engine.configurer.model;
import org.codefilarete.stalactite.sql.ddl.structure.Table;
/**
* Represents a parent entity of another one, from a mapped-superclass perspective (not as polymorphic one)
*
* @param <SRC> the entity type of this parent type (a super type of the child one)
* @param <LEFTTABLE> the type of table owning the child entity
* @param <RIGHTTABLE> the type of the table owning this parent entity
* @param <JOINTYPE> the type of the join between the two tables, expected to be the primary key type
*/
public class AncestorJoin<SRC, LEFTTABLE extends Table<LEFTTABLE>, RIGHTTABLE extends Table<RIGHTTABLE>, JOINTYPE>
extends MappingJoin<LEFTTABLE, RIGHTTABLE, JOINTYPE> {
private final Entity<SRC, JOINTYPE, RIGHTTABLE> ancestor;
public AncestorJoin(Entity<SRC, JOINTYPE, RIGHTTABLE> ancestor, DirectRelationJoin<LEFTTABLE, RIGHTTABLE, JOINTYPE> join) {
super(join);
this.ancestor = ancestor;
}
public Entity<SRC, JOINTYPE, RIGHTTABLE> getAncestor() {
return ancestor;
}
@Override
public DirectRelationJoin<LEFTTABLE, RIGHTTABLE, JOINTYPE> getJoin() {
return (DirectRelationJoin<LEFTTABLE, RIGHTTABLE, JOINTYPE>) super.getJoin();
}
}