Function newFunction(List<Expression> parameters, Literal fallback) throws Exception { // cache lookup if (FunctionExpression.class.isAssignableFrom(clazz)) { FunctionExpression function = (FunctionExpression) clazz.newInstance(); if (parameters != null) { function.setParameters(parameters); } if (fallback != null) { function.setFallbackValue(fallback); } return function; } if (FunctionImpl.class.isAssignableFrom(clazz)) { FunctionImpl function = (FunctionImpl) clazz.newInstance(); if (parameters != null) { function.setParameters(parameters); } if (fallback != null) { function.setFallbackValue(fallback); } return function; } // Function function = (Function) functionClass.newInstance(); Constructor<Function> constructor = clazz.getConstructor(new Class[] {List.class, Literal.class}); return constructor.newInstance(parameters, fallback); } }
Function newFunction(List<Expression> parameters, Literal fallback) throws Exception { // cache lookup if (FunctionExpression.class.isAssignableFrom(clazz)) { FunctionExpression function = (FunctionExpression) clazz.newInstance(); if(parameters != null) { function.setParameters(parameters); } if( fallback != null && function instanceof ClassificationFunction){ ClassificationFunction classification = (ClassificationFunction) function; classification.setFallbackValue( fallback ); } return function; } if(FunctionImpl.class.isAssignableFrom(clazz)) { FunctionImpl function = (FunctionImpl) clazz.newInstance(); if(parameters != null){ function.setParameters( (List) parameters ); } if(fallback != null) function.setFallbackValue( fallback ); return function; } //Function function = (Function) functionClass.newInstance(); Constructor<Function> constructor = clazz.getConstructor( new Class[]{ List.class, Literal.class} ); return constructor.newInstance( parameters, fallback ); } }