| /******************************************************************************* |
| * Copyright (c) 2000, 2003 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Common Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/cpl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.jdt.core.dom; |
| /** |
| * Abstract base class of all type AST node types. A type node represents a |
| * reference to a primitive type (including void), to a named class or |
| * interface type, or to an array type. |
| * <p> |
| * <pre> |
| * Type: |
| * PrimitiveType |
| * SimpleType |
| * ArrayType |
| * PrimitiveType: |
| * <b>byte</b> |
| * <b>short</b> |
| * <b>char</b> |
| * <b>int</b> |
| * <b>long</b> |
| * <b>float</b> |
| * <b>double</b> |
| * <b>boolean</b> |
| * <b>void</b> |
| * SimpleType: |
| * TypeName |
| * ArrayType: |
| * Type <b>[</b> <b>]</b> |
| * </pre> |
| * </p> |
| * |
| * @since 2.0 |
| */ |
| public abstract class Type extends ASTNode { |
| /** |
| * Creates a new AST node for a type owned by the given AST. |
| * <p> |
| * N.B. This constructor is package-private. |
| * </p> |
| * |
| * @param ast the AST that is to own this node |
| */ |
| Type(AST ast) { |
| super(ast); |
| } |
| /** |
| * Returns whether this type is a primitive type |
| * (<code>PrimitiveType</code>). |
| * |
| * @return <code>true</code> if this is a primitive type, and |
| * <code>false</code> otherwise |
| */ |
| public final boolean isPrimitiveType() { |
| return (this instanceof PrimitiveType); |
| } |
| /** |
| * Returns whether this type is a simple type |
| * (<code>SimpleType</code>). |
| * |
| * @return <code>true</code> if this is a simple type, and |
| * <code>false</code> otherwise |
| */ |
| public final boolean isSimpleType() { |
| return (this instanceof SimpleType); |
| } |
| /** |
| * Returns whether this type is an array type |
| * (<code>ArrayType</code>). |
| * |
| * @return <code>true</code> if this is an array type, and |
| * <code>false</code> otherwise |
| */ |
| public final boolean isArrayType() { |
| return (this instanceof ArrayType); |
| } |
| /** |
| * Resolves and returns the binding for this type. |
| * <p> |
| * Note that bindings are generally unavailable unless requested when the |
| * AST is being built. |
| * </p> |
| * |
| * @return the type binding, or <code>null</code> if the binding cannot be |
| * resolved |
| */ |
| public final ITypeBinding resolveBinding() { |
| return getAST().getBindingResolver().resolveType(this); |
| } |
| // JSR-014 |
| // /** |
| // * Returns whether this type is a parameterized type |
| // * (<code>ParameterizedType</code>). |
| // * |
| // * @return <code>true</code> if this is a parameterized type, and |
| // * <code>false</code> otherwise |
| // */ |
| // public final boolean isParameterizedType() { |
| // return (this instanceof ParameterizedType); |
| // } |
| // public IBinding resolvedType(); |
| } |
| //// JSR-014 |
| //public class ParameterizedType extends Type { |
| // public ParameterizedType(AST ast) { |
| // super(ast); |
| // } |
| // |
| // public Type getGenericType(); |
| // public void setGenericType(Type genericType); |
| // |
| // public NodeList<Type> parameters(); |
| //} |