class LinkResolverAdapter extends AstActionHandler<LinkResolverAdapter, Node, LinkResolvingHandler.LinkResolvingVisitor<Node>, LinkResolvingHandler<Node>> implements LinkResolvingHandler.LinkResolvingVisitor<Node> {
    protected static final LinkResolvingHandler[] EMPTY_HANDLERS = new LinkResolvingHandler[0];

    public LinkResolverAdapter(LinkResolvingHandler... handlers) {
        super(Node.AST_ADAPTER);
        super.addActionHandlers(handlers);
    }

    public LinkResolverAdapter(LinkResolvingHandler[]... handlers) {
        super(Node.AST_ADAPTER);
        //noinspection unchecked
        super.addActionHandlers(handlers);
    }

    public LinkResolverAdapter(Collection<LinkResolvingHandler> handlers) {
        super(Node.AST_ADAPTER);
        addHandlers(handlers);
    }

    // add handler variations
    public LinkResolverAdapter addHandlers(Collection<LinkResolvingHandler> handlers) {
        return super.addActionHandlers(handlers.toArray(EMPTY_HANDLERS));
    }

    public LinkResolverAdapter addHandlers(LinkResolvingHandler[] handlers) {
        return super.addActionHandlers(handlers);
    }

    public LinkResolverAdapter addHandlers(LinkResolvingHandler[]... handlers) {
        //noinspection unchecked
        return super.addActionHandlers(handlers);
    }

    public LinkResolverAdapter addHandler(LinkResolvingHandler handler) {
        //noinspection unchecked
        return super.addActionHandler(handler);
    }

    @Override
    public ResolvedLink resolveLink(Node node, LinkResolverBasicContext context, ResolvedLink link) {<FILL_FUNCTION_BODY>}
}

        return processNodeOnly(node, link, (n, handler) -> handler.resolveLink(n, context, link));
    
<methods>public void <init>(@NotNull AstNode<Node>) ,public LinkResolvingHandler.@Nullable LinkResolvingVisitor<Node> getAction(@NotNull Node) ,public LinkResolvingHandler.@Nullable LinkResolvingVisitor<Node> getAction(@NotNull Class<?>) ,public @NotNull Set<Class<? extends Node>> getNodeClasses() <variables>private final non-sealed @NotNull AstNode<Node> astAdapter,private final @NotNull Map<Class<? extends Node>,LinkResolvingHandler<Node>> customHandlersMap