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 ofAstAction
andAstHandler
provide 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 C
addActionHandler
(H handler) protected final C
addActionHandlers
(@NotNull H[]... handlers) private A
protected H
getHandler
(@NotNull Class<?> nodeClass) protected H
getHandler
(N node) protected final void
processChildren
(N node, @NotNull BiConsumer<N, A> processor) protected void
processNode
(N node, boolean withChildren, @NotNull BiConsumer<N, A> processor) Node processing called for every node being processedprotected final <R> R
processNodeOnly
(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
-