| Index: compiler/java/com/google/dart/compiler/ast/DartClassTypeAlias.java
|
| diff --git a/compiler/java/com/google/dart/compiler/ast/DartClassTypeAlias.java b/compiler/java/com/google/dart/compiler/ast/DartClassTypeAlias.java
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b9fa309f5f6169e9cf9774c7b5605265a62cad76
|
| --- /dev/null
|
| +++ b/compiler/java/com/google/dart/compiler/ast/DartClassTypeAlias.java
|
| @@ -0,0 +1,88 @@
|
| +// Copyright (c) 2013, 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.ClassNodeElement;
|
| +import com.google.dart.compiler.resolver.Element;
|
| +
|
| +import java.util.List;
|
| +
|
| +/**
|
| + * Instances of the class {@code DartClassTypeAlias} represent a class type alias.
|
| + */
|
| +public class DartClassTypeAlias extends DartDeclaration<DartIdentifier> {
|
| + private final NodeList<DartTypeParameter> typeParameters = NodeList.create(this);
|
| + private final Modifiers modifiers;
|
| + private final DartTypeNode superclass;
|
| + private final NodeList<DartTypeNode> mixins = NodeList.create(this);
|
| + private final NodeList<DartTypeNode> interfaces = NodeList.create(this);
|
| + private ClassNodeElement element;
|
| +
|
| + public DartClassTypeAlias(DartIdentifier name, List<DartTypeParameter> typeParameters,
|
| + Modifiers modifiers, DartTypeNode superclass, List<DartTypeNode> mixins,
|
| + List<DartTypeNode> interfaces) {
|
| + super(name);
|
| + this.typeParameters.addAll(typeParameters);
|
| + this.modifiers = modifiers;
|
| + this.superclass = superclass;
|
| + this.mixins.addAll(mixins);
|
| + this.interfaces.addAll(interfaces);
|
| + }
|
| +
|
| + public List<DartTypeParameter> getTypeParameters() {
|
| + return typeParameters;
|
| + }
|
| +
|
| + public Modifiers getModifiers() {
|
| + return modifiers;
|
| + }
|
| +
|
| + public boolean isAbstract() {
|
| + return modifiers.isAbstract();
|
| + }
|
| +
|
| + public DartTypeNode getSuperclass() {
|
| + return superclass;
|
| + }
|
| +
|
| + public NodeList<DartTypeNode> getMixins() {
|
| + return mixins;
|
| + }
|
| +
|
| + public List<DartTypeNode> getInterfaces() {
|
| + return interfaces;
|
| + }
|
| +
|
| + public String getClassName() {
|
| + if (getName() == null) {
|
| + return null;
|
| + }
|
| + return getName().getName();
|
| + }
|
| +
|
| + @Override
|
| + public ClassNodeElement getElement() {
|
| + return element;
|
| + }
|
| +
|
| + @Override
|
| + public void setElement(Element element) {
|
| + this.element = (ClassNodeElement) element;
|
| + }
|
| +
|
| + @Override
|
| + public void visitChildren(ASTVisitor<?> visitor) {
|
| + super.visitChildren(visitor);
|
| + typeParameters.accept(visitor);
|
| + superclass.accept(visitor);
|
| + mixins.accept(visitor);
|
| + interfaces.accept(visitor);
|
| + }
|
| +
|
| + @Override
|
| + public <R> R accept(ASTVisitor<R> visitor) {
|
| + return visitor.visitClassTypeAlias(this);
|
| + }
|
| +}
|
|
|