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 voidCopies all node metadata from the other node to this oneMap<?,?> default Map<?,?> Returns an unmodifiable view of the current node metadata.default <T> TgetNodeMetaData(Object key) Gets the node metadata.default <T> TgetNodeMetaData(Object key, Function<?, ? extends T> valFn) Gets the node metadata.default ObjectputNodeMetaData(Object key, Object value) Sets the node metadata but allows overwriting values.default voidremoveNodeMetaData(Object key) Removes a node metadata entry.voidsetMetaDataMap(Map<?, ?> metaDataMap) default voidsetNodeMetaData(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
-