blob: a546aadaf842f42c91ec8809ee06b513b152937c [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2001, 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.jem.java.internal.impl;
/*
*/
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.*;
import org.eclipse.emf.ecore.impl.EClassImpl;
import org.eclipse.emf.ecore.util.EContentsEList;
import org.eclipse.emf.ecore.util.ECrossReferenceEList;
import org.eclipse.jem.internal.java.instantiation.IInstantiationInstance;
import org.eclipse.jem.java.*;
/**
* @generated
*/
public class JavaDataTypeImpl extends EClassImpl implements JavaDataType {
static final String FALSE = "false";
static final String DOUBLE_ZERO = "0.0";
static final String FLOAT_ZERO = "0.0f";
static final String CHAR_ZERO = "'0'";
static final String ZERO = "0";
private int primitive_type = PRIM_NOT_ID;
protected JavaDataTypeImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected EClass eStaticClass() {
return JavaRefPackage.Literals.JAVA_DATA_TYPE;
}
/**
* Return the default string representing the default value of the primitive.
*/
public String getDefaultValueString() {
String typeName = getJavaName();
if (typeName.equals(PRIM_BOOLEAN_NAME))
return FALSE;
if (typeName.equals(PRIM_DOUBLE_NAME))
return DOUBLE_ZERO;
if (typeName.equals(PRIM_FLOAT_NAME))
return FLOAT_ZERO;
if (typeName.equals(PRIM_CHARACTER_NAME))
return CHAR_ZERO;
return ZERO;
}
public String getJavaName() {
return getName();
}
public JavaDataType getPrimitive() {
return this;
}
/* (non-Javadoc)
* @see org.eclipse.jem.java.JavaHelpers#getPrimitiveID()
*/
public int getPrimitiveID() {
if (primitive_type == PRIM_NOT_ID) {
String name = getName();
if (name.equals(PRIM_BOOLEAN_NAME))
primitive_type = PRIM_BOOLEAN_ID;
if (name.equals(PRIM_CHARACTER_NAME))
primitive_type = PRIM_CHARACTER_ID;
if (name.equals(PRIM_BYTE_NAME))
primitive_type = PRIM_BYTE_ID;
if (name.equals(PRIM_SHORT_NAME))
primitive_type = PRIM_SHORT_ID;
if (name.equals(PRIM_INTEGER_NAME))
primitive_type = PRIM_INTEGER_ID;
if (name.equals(PRIM_LONG_NAME))
primitive_type = PRIM_LONG_ID;
if (name.equals(PRIM_FLOAT_NAME))
primitive_type = PRIM_FLOAT_ID;
if (name.equals(PRIM_DOUBLE_NAME))
primitive_type = PRIM_DOUBLE_ID;
}
return primitive_type;
}
public String getSimpleName() {
return getName();
}
public String getQualifiedName() {
return getJavaName();
}
public JavaClass getWrapper() {
String wrapperName = getWrapperQualifiedName();
if (wrapperName != null) {
return (JavaClass) JavaRefFactory.eINSTANCE.reflectType(wrapperName, this);
}
return null;
}
/**
* getWrapper method comment.
*/
protected String getWrapperQualifiedName() {
switch (getPrimitiveID()) {
case PRIM_INTEGER_ID:
return INTEGER_NAME;
case PRIM_CHARACTER_ID:
return CHARACTER_NAME;
case PRIM_BOOLEAN_ID:
return BOOLEAN_NAME;
case PRIM_BYTE_ID:
return BYTE_NAME;
case PRIM_SHORT_ID:
return SHORT_NAME;
case PRIM_LONG_ID:
return LONG_NAME;
case PRIM_FLOAT_ID:
return FLOAT_NAME;
case PRIM_DOUBLE_ID:
return DOUBLE_NAME;
default:
return null;
}
}
/*
* JavaHelpers.isArray() - array types are always JavaClasses, even if their component type is
* a primitive data type. Return false.
*/
public boolean isArray() {
return false;
}
/**
* Can an object of the passed in class be assigned to an
* object of this class? In the case of primitives, are they the same.
*/
public boolean isAssignableFrom(EClassifier aClass) {
return this == aClass;
}
/**
* See if this is valid object of this type.
*/
public boolean isInstance(Object o) {
return o instanceof IInstantiationInstance ? isAssignableFrom(((IInstantiationInstance) o).getJavaType()) : false;
}
public boolean isPrimitive() {
return true;
}
/* (non-Javadoc)
* @see org.eclipse.jem.java.JavaHelpers#getQualifiedNameForReflection()
*/
public String getQualifiedNameForReflection() {
return getJavaName();
}
@Override
public EList<EObject> eContents()
{
if (eContents == null)
{
eContents = EContentsEList.createEContentsEList(this);
}
return eContents;
}
@Override
public EList<EObject> eCrossReferences()
{
if (eCrossReferences == null)
{
eCrossReferences = ECrossReferenceEList.createECrossReferenceEList(this);
}
return eCrossReferences;
}
}