@Test public void newFunctionReturnsFunkyFunction() { FunctionFactory funkyFactory = new FunctionFactory(null); class Instantiated {} ClassFunction<Instantiated> classFunction = funkyFactory.newFunction(Instantiated.class); assertTrue(classFunction instanceof FunkyFunction); }
public <T> ClassFunction<T> newFunction(Class<T> applyingClass, Object... constructorArguments) { return new FunkyFunction<T>(applyingClass, constructorArguments); }
FunctionFactory { public <T> ClassFunction<T> newFunction(Class<T> applyingClass, Object... constructorArguments) { return new FunkyFunction<T>(applyingClass, constructorArguments); } }
FunctionFactory { public <T> ClassFunction<T> newFunction(Class<T> applyingClass, Object... constructorArguments) { return new FunkyFunction<T>(applyingClass, constructorArguments); } FunctionFactory(InputHolder inputHolder); }
FunctionFactory { public <T> ClassFunction<T> newFunction(Class<T> applyingClass, Object... constructorArguments) { return new FunkyFunction<T>(applyingClass, constructorArguments); } FunctionFactory(InputHolder inputHolder); ClassFunction<T> newFunction(Class<T> applyingClass, Object... constructorArguments); ClassFunctionWithInput<T> newFunctionWithInput(Class<T> applyingClass, Object... constructorArguments); InputHolder getInputHolder(); }
FunctionFactory { public <T> ClassFunction<T> newFunction(Class<T> applyingClass, Object... constructorArguments) { return new FunkyFunction<T>(applyingClass, constructorArguments); } FunctionFactory(InputHolder inputHolder); ClassFunction<T> newFunction(Class<T> applyingClass, Object... constructorArguments); ClassFunctionWithInput<T> newFunctionWithInput(Class<T> applyingClass, Object... constructorArguments); InputHolder getInputHolder();  }