Index: compiler/java/com/google/dart/compiler/ast/DartNodeWithMetadata.java |
=================================================================== |
--- compiler/java/com/google/dart/compiler/ast/DartNodeWithMetadata.java (revision 0) |
+++ compiler/java/com/google/dart/compiler/ast/DartNodeWithMetadata.java (revision 0) |
@@ -0,0 +1,32 @@ |
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+package com.google.dart.compiler.ast; |
+ |
+import java.util.List; |
+ |
+/** |
+ * The abstract class {@code DartNodeWithMetadata} defines the behavior of nodes that can have |
+ * metadata associated with them. |
+ */ |
+public abstract class DartNodeWithMetadata extends DartNode { |
+ private NodeList<DartAnnotation> metadata = NodeList.create(this); |
+ |
+ protected DartNodeWithMetadata() { |
+ super(); |
+ } |
+ |
+ public NodeList<DartAnnotation> getMetadata() { |
+ return metadata; |
+ } |
+ |
+ public void setMetadata(List<DartAnnotation> metadata) { |
+ this.metadata.addAll(metadata); |
+ } |
+ |
+ @Override |
+ public void visitChildren(ASTVisitor<?> visitor) { |
+ metadata.accept(visitor); |
+ } |
+} |