class TriTupleImpl<A, B, C> extends AbstractTuple implements TriTuple<A, B, C> {

    // Only a tuple's origin node may modify a fact.
    public A factA;
    public B factB;
    public C factC;

    public TriTupleImpl(A factA, B factB, C factC, int storeSize) {
        super(storeSize);
        this.factA = factA;
        this.factB = factB;
        this.factC = factC;
    }

    @Override
    public A getFactA() {
        return factA;
    }

    @Override
    public B getFactB() {
        return factB;
    }

    @Override
    public C getFactC() {
        return factC;
    }

    @Override
    public String toString() {<FILL_FUNCTION_BODY>}

}

        return "{" + factA + ", " + factB + ", " + factC + "}";
    
<methods>public final org.optaplanner.constraint.streams.bavet.common.BavetTupleState getState() ,public final Value_ getStore(int) ,public Value_ removeStore(int) ,public final void setState(org.optaplanner.constraint.streams.bavet.common.BavetTupleState) ,public final void setStore(int, java.lang.Object) <variables>public org.optaplanner.constraint.streams.bavet.common.BavetTupleState state,private java.lang.Object store,private final non-sealed boolean storeIsArray