presto-main/src/main/java/io/prestosql/operator/window/WindowAnnotationsParser.java/WindowAnnotationsParser/parse
class WindowAnnotationsParser:    private static SqlWindowFunction parse(Class<? extends WindowFunction> clazz, WindowFunctionSignature window)
    {
        List<TypeVariableConstraint> typeVariables = ImmutableList.of();
        if (!window.typeVariable().isEmpty()) {
            typeVariables = ImmutableList.of(typeVariable(window.typeVariable()));
        }

        List<TypeSignature> argumentTypes = Stream.of(window.argumentTypes())
                .map(type -> parseTypeSignature(type, ImmutableSet.of()))
                .collect(toImmutableList());

        Signature signature = new Signature(
                window.name(),
                typeVariables,
                ImmutableList.of(),
                parseTypeSignature(window.returnType(), ImmutableSet.of()),
                argumentTypes,
                false);

        return new SqlWindowFunction(new ReflectionWindowFunctionSupplier<>(signature, clazz));
    }