001package daikon.derive.binary; 002 003import daikon.VarInfo; 004import daikon.derive.DerivationFactory; 005import org.checkerframework.checker.nullness.qual.Nullable; 006 007/** Factory to produce BinaryDerivation. */ 008public abstract class BinaryDerivationFactory implements DerivationFactory { 009 010 /** 011 * Create a set of derivations from two base variables. If the base variables aren't worth 012 * deriving from, returns null. 013 * 014 * @param vi1 the first of the two base variables 015 * @param vi2 the second of the two base variables 016 * @return a set of derivations based on two base variables. We allow more than one because two 017 * base variables may have multiple derived variables, per type of derivation. Can also be 018 * null if the two variables have nothing to derive from. 019 */ 020 public abstract BinaryDerivation @Nullable [] instantiate(VarInfo vi1, VarInfo vi2); 021}