| /******************************************************************************* |
| * Copyright (c) 2000, 2005 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types; |
| |
| import org.eclipse.jdt.core.IJavaProject; |
| |
| |
| public final class PrimitiveType extends TType { |
| |
| /** Type code for the primitive type "int". */ |
| public static final int INT = 0; |
| /** Type code for the primitive type "char". */ |
| public static final int CHAR = 1; |
| /** Type code for the primitive type "boolean". */ |
| public static final int BOOLEAN = 2; |
| /** Type code for the primitive type "short". */ |
| public static final int SHORT = 3; |
| /** Type code for the primitive type "long". */ |
| public static final int LONG = 4; |
| /** Type code for the primitive type "float". */ |
| public static final int FLOAT = 5; |
| /** Type code for the primitive type "double". */ |
| public static final int DOUBLE = 6; |
| /** Type code for the primitive type "byte". */ |
| public static final int BYTE = 7; |
| |
| static final String[] NAMES= { |
| "int", //$NON-NLS-1$ |
| "char", //$NON-NLS-1$ |
| "boolean", //$NON-NLS-1$ |
| "short", //$NON-NLS-1$ |
| "long", //$NON-NLS-1$ |
| "float", //$NON-NLS-1$ |
| "double", //$NON-NLS-1$ |
| "byte"}; //$NON-NLS-1$ |
| |
| private int fId; |
| |
| protected PrimitiveType(TypeEnvironment environment, int id, String signature) { |
| super(environment, signature); |
| fId= id; |
| } |
| |
| public int getId() { |
| return fId; |
| } |
| |
| public int getKind() { |
| return PRIMITIVE_TYPE; |
| } |
| |
| protected boolean doEquals(TType type) { |
| return fId == ((PrimitiveType)type).fId; |
| } |
| |
| protected boolean doCanAssignTo(TType lhs) { |
| if (lhs.getKind() != PRIMITIVE_TYPE) { |
| if (lhs.getKind() == STANDARD_TYPE) { |
| IJavaProject javaProject= ((StandardType)lhs).getJavaElementType().getJavaProject(); |
| return getEnvironment().createBoxed(this, javaProject).canAssignTo(lhs); |
| } |
| return false; |
| } |
| |
| switch (((PrimitiveType)lhs).fId) { |
| case BOOLEAN : |
| case BYTE : |
| case CHAR : |
| return false; |
| case DOUBLE : |
| switch (fId) { |
| case BYTE : |
| case CHAR : |
| case SHORT : |
| case INT : |
| case LONG : |
| case FLOAT : |
| return true; |
| default : |
| return false; |
| } |
| case FLOAT : |
| switch (fId) { |
| case BYTE : |
| case CHAR : |
| case SHORT : |
| case INT : |
| case LONG : |
| return true; |
| default : |
| return false; |
| } |
| case LONG : |
| switch (fId) { |
| case BYTE : |
| case CHAR : |
| case SHORT : |
| case INT : |
| return true; |
| default : |
| return false; |
| } |
| case INT : |
| switch (fId) { |
| case BYTE : |
| case CHAR : |
| case SHORT : |
| return true; |
| default : |
| return false; |
| } |
| case SHORT : |
| return (fId == BYTE); |
| } |
| return false; |
| } |
| |
| public String getName() { |
| return NAMES[fId]; |
| } |
| |
| protected String getPlainPrettySignature() { |
| return NAMES[fId]; |
| } |
| } |