Class AstActionHandler<C extends AstActionHandler<C,N,A,H>, N, A extends AstAction<N>, H extends AstHandler<N,A>>
java.lang.Object
com.vladsch.flexmark.util.visitor.AstActionHandler<C,N,A,H>
- Type Parameters:
C- subclass of this class to have functions returning this to have the correct typeN- base node type, this class does not care but in specific handlers it should be a common supertype for all nodesA- action type, subclasses ofAstActionandAstHandlerprovide actual functionalityH- handler to invoke the functionality during AST traversal for specific node
- Direct Known Subclasses:
AttributeProviderAdapter, LinkResolverAdapter, NodeVisitor
public abstract class AstActionHandler<C extends AstActionHandler<C,N,A,H>, N, A extends AstAction<N>, H extends AstHandler<N,A>>
extends Object
Intended to be completed by subclasses for specific node types and node actions
-
Field Summary
FieldsModifier and TypeFieldDescription -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected CaddActionHandler(H handler) protected final CaddActionHandlers(H[]... handlers) private Aprotected HgetHandler(@NotNull Class<?> nodeClass) protected HgetHandler(N node) protected final voidprocessChildren(N node, @NotNull BiConsumer<N, A> processor) protected voidprocessNode(N node, boolean withChildren, @NotNull BiConsumer<N, A> processor) Node processing called for every node being processedprotected final <R> RprocessNodeOnly(N node, R defaultValue, @NotNull BiFunction<N, A, R> processor) Process the node and return value from the processor
-
Field Details
-
customHandlersMap
-
astAdapter
-
-
Constructor Details
-
AstActionHandler
-
-
Method Details
-
addActionHandlers
-
addActionHandler
-
getAction
-
getAction
-
getAction
-
getHandler
-
getHandler
-
getNodeClasses
-
processNode
protected void processNode(@NotNull N node, boolean withChildren, @NotNull @NotNull BiConsumer<N, A> processor) Node processing called for every node being processedOverride this to add customizations to standard processing callback.
- Parameters:
node- node being processedwithChildren- whether to process child nodes if there is no handler for the node typeprocessor- processor to invoke to perform the processing, BiConsumer taking N node, and A action
-
processChildren
-
processNodeOnly
protected final <R> R processNodeOnly(@NotNull N node, R defaultValue, @NotNull @NotNull BiFunction<N, A, R> processor) Process the node and return value from the processor- Type Parameters:
R- type of result returned by processor- Parameters:
node- node to processdefaultValue- default value if no handler is defined for the nodeprocessor- processor to pass the node and handler for processing- Returns:
- result or defaultValue
-