blob: 3a27b6e2d8052ed52ef7348c1234c00e95a26b9a [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;
/**
* Implements the library directive.
*/
public class DartLibraryDirective extends DartDirective {
private DartExpression name;
public DartLibraryDirective(DartExpression name) {
this.name = becomeParentOf(name);
}
public DartExpression getName() {
return name;
}
public String getLibraryName() {
if (name == null) {
return null;
} else if (name instanceof DartStringLiteral) {
// TODO(brianwilkerson) Remove this case once the obsolete format is no longer supported.
return ((DartStringLiteral) name).getValue();
} else {
return name.toSource();
}
}
public boolean isObsoleteFormat() {
// TODO(brianwilkerson) Remove this method once the obsolete format is no longer supported.
return name instanceof DartStringLiteral;
}
@Override
public void visitChildren(ASTVisitor<?> visitor) {
super.visitChildren(visitor);
safelyVisitChild(name, visitor);
}
@Override
public <R> R accept(ASTVisitor<R> visitor) {
return visitor.visitLibraryDirective(this);
}
}