class CypherPlugin implements GremlinPlugin {

    private static final ImportCustomizer IMPORTS =
            DefaultImportCustomizer.build()
                                   .addClassImports(CustomPredicate.class)
                                   .addMethodImports(
                                           getDeclaredPublicMethods(CustomPredicate.class))
                                   .addClassImports(CustomFunctions.class)
                                   .addMethodImports(
                                           getDeclaredPublicMethods(CustomFunctions.class))
                                   .create();

    private static List<Method> getDeclaredPublicMethods(Class<?> klass) {<FILL_FUNCTION_BODY>}

    @Override
    public String getName() {
        return "cypher.extra";
    }

    public static GremlinPlugin instance() {
        return new CypherPlugin();
    }

    @Override
    public boolean requireRestart() {
        return true;
    }

    @Override
    public Optional<Customizer[]> getCustomizers(String scriptEngineName) {
        return Optional.of(new Customizer[]{IMPORTS});
    }
}

        Method[] declaredMethods = klass.getDeclaredMethods();
        return Stream.of(declaredMethods)
                     .filter(method -> Modifier.isPublic(method.getModifiers()))
                     .collect(Collectors.toList());
    
<no_super_class>