blob: 1efdbe384d4d3e861e747f5ddbf3f594ded3b2e0 [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 com.google.dart.compiler.resolver.Element;
import com.google.dart.compiler.resolver.LabelElement;
/**
* Represents a Dart statement label.
*/
public class DartLabel extends DartStatement {
// Not visited. Similar to DartDeclaration, but DartDeclaration shouldn't be
// a statement or an expression.
private DartIdentifier label;
private LabelElement element;
private DartStatement statement;
public DartLabel(DartIdentifier label, DartStatement statement) {
this.label = becomeParentOf(label);
this.statement = becomeParentOf(statement);
}
public DartIdentifier getLabel() {
return label;
}
public String getName() {
return label.getName();
}
public DartStatement getStatement() {
return statement;
}
@Override
public LabelElement getElement() {
return element;
}
public void setLabel(DartIdentifier newLabel) {
label = newLabel;
}
@Override
public void setElement(Element element) {
this.element = (LabelElement) element;
}
@Override
public void visitChildren(ASTVisitor<?> visitor) {
safelyVisitChild(label, visitor);
safelyVisitChild(statement, visitor);
}
@Override
public <R> R accept(ASTVisitor<R> visitor) {
return visitor.visitLabel(this);
}
}