ComponentRelation.java
package org.codefilarete.stalactite.engine.configurer.model;
import java.util.function.Supplier;
import org.codefilarete.reflection.ReadWritePropertyAccessPoint;
import org.codefilarete.stalactite.dsl.property.CascadeOptions.RelationMode;
import org.codefilarete.stalactite.sql.ddl.structure.Table;
import org.codefilarete.stalactite.sql.result.BeanRelationFixer;
public abstract class ComponentRelation<SRC, TRGT, S, LEFTTABLE extends Table<LEFTTABLE>, RIGHTTABLE extends Table<RIGHTTABLE>, JOINTYPE>
extends Relation<SRC, S, LEFTTABLE, RIGHTTABLE, JOINTYPE> {
private final BeanRelationFixer<SRC, TRGT> relationFixer;
private final Supplier<S> componentFactory;
protected ComponentRelation(ReadWritePropertyAccessPoint<SRC, S> accessor,
RelationMode relationMode,
boolean fetchSeparately,
RelationJoin join,
BeanRelationFixer<SRC, TRGT> relationFixer,
Supplier<S> componentFactory) {
super(accessor, relationMode, fetchSeparately, join);
this.relationFixer = relationFixer;
this.componentFactory = componentFactory;
}
@Override
public BeanRelationFixer<SRC, TRGT> getRelationFixer() {
return relationFixer;
}
public Supplier<S> getComponentFactory() {
return componentFactory;
}
}