blob: ab44015decd2b76585764e790cf56c070f2d85f8 [file] [log] [blame]
// 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;
/**
* Instances of the class {@code DartAnnotation} represent metadata that can be associated with an
* AST node.
*
* <pre>
* metadata ::=
* annotation*
*
* annotation ::=
* '@' qualified ('.' identifier)? arguments?
* </pre>
*/
public class DartAnnotation extends DartNode {
private DartExpression name;
private NodeList<DartExpression> arguments = NodeList.create(this);
public DartAnnotation(DartExpression name, List<DartExpression> arguments) {
this.name = becomeParentOf(name);
if (arguments != null) {
this.arguments.addAll(arguments);
}
}
@Override
public <R> R accept(ASTVisitor<R> visitor) {
return visitor.visitAnnotation(this);
}
public DartExpression getName() {
return name;
}
public NodeList<DartExpression> getArguments() {
return arguments;
}
@Override
public void visitChildren(ASTVisitor<?> visitor) {
safelyVisitChild(name, visitor);
arguments.accept(visitor);
}
}