/******************************************************************************* * Copyright (c) 2000, 2011 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.jdi.internal; import com.sun.jdi.PrimitiveType; /** * this class implements the corresponding interfaces declared by the JDI * specification. See the com.sun.jdi package for more information. * */ public abstract class PrimitiveTypeImpl extends TypeImpl implements PrimitiveType { /** * Creates new instance. */ public PrimitiveTypeImpl(String description, VirtualMachineImpl vmImpl, String name, String signature) { super(description, vmImpl, name, signature); } /** * Creates new instance based on primitive signature. */ public static PrimitiveTypeImpl create(VirtualMachineImpl vmImpl, String signature) { // Notice that Primitive Types are not stored or cached because they // don't 'remember' any information. // See JNI 1.1 Specification, Table 3-2 Java VM Type Signatures. switch (signature.charAt(0)) { case 'Z': return new BooleanTypeImpl(vmImpl); case 'B': return new ByteTypeImpl(vmImpl); case 'C': return new CharTypeImpl(vmImpl); case 'S': return new ShortTypeImpl(vmImpl); case 'I': return new IntegerTypeImpl(vmImpl); case 'J': return new LongTypeImpl(vmImpl); case 'F': return new FloatTypeImpl(vmImpl); case 'D': return new DoubleTypeImpl(vmImpl); } throw new InternalError( JDIMessages.PrimitiveTypeImpl_Invalid_primitive_signature____1 + signature + JDIMessages.PrimitiveTypeImpl___2); // } /** * @returns primitive type tag. */ public abstract byte tag(); /** * @return Returns modifier bits. */ @Override public int modifiers() { throw new InternalError( JDIMessages.PrimitiveTypeImpl_A_PrimitiveType_does_not_have_modifiers_3); } /* * (non-Javadoc) * * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object obj) { return obj instanceof PrimitiveTypeImpl && tag() == ((PrimitiveTypeImpl) obj).tag() && virtualMachine().equals( ((PrimitiveTypeImpl) obj).virtualMachine()); } }