class IgniteScalarFunction extends ReflectiveFunctionBase implements ScalarFunction, ImplementableFunction {
    /** Implementor. */
    private final CallImplementor implementor;

    /**
     * Private constructor.
     */
    private IgniteScalarFunction(Method method, CallImplementor implementor) {
        super(method);

        this.implementor = implementor;
    }

    /**
     * Creates {@link ScalarFunction} from given method.
     *
     * @param method Method that is used to implement the function.
     * @return Created {@link ScalarFunction}.
     */
    public static ScalarFunction create(Method method) {<FILL_FUNCTION_BODY>}

    /** {@inheritDoc} */
    @Override public RelDataType getReturnType(RelDataTypeFactory typeFactory) {
        return typeFactory.createJavaType(method.getReturnType());
    }

    /** {@inheritDoc} */
    @Override public CallImplementor getImplementor() {
        return implementor;
    }
}

        assert Modifier.isStatic(method.getModifiers());

        CallImplementor implementor = RexImpTable.createImplementor(
            new ReflectiveCallNotNullImplementor(method), NullPolicy.NONE, false);

        return new IgniteScalarFunction(method, implementor);
    
<no_super_class>