Package org.codehaus.groovy.ast
Interface NodeMetaDataHandler
- All Known Implementing Classes:
AbstractGinqExpression
,AnnotatedNode
,AnnotationConstantExpression
,AnnotationNode
,ArgumentListExpression
,ArrayExpression
,AssertStatement
,ASTNode
,AttributeExpression
,BinaryExpression
,BitwiseNegationExpression
,BlockStatement
,BooleanExpression
,BreakStatement
,BytecodeExpression
,BytecodeSequence
,CaseStatement
,CastExpression
,CatchStatement
,ClassExpression
,ClassNode
,ClosureExpression
,ClosureListExpression
,CompareIdentityExpression
,CompareToNullExpression
,CompileUnit
,ConstantExpression
,ConstructorCallExpression
,ConstructorNode
,ContinueStatement
,DataSourceExpression
,DeclarationExpression
,DecompiledClassNode
,DoWhileStatement
,ElvisOperatorExpression
,EmptyExpression
,EmptyStatement
,EnumConstantClassNode
,Expression
,ExpressionAsVariableSlot
,ExpressionStatement
,ExtensionMethodNode
,FieldExpression
,FieldNode
,FilterExpression
,ForStatement
,FromExpression
,GenericsType
,GinqExpression
,GroupExpression
,GStringExpression
,HavingExpression
,IfStatement
,ImportNode
,InnerClassNode
,InterfaceHelperClassNode
,JoinExpression
,LambdaExpression
,LimitExpression
,ListExpression
,ListOfExpressionsExpression
,MapEntryExpression
,MapExpression
,MethodCallExpression
,MethodNode
,MethodPointerExpression
,MethodReferenceExpression
,MixinNode
,ModifierNode
,ModuleNode
,NamedArgumentListExpression
,NotExpression
,OnExpression
,OrderExpression
,PackageNode
,Parameter
,PostfixExpression
,PrefixExpression
,ProcessExpression
,PropertyExpression
,PropertyNode
,RangeExpression
,RecordComponentNode
,ReturnStatement
,SelectExpression
,ShutdownExpression
,SpreadExpression
,SpreadMapExpression
,Statement
,StaticMethodCallExpression
,SwitchStatement
,SynchronizedStatement
,TemporaryVariableExpression
,TernaryExpression
,ThrowStatement
,TryCatchStatement
,TupleExpression
,UnaryMinusExpression
,UnaryPlusExpression
,VariableExpression
,VariableSlotLoader
,WhereExpression
,WhileStatement
,WideningCategories.LowestUpperBoundClassNode
public interface NodeMetaDataHandler
An interface to mark a node being able to handle metadata.
-
Method Summary
Modifier and TypeMethodDescriptiondefault void
Copies all node metadata from the other node to this oneMap<?,
?> default Map<?,
?> Returns an unmodifiable view of the current node metadata.default <T> T
getNodeMetaData
(Object key) Gets the node metadata.default <T> T
getNodeMetaData
(Object key, Function<?, ? extends T> valFn) Gets the node metadata.default Object
putNodeMetaData
(Object key, Object value) Sets the node metadata but allows overwriting values.default void
removeNodeMetaData
(Object key) Removes a node metadata entry.void
setMetaDataMap
(Map<?, ?> metaDataMap) default void
setNodeMetaData
(Object key, Object value) Sets the node metadata.
-
Method Details
-
getNodeMetaData
Gets the node metadata.- Parameters:
key
- the metadata key- Returns:
- the node metadata value for this key
-
getNodeMetaData
Gets the node metadata.- Parameters:
key
- the metadata keyvalFn
- the metadata value supplier- Returns:
- the node metadata value for this key
-
copyNodeMetaData
Copies all node metadata from the other node to this one- Parameters:
other
- the other node
-
setNodeMetaData
Sets the node metadata.- Parameters:
key
- the metadata keyvalue
- the metadata value- Throws:
GroovyBugError
- if key is null or there is already meta data under that key
-
putNodeMetaData
Sets the node metadata but allows overwriting values.- Parameters:
key
- the metadata keyvalue
- the metadata value- Returns:
- the old node metadata value for this key
- Throws:
GroovyBugError
- if key is null
-
removeNodeMetaData
Removes a node metadata entry.- Parameters:
key
- the metadata key- Throws:
GroovyBugError
- if the key is null
-
getNodeMetaData
Returns an unmodifiable view of the current node metadata.- Returns:
- the node metadata. Always not null.
-
getMetaDataMap
Map<?,?> getMetaDataMap() -
setMetaDataMap
-