Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base')
-rw-r--r--plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/FeatureValueProvider.java136
-rw-r--r--plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/IJavaDataTypeInstance.java23
-rw-r--r--plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/IJavaInstance.java68
-rw-r--r--plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/IJavaObjectInstance.java23
-rw-r--r--plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/InstantiationBaseMessages.java29
-rw-r--r--plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaDataTypeInstance.java34
-rw-r--r--plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaFactoryHandler.java60
-rw-r--r--plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaInstance.java290
-rw-r--r--plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaInstantiation.java110
-rw-r--r--plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaInstantiationHandlerFactoryAdapter.java50
-rw-r--r--plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaObjectInstance.java31
-rw-r--r--plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/ParseTreeAllocationInstantiationVisitor.java505
-rw-r--r--plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/messages.properties12
13 files changed, 0 insertions, 1371 deletions
diff --git a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/FeatureValueProvider.java b/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/FeatureValueProvider.java
deleted file mode 100644
index 8d96925fb..000000000
--- a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/FeatureValueProvider.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * 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.internal.instantiation.base;
-/*
-
-
- */
-
-import java.util.Iterator;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-/**
- * Implementers of this interface (an EMF EObject subclass) provide a visiter
- * capability to the set features on the EObject. This way only the set features
- * are presented to the visitor. This can save a lot of time.
- *
- * @since 1.1.0
- */
-public interface FeatureValueProvider {
-
- /**
- * A helper class for FeatureValueProvider.
- *
- * @see FeatureValueProviderHelper#visitSetFeatures(EObject, Visitor)
- *
- * @since 1.1.0
- */
- public static class FeatureValueProviderHelper {
-
- /**
- * A helper to handle where the object may or may not be
- * implement FeatureValueProvider. This way it can be a
- * common access to do it.
- *
- * @param eobject
- * @param visitor
- * @return
- *
- * @since 1.1.0
- */
- public static Object visitSetFeatures(EObject eobject, Visitor visitor) {
- if (eobject instanceof FeatureValueProvider)
- return ((FeatureValueProvider)eobject).visitSetFeatures(visitor);
- else {
- // Not a FeatureValueProvider, so do normal.
- Iterator features = eobject.eClass().getEAllStructuralFeatures().iterator();
- while(features.hasNext()){
- EStructuralFeature sf = (EStructuralFeature)features.next();
- if(eobject.eIsSet(sf)){
- Object result = visitor.isSet(sf, eobject.eGet(sf));
- if (result != null)
- return result;
- }
- }
- return null;
- }
- }
-
- /**
- * Answers whether any feature is set or not.
- * <p>
- * <b>Note:</b> This SHOULD NOT be used as a test before deciding whether to do visitSetFeatures or not. It is more efficient to just call
- * visitSetFeatures. It should be used only to see if any features are set.
- *
- * @param eobject
- * @return
- *
- * @since 1.1.0
- */
- public static boolean isAnyFeatureSet(EObject eobject) {
- if (eobject instanceof FeatureValueProvider)
- return ((FeatureValueProvider)eobject).isAnyFeatureSet();
- else {
- // Not a FeatureValueProvider, so do normal.
- Iterator features = eobject.eClass().getEAllStructuralFeatures().iterator();
- while(features.hasNext()){
- EStructuralFeature sf = (EStructuralFeature)features.next();
- if(eobject.eIsSet(sf)){
- return true;
- }
- }
- return false;
- }
- }
-
- private FeatureValueProviderHelper() {
- }
- }
-
- /**
- * The interface for the visiter callback.
- *
- * @since 1.1.0
- */
- public interface Visitor{
- /**
- * Called for each set feature on the FeatureValueProvider.
- *
- * @param feature
- * @param value
- * @return <code>null</code> to continue to next setting, or a value to stop visiting and return that value be the real exception.
- * @since 1.1.0
- */
- Object isSet(EStructuralFeature feature, Object value);
- }
-
- /**
- * Visit the set features.
- * @param aVisitor
- * @param <code>null</code> if all settings visited, or the value returned from the visit (isSet) that returned a non-nullSe.
- * @since 1.1.0
- */
- public Object visitSetFeatures(Visitor aVisitor);
-
- /**
- * Answers whether any feature is set or not.
- * <p>
- * <b>Note:</b> This SHOULD NOT be used as a test before deciding whether to do visitSetFeatures or not. It is
- * more efficient to just call visitSetFeatures. It should be used only to see if any features are set.
- *
- * @return <code>true</code> if any features are set.
- *
- * @since 1.1.0
- */
- public boolean isAnyFeatureSet();
-}
diff --git a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/IJavaDataTypeInstance.java b/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/IJavaDataTypeInstance.java
deleted file mode 100644
index 764f77b0d..000000000
--- a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/IJavaDataTypeInstance.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * 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.internal.instantiation.base;
-/*
-
-
- */
-
-/**
- * Interface for instances of java data types.
- */
-
-public interface IJavaDataTypeInstance extends IJavaInstance {
-
-}
diff --git a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/IJavaInstance.java b/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/IJavaInstance.java
deleted file mode 100644
index e304a51da..000000000
--- a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/IJavaInstance.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * 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.internal.instantiation.base;
-/*
-
-
- */
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.jem.internal.instantiation.JavaAllocation;
-import org.eclipse.jem.internal.java.instantiation.IInstantiationInstance;
-/**
- * A common interface for Java instances. It will be
- * shared by Java Objects and Java DataType instances.
- */
-public interface IJavaInstance extends EObject, FeatureValueProvider, IInstantiationInstance {
-
- /**
- * Get the allocation object.
- * @return The allocation object.
- */
- public JavaAllocation getAllocation();
-
- /**
- * Set the allocation for this object instance.
- * @param allocation
- */
- public void setAllocation(JavaAllocation allocation);
-
- /**
- * Return whether the allocation has been set or not.
- * @return <code>true</code> if set.
- */
- public boolean isSetAllocation();
-
- /**
- * Answer true if we are an instance of one of Java's primitive data types.
- * e.g. boolean, char - true otherwise, e.g. java.lang.Boolean
- */
- public boolean isPrimitive();
-
- /**
- * Answer whether this has an implicit allocation.
- * @return <code>true</code> if implicit allocation. <code>false</code> if not set or not implicit.
- *
- * @since 1.2.0
- */
- public boolean isImplicitAllocation();
-
- /**
- * Answer whether this has an parsetree allocation.
- * @return <code>true</code> if parsetree allocation. <code>false</code> if not set or not parsetree.
- *
- * @since 1.2.0
- */
- public boolean isParseTreeAllocation();
-
-
-}
diff --git a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/IJavaObjectInstance.java b/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/IJavaObjectInstance.java
deleted file mode 100644
index 82c2773b9..000000000
--- a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/IJavaObjectInstance.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * 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.internal.instantiation.base;
-/*
-
-
- */
-
-
-/**
- * Interface for java object instances.
- */
-public interface IJavaObjectInstance extends IJavaInstance {
-
-}
diff --git a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/InstantiationBaseMessages.java b/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/InstantiationBaseMessages.java
deleted file mode 100644
index f4524508c..000000000
--- a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/InstantiationBaseMessages.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * 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.jem.internal.instantiation.base;
-
-import org.eclipse.osgi.util.NLS;
-
-public final class InstantiationBaseMessages extends NLS {
-
- private static final String BUNDLE_NAME = "org.eclipse.jem.internal.instantiation.base.messages";//$NON-NLS-1$
-
- private InstantiationBaseMessages() {
- // Do not instantiate
- }
-
- public static String ParseTreeAllocationInstantiationVisitor_CurrentlyThisNotSupported_EXC_;
- public static String ParseTreeAllocationInstantiationVisitor_CannotProcessAnonymousDeclarations_EXC_;
-
- static {
- NLS.initializeMessages(BUNDLE_NAME, InstantiationBaseMessages.class);
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaDataTypeInstance.java b/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaDataTypeInstance.java
deleted file mode 100644
index 884b533a9..000000000
--- a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaDataTypeInstance.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * 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.internal.instantiation.base;
-
-
-/**
- * This is the default instance of a Java Model Datatype (i.e. primitive).
- * It can be created from a string, which becomes the initialization string
- * for the instance. It's toString will be the initialization string.
- *
- * It should not be referenced directly, the IJavaDataTypeInstance interface should be
- * used instead. It is public so that it can be subclassed.
- */
-public class JavaDataTypeInstance extends JavaInstance implements IJavaDataTypeInstance {
-
- protected JavaDataTypeInstance() {
- }
-
- public boolean isPrimitive(){
- return true;
- }
-}
diff --git a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaFactoryHandler.java b/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaFactoryHandler.java
deleted file mode 100644
index ed7ec33e2..000000000
--- a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaFactoryHandler.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 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.internal.instantiation.base;
-/*
-
-
- */
-
-import org.eclipse.emf.ecore.*;
-
-import org.eclipse.jem.java.JavaClass;
-import org.eclipse.jem.java.JavaDataType;
-import org.eclipse.jem.internal.java.instantiation.IInstantiationHandler;
-
-/**
- * Adapter on JavaFactoryImpl to do instantiation.
- */
-public class JavaFactoryHandler implements IInstantiationHandler {
-
- public final static JavaFactoryHandler INSTANCE = new JavaFactoryHandler();
-
- /**
- * Constructor for JavaFactoryAdapter.
- */
- protected JavaFactoryHandler() {
- super();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.java.instantiation.IInstantiationHandler#handlesClass(org.eclipse.emf.ecore.EClass)
- */
- public boolean handlesClass(EClass type) {
- return type instanceof JavaClass || type instanceof JavaDataType;
- // During XMI loading, it can't tell the JavaDataType is different than JavaClass.
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.java.instantiation.IInstantiationHandler#handlesDataType(org.eclipse.jem.java.JavaDataType)
- */
- public boolean handlesDataType(JavaDataType type) {
- return true;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.java.instantiation.IInstantiationHandler#create(org.eclipse.emf.ecore.EClass)
- */
- public EObject create(EClass javaClass) {
- EObject result = javaClass instanceof JavaClass ? (EObject) new JavaObjectInstance() : new JavaDataTypeInstance();
- ((InternalEObject) result).eSetClass(javaClass);
- return result;
- }
-}
diff --git a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaInstance.java b/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaInstance.java
deleted file mode 100644
index f5b149bee..000000000
--- a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaInstance.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.internal.instantiation.base;
-/*
- * $RCSfile$
- * $Revision$ $Date$
- */
-
-import java.util.List;
-
-import org.eclipse.emf.common.util.BasicEList;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.*;
-import org.eclipse.emf.ecore.EStructuralFeature.Internal.DynamicValueHolder;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.emf.ecore.impl.EStructuralFeatureImpl;
-
-import org.eclipse.jem.internal.instantiation.JavaAllocation;
-import org.eclipse.jem.java.JavaHelpers;
-
-/**
- * This is the default instance for java model objects.
- * It should not be referenced directly, the IJavaObjectInstance interface should be
- * used instead. It is public so that it can be subclassed.
- */
-public abstract class JavaInstance extends EObjectImpl implements IJavaInstance {
-
- public JavaHelpers getJavaType(){
- return (JavaHelpers) eClass();
- }
-
- public JavaAllocation getAllocation() {
- return isSetAllocation() ? (JavaAllocation) eGet(JavaInstantiation.getAllocationFeature(this)) : null;
- }
-
- public boolean isImplicitAllocation() {
- return isSetAllocation() && getAllocation().isImplicit();
- }
-
- public boolean isParseTreeAllocation() {
- return isSetAllocation() && getAllocation().isParseTree();
- }
-
- /**
- * Visit the argument with all of the set features in an optimized fashion
- */
- private final static Object NIL = EStructuralFeatureImpl.InternalSettingDelegateSingle.NIL;
- public Object visitSetFeatures(Visitor aVisitor) {
- Object result = null;
- if (eHasSettings()) {
- JavaInstancePropertiesHolder settings = (JavaInstancePropertiesHolder) eSettings();
-
- Object[] setPropertyValues = settings.eSettings();
- if (setPropertyValues != null) {
- List allFeatures = settings.getAllStructuralFeatures();
- for (int i = 0; i < setPropertyValues.length; i++) {
- Object propertyValue = setPropertyValues[i];
- if (propertyValue != null) {
- // <null> is handled by the placeholder NIL. A setting of true null means not set. A setting of NIL means set to null.
- if (propertyValue == NIL)
- propertyValue = null;
- if ((result = aVisitor.isSet((EStructuralFeature) allFeatures.get(i), propertyValue)) != null)
- break;
- }
- }
- }
- }
- return result;
- }
-
- public boolean isAnyFeatureSet() {
- if (eHasSettings()) {
- JavaInstancePropertiesHolder settings = (JavaInstancePropertiesHolder) eSettings();
-
- Object[] setPropertyValues = settings.eSettings();
- if (setPropertyValues != null) {
- for (int i = 0; i < setPropertyValues.length; i++) {
- Object propertyValue = setPropertyValues[i];
- if (propertyValue != null) {
- return true;
- }
- }
- }
- }
- return false;
- }
-
- public boolean isSetAllocation() {
- EReference allocationFeature = JavaInstantiation.getAllocationFeature(this);
- return allocationFeature != null && eIsSet(allocationFeature);
- }
-
- public void setAllocation(JavaAllocation allocation) {
- EReference allocationFeature = JavaInstantiation.getAllocationFeature(this);
- if (allocationFeature != null)
- eSet(allocationFeature, allocation);
- }
-
-
- public String toString() {
- // EObject's toString is too big for us, so we do a customized one.
- StringBuffer result = new StringBuffer(getClass().getName());
- result.append('@');
- result.append(Integer.toHexString(hashCode()));
-
- if (eIsProxy())
- {
- result.append(" (eProxyURI: "); //$NON-NLS-1$
- result.append(eProxyURI());
- result.append(')');
- }
- if(getJavaType() != null){
- result.append('{');
- result.append(getJavaType().getQualifiedName());
- result.append('}');
- }
-
- try {
- JavaAllocation allocation = getAllocation();
- if (allocation != null) {
- result.append(':'); //$NON-NLS-1$
- result.append(allocation.toString());
- }
- } catch (IllegalArgumentException e) {
- } catch (NullPointerException e) {
- // This can occur because sometimes this eClass can't be constructed right and won't have an initstring feature.
- // In that case an NPE is thrown.
- }
- return result.toString();
- }
-
- protected static class JavaInstancePropertiesHolder extends EPropertiesHolderImpl {
- private EList allStructuralFeatures;
-
- public JavaInstancePropertiesHolder() {
- }
-
- public Object[] eSettings() {
- return eSettings;
- }
-
- public EList getAllStructuralFeatures() {
- return allStructuralFeatures;
- }
-
- /*
- * Clear the cache. This is due to
- * structural features have changed.
- */
- public void clearCache() {
- eSettings = null;
- setEContents(null);
- setECrossReferences(null);
- allStructuralFeatures = null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.emf.ecore.impl.EObjectImpl.EPropertiesHolderImpl#allocateSettings(int)
- */
- public void allocateSettings(int maximumDynamicFeatureID) {
- if (allStructuralFeatures == null)
- allStructuralFeatures = getEClass().getEAllStructuralFeatures();
- super.allocateSettings(maximumDynamicFeatureID);
- }
-
-
-
- /* (non-Javadoc)
- * @see org.eclipse.emf.ecore.impl.EObjectImpl.EPropertiesHolderImpl#setEContents(org.eclipse.emf.common.util.EList)
- */
- public void setEContents(EList eContents) {
- if (allStructuralFeatures == null)
- allStructuralFeatures = getEClass().getEAllStructuralFeatures();
- super.setEContents(eContents);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.emf.ecore.impl.EObjectImpl.EPropertiesHolderImpl#setECrossReferences(org.eclipse.emf.common.util.EList)
- */
- public void setECrossReferences(EList eCrossReferences) {
- if (allStructuralFeatures == null)
- allStructuralFeatures = getEClass().getEAllStructuralFeatures();
- super.setECrossReferences(eCrossReferences);
- }
-
- }
-
- protected EPropertiesHolder eProperties()
- {
- if (eProperties == null)
- {
- eProperties = new JavaInstancePropertiesHolder();
- }
- return eProperties;
- }
-
- /**
- * @see org.eclipse.emf.ecore.InternalEObject#eSetClass(EClass)
- */
- public void eSetClass(EClass eClass) {
- super.eSetClass(eClass);
- migrate();
- }
-
- /**
- * @param newEClass New eClass set to. (null) when migrating while not setting a new EClass.
- */
- protected void migrate() {
- // Note: This is extremelly implementation dependent. It may change for any implementation of EMF.
- if (eProperties != null && (eProperties.hasSettings() || eProperties.getEContents() != null || eProperties.getECrossReferences() != null)) {
- // Maybe need to reconstruct settings or clear cache.
- JavaInstancePropertiesHolder properties = (JavaInstancePropertiesHolder) eProperties;
- EList oldAllFeatures = properties.getAllStructuralFeatures();
-
- // See if migration needed.
- if (properties.getEClass().getEAllStructuralFeatures() == oldAllFeatures)
- return; // No migration needed.
-
- Object[] oldSettings = properties.eSettings();
- properties.clearCache(); // Clear the cache so we can rebuild it.
- if (oldSettings == null) {
- return; // It was just either contents or crossrefs, and they have been appropriately cleared.
- }
-
- // It is assumed that any SF that (by identity) is in
- // both the old and the new eClass, then it doesn't have any internal changes. It simply changed position
- // in the settings list. Otherwise, need to see if compatible by same name, and if so, move it.
- eSettings(); // Create new settings
- Object[] newSettings = properties.eSettings();
- int staticFeatureCnt = eStaticFeatureCount();
- for (int oldIndex = 0; oldIndex < oldSettings.length; oldIndex++) {
- if (oldSettings[oldIndex] != null) {
- EStructuralFeature sf = (EStructuralFeature) oldAllFeatures.get(oldIndex+staticFeatureCnt);
- int newIndex = super.eDynamicFeatureID(sf); // To avoid recurse on migrate.
- if (newIndex > -1) {
- moveESetting(oldSettings, newSettings, oldIndex, sf, newIndex);
- } else {
- // See if it exists by name and is compatible.
- EStructuralFeature newSF = properties.getEClass().getEStructuralFeature(sf.getName());
- if (newSF != null && newSF.getClass().equals(sf.getClass()) &&
- newSF.isMany() == sf.isMany() && newSF.isChangeable() == sf.isChangeable()) {
- boolean compatible = newSF.isUnique() == sf.isUnique() || !newSF.isUnique(); // If new is not unique, then doesn't matter if old and new are the same
- if (newSF instanceof EReference) {
- EReference newRef = (EReference) newSF;
- EReference ref = (EReference) sf;
- compatible = newRef.isContainment() == ref.isContainment() && newRef.getEReferenceType().isSuperTypeOf(ref.getEReferenceType());
- } else
- compatible = newSF.getEType().equals(sf.getEType());
-
- if (compatible) {
- newIndex = eDynamicFeatureID(newSF);
- moveESetting(oldSettings, newSettings, oldIndex, newSF, newIndex);
- }
- }
- }
- }
- }
- }
- }
-
- private void moveESetting(Object[] oldSettings, Object[] newSettings, int oldIndex, EStructuralFeature sf, int newIndex) {
- // See if single vs many.
- if (!sf.isMany())
- newSettings[newIndex] = oldSettings[oldIndex]; // Great, we can just move it over.
- else {
- // Many is more difficult. Need to create a new dynamic list of right type, and
- // then just copy over the data from the old one. We create new one by doing a simple eGet.
- // This will construct an empty one with no notifications going out.
- // Note: This is extremelly implementation dependent. We will be throwing away the old
- // oldMany, so it is ok to reuse the actual array of data for the newMany.
- BasicEList newMany = (BasicEList) eGet(sf);
- BasicEList oldMany = (BasicEList) oldSettings[oldIndex];
- newMany.setData(oldMany.size(), oldMany.data());
- }
- }
-
- protected DynamicValueHolder eSettings() {
- migrate();
- return super.eSettings();
- }
-
-}
diff --git a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaInstantiation.java b/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaInstantiation.java
deleted file mode 100644
index 8653a07f7..000000000
--- a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaInstantiation.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * 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.internal.instantiation.base;
-/*
-
-
- */
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-import org.eclipse.jem.java.JavaClass;
-import org.eclipse.jem.internal.java.instantiation.IInstantiationHandlerFactoryAdapter;
-
-/**
- * This class is used to initialize java model instantiation code and to access dynamic features.
- */
-public class JavaInstantiation {
-
-
- public static final String ALLOCATION = "allocation"; //$NON-NLS-1$
-
- /**
- * Get a structural feature from an instance of an IJavaObjectInstance, where the feature
- * is specified by its name.
- */
- public static EStructuralFeature getSFeature(IJavaObjectInstance jobject, String featureName) {
- return jobject.eClass().getEStructuralFeature(featureName);
- }
-
- /**
- * Get a reference from an instance of an IJavaObjectInstance, where the feature
- * is specified by its name.
- */
- public static EReference getReference(IJavaObjectInstance jobject, String featureName) {
- return (EReference) getSFeature(jobject, featureName);
- }
-
- /**
- * Get a structural feature from an instance of an IJavaObjectInstance, where the feature
- * is specified by its URI (e.g. "java:/java.lang#Object/class").
- */
- public static EStructuralFeature getSFeature(IJavaObjectInstance jobject, URI sfURI) {
- return getSFeature((JavaClass) jobject.getJavaType(), sfURI);
- }
-
- /**
- * Get a structural feature from a JavaClass, where the feature
- * is specified by its URI (e.g. "java:/java.lang#Object/class").
- */
- public static EStructuralFeature getSFeature(JavaClass jclass, URI sfURI) {
- return getSFeature(jclass.eResource().getResourceSet(), sfURI);
- }
-
- /**
- * Get a structural feature from a ResourceSet, where the feature
- * is specified by its URI (e.g. "java:/java.lang#Object/class").
- */
- public static EStructuralFeature getSFeature(ResourceSet rset, URI sfURI) {
- return (EStructuralFeature) rset.getEObject(sfURI, true);
- }
-
- /**
- * Get a reference from an instance of an IJavaObjectInstance, where the feature
- * is specified by its URI (e.g. "java:/java.lang#Object/class").
- */
- public static EReference getReference(IJavaObjectInstance jobject, URI sfURI) {
- return (EReference) getSFeature((JavaClass) jobject.getJavaType(), sfURI);
- }
-
- /**
- * Get a reference from a JavaClass, where the feature
- * is specified by its URI (e.g. "java:/java.lang#Object/class").
- */
- public static EReference getReference(JavaClass jclass, URI sfURI) {
- return (EReference) getSFeature(jclass.eResource().getResourceSet(), sfURI);
- }
-
- /**
- * Get a reference from a ResourceSet, where the feature
- * is specified by its URI (e.g. "java:/java.lang#Object/class").
- */
- public static EReference getReference(ResourceSet rset, URI sfURI) {
- return (EReference) rset.getEObject(sfURI, true);
- }
-
- /**
- * Get the allocation Feature for this object. Since it depends
- * on what resource that the metaclass is defined in, we must look for it.
- */
- public static EReference getAllocationFeature(IJavaInstance jinstance) {
- return (EReference) jinstance.eClass().getEStructuralFeature(ALLOCATION);
- }
-
- public static void initialize(ResourceSet rset) {
- if (EcoreUtil.getExistingAdapter(rset, IInstantiationHandlerFactoryAdapter.ADAPTER_KEY) == null)
- rset.eAdapters().add(new JavaInstantiationHandlerFactoryAdapter());
- }
-}
diff --git a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaInstantiationHandlerFactoryAdapter.java b/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaInstantiationHandlerFactoryAdapter.java
deleted file mode 100644
index ebf3ba562..000000000
--- a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaInstantiationHandlerFactoryAdapter.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 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.internal.instantiation.base;
-/*
-
-
- */
-
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-
-import org.eclipse.jem.java.internal.impl.JavaFactoryImpl;
-import org.eclipse.jem.internal.java.instantiation.IInstantiationHandler;
-import org.eclipse.jem.internal.java.instantiation.IInstantiationHandlerFactoryAdapter;
-
-/**
- * This adapter is attached to the resource set for a java model. The
- * JavaXMIFactory will ask for this adapter and ask it for the IInstantiationHandler.
- */
-public class JavaInstantiationHandlerFactoryAdapter extends AdapterImpl implements IInstantiationHandlerFactoryAdapter {
-
- /**
- * Constructor for JavaInstantiationHandlerFactoryAdapter.
- */
- public JavaInstantiationHandlerFactoryAdapter() {
- super();
- }
-
- /**
- * @see org.eclipse.jem.internal.instantiation.IInstantiationHandlerFactoryAdapter#getInstantiationHandler(JavaFactoryImpl)
- */
- public IInstantiationHandler getInstantiationHandler(JavaFactoryImpl factory) {
- return JavaFactoryHandler.INSTANCE;
- }
-
- /**
- * @see org.eclipse.emf.common.notify.Adapter#isAdapterForType(Object)
- */
- public boolean isAdapterForType(Object type) {
- return IInstantiationHandlerFactoryAdapter.ADAPTER_KEY == type;
- }
-
-}
diff --git a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaObjectInstance.java b/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaObjectInstance.java
deleted file mode 100644
index e9f2b2054..000000000
--- a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/JavaObjectInstance.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 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.internal.instantiation.base;
-
-
-/**
- * Java Object Instance implementation.
- * @since 1.1.0.1
- */
-public class JavaObjectInstance extends JavaInstance implements IJavaObjectInstance {
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.instantiation.base.IJavaInstance#isPrimitive()
- */
- public boolean isPrimitive() {
- return false;
- }
-
-}
diff --git a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/ParseTreeAllocationInstantiationVisitor.java b/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/ParseTreeAllocationInstantiationVisitor.java
deleted file mode 100644
index a7c83446c..000000000
--- a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/ParseTreeAllocationInstantiationVisitor.java
+++ /dev/null
@@ -1,505 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 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.internal.instantiation.base;
-
-import java.text.MessageFormat;
-import java.util.List;
-
-import org.eclipse.jem.internal.instantiation.*;
-import org.eclipse.jem.internal.proxy.core.*;
-import org.eclipse.jem.internal.proxy.initParser.tree.*;
-
-/**
- * This is the standard parse visitor for instantiating a bean proxy from a java parse tree allocation.
- * It can be reused, but is not thread-safe.
- *
- * @since 1.0.0
- */
-public class ParseTreeAllocationInstantiationVisitor extends ParseVisitor {
-
- /**
- * The expression that is being created and evaluated.
- */
- private IExpression expression;
-
- /*
- * The next expression type that should be used. It is used when one expression is sending the
- * visitation to the next expression. It will set this to what that expression should be using. This
- * is necessary because the next expression doesn't know what it should be.
- */
- private ForExpression nextExpression = ForExpression.ROOTEXPRESSION;
-
- /**
- * An exception occurred during processing. It is a RuntimeException because
- * it can be thrown at any time. It wrappers another exception. That exception
- * can be retrieved from the cause of the ProcessingException.
- *
- * @see Throwable#getCause()
- * @since 1.0.0
- */
- public static class ProcessingException extends RuntimeException {
-
- /**
- * Comment for <code>serialVersionUID</code>
- *
- * @since 1.1.0
- */
- private static final long serialVersionUID = 1268624222490406643L;
-
- /**
- * @param cause
- *
- * @since 1.0.0
- */
- public ProcessingException(Throwable cause) {
- super(cause);
- }
- }
-
- static final InfixOperator[] INFIXTOPROXY;
- static {
- INFIXTOPROXY = new InfixOperator[PTInfixOperator.VALUES.size()];
- INFIXTOPROXY[PTInfixOperator.AND] = InfixOperator.IN_AND;
- INFIXTOPROXY[PTInfixOperator.CONDITIONAL_AND] = InfixOperator.IN_CONDITIONAL_AND;
- INFIXTOPROXY[PTInfixOperator.CONDITIONAL_OR] = InfixOperator.IN_CONDITIONAL_OR;
- INFIXTOPROXY[PTInfixOperator.DIVIDE] = InfixOperator.IN_DIVIDE;
- INFIXTOPROXY[PTInfixOperator.EQUALS] = InfixOperator.IN_EQUALS;
- INFIXTOPROXY[PTInfixOperator.GREATER] = InfixOperator.IN_GREATER;
- INFIXTOPROXY[PTInfixOperator.GREATER_EQUALS] = InfixOperator.IN_GREATER_EQUALS;
- INFIXTOPROXY[PTInfixOperator.LEFT_SHIFT] = InfixOperator.IN_LEFT_SHIFT;
- INFIXTOPROXY[PTInfixOperator.LESS] = InfixOperator.IN_LESS;
- INFIXTOPROXY[PTInfixOperator.LESS_EQUALS] = InfixOperator.IN_LESS_EQUALS;
- INFIXTOPROXY[PTInfixOperator.MINUS] = InfixOperator.IN_MINUS;
- INFIXTOPROXY[PTInfixOperator.NOT_EQUALS] = InfixOperator.IN_NOT_EQUALS;
- INFIXTOPROXY[PTInfixOperator.OR] = InfixOperator.IN_OR;
- INFIXTOPROXY[PTInfixOperator.PLUS] = InfixOperator.IN_PLUS;
- INFIXTOPROXY[PTInfixOperator.REMAINDER] = InfixOperator.IN_REMAINDER;
- INFIXTOPROXY[PTInfixOperator.RIGHT_SHIFT_SIGNED] = InfixOperator.IN_RIGHT_SHIFT_SIGNED;
- INFIXTOPROXY[PTInfixOperator.RIGHT_SHIFT_UNSIGNED] = InfixOperator.IN_RIGHT_SHIFT_UNSIGNED;
- INFIXTOPROXY[PTInfixOperator.TIMES] = InfixOperator.IN_TIMES;
- INFIXTOPROXY[PTInfixOperator.XOR] = InfixOperator.IN_XOR;
- }
-
- /**
- * A helper method to convert the parse tree's infix operator to the Proxy infix operator.
- *
- * @param operator
- * @return
- *
- * @since 1.0.0
- */
- public static InfixOperator convertPTInfixOperatorToProxyInfixOperator(PTInfixOperator operator) {
- return INFIXTOPROXY[operator.getValue()];
- }
-
- static final PrefixOperator[] PREFIXTOPROXY;
- static {
- PREFIXTOPROXY = new PrefixOperator[PTPrefixOperator.VALUES.size()];
- PREFIXTOPROXY[PTPrefixOperator.COMPLEMENT] = PrefixOperator.PRE_COMPLEMENT;
- PREFIXTOPROXY[PTPrefixOperator.MINUS] = PrefixOperator.PRE_MINUS;
- PREFIXTOPROXY[PTPrefixOperator.NOT] = PrefixOperator.PRE_NOT;
- PREFIXTOPROXY[PTPrefixOperator.PLUS] = PrefixOperator.PRE_PLUS;
- }
-
- /**
- * A helper method to convert the parse tree's prefix operator to the Proxy prefix operator.
- *
- * @param operator
- * @return
- *
- * @since 1.0.0
- */
- public static PrefixOperator convertPTPrefixOperatorToProxyPrefixOperator(PTPrefixOperator operator) {
- return PREFIXTOPROXY[operator.getValue()];
- }
-
- /**
- * Create the visitor with the given registry.
- *
- * @param registry
- *
- * @since 1.0.0
- */
- public ParseTreeAllocationInstantiationVisitor() {
- }
-
- /**
- * Get the current registry.
- *
- * @return
- *
- * @since 1.0.0
- */
- protected final ProxyFactoryRegistry getRegistry() {
- return expression.getRegistry();
- }
-
- /**
- * Get the current expression.
- *
- * @return
- *
- * @since 1.0.0
- */
- protected final IExpression getExpression() {
- return expression;
- }
-
- /**
- * Get the beanproxy for the given expression and registry. It will evaluate immediately.
- *
- * @param expression
- * @param registry
- * @return
- * @throws IllegalStateException
- * @throws ThrowableProxy
- * @throws NoExpressionValueException
- * @throws ProcessingException
- *
- * @since 1.0.0
- */
- public IBeanProxy getBeanProxy(PTExpression expression, ProxyFactoryRegistry registry) throws IllegalStateException, IllegalArgumentException, ThrowableProxy, NoExpressionValueException, ProcessingException {
- this.expression = registry.getBeanProxyFactory().createExpression();
- setNextExpression(ForExpression.ROOTEXPRESSION);
- try {
- expression.accept(this);
- } catch (ProcessingException e) {
- // Handle the most common that make sense to be know distinctly and throw them instead of ProcessingException.
- Throwable t = e.getCause();
- if (t instanceof NoExpressionValueException)
- throw (NoExpressionValueException) t;
- else if (t instanceof IllegalStateException)
- throw (IllegalStateException) t;
- else
- throw e;
- }
-
- return getExpression().getExpressionValue();
- }
-
- /**
- * Using the given expression processor allocate the proxy. It will not evaluate immediately, but just push onto the expression.
- * @param expression
- * @param expressionProcessor
- * @return the ExpressionProxy for the allocation.
- * @throws IllegalStateException
- * @throws IllegalArgumentException
- * @throws ProcessingException
- *
- * @since 1.1.0
- */
- public ExpressionProxy getProxy(PTExpression expression, IExpression expressionProcessor) throws IllegalStateException, IllegalArgumentException, ProcessingException {
- this.expression = expressionProcessor;
- try {
- ExpressionProxy proxy = expressionProcessor.createProxyAssignmentExpression(ForExpression.ROOTEXPRESSION);
- setNextExpression(ForExpression.ASSIGNMENT_RIGHT);
- expression.accept(this);
- return proxy;
- } catch (ProcessingException e) {
- // Handle the most common that make sense to be know distinctly and throw them instead of ProcessingException.
- Throwable t = e.getCause();
- if (t instanceof IllegalStateException)
- throw (IllegalStateException) t;
- else
- throw e;
- }
- }
-
-
- /**
- * Set the next expression type. (i.e. the <code>forExpression</code> field of most of the create expression methods.
- *
- * @param nextExpression
- *
- * @see IExpression#createInfixExpression(int, int, int)
- * @since 1.0.0
- */
- protected final void setNextExpression(ForExpression nextExpression) {
- this.nextExpression = nextExpression;
- }
-
- /**
- * Get the next expression type. (i.e. the <code>forExpression</code> field of most of the create expression methods.
- *
- * @return
- *
- * @see IExpression#createInfixExpression(int, int, int)
- * @since 1.0.0
- */
- protected final ForExpression getNextExpression() {
- return nextExpression;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.instantiation.ParseVisitor#visit(org.eclipse.jem.internal.instantiation.PTAnonymousClassDeclaration)
- */
- public boolean visit(PTAnonymousClassDeclaration node) {
- throw new IllegalArgumentException(MessageFormat.format(InstantiationBaseMessages.ParseTreeAllocationInstantiationVisitor_CannotProcessAnonymousDeclarations_EXC_, new Object[] {node.getDeclaration()}));
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.instantiation.ParseVisitor#visit(org.eclipse.jem.internal.instantiation.PTArrayAccess)
- */
- public boolean visit(PTArrayAccess node) {
- getExpression().createArrayAccess(getNextExpression(), node.getIndexes().size());
- setNextExpression(ForExpression.ARRAYACCESS_ARRAY);
- node.getArray().accept(this);
- List idx = node.getIndexes();
- int s = idx.size();
- for (int i = 0; i < s; i++) {
- setNextExpression(ForExpression.ARRAYACCESS_INDEX);
- ((PTExpression) idx.get(i)).accept(this);
- }
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.instantiation.ParseVisitor#visit(org.eclipse.jem.internal.instantiation.PTArrayCreation)
- */
- public boolean visit(PTArrayCreation node) {
- getExpression().createArrayCreation(getNextExpression(), node.getType(), node.getDimensions().size());
- if (node.getDimensions().isEmpty()) {
- node.getInitializer().accept(this); // Array initializer doesn't require a next expression.
- } else {
- List dims = node.getDimensions();
- int s = dims.size();
- for (int i = 0; i < s; i++) {
- setNextExpression(ForExpression.ARRAYCREATION_DIMENSION);
- ((PTExpression) dims.get(i)).accept(this);
- }
- }
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.instantiation.ParseVisitor#visit(org.eclipse.jem.internal.instantiation.PTArrayInitializer)
- */
- public boolean visit(PTArrayInitializer node) {
- getExpression().createArrayInitializer(node.getExpressions().size());
- List exps = node.getExpressions();
- int s = exps.size();
- for (int i = 0; i < s; i++) {
- setNextExpression(ForExpression.ARRAYINITIALIZER_EXPRESSION);
- ((PTExpression) exps.get(i)).accept(this);
- }
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.instantiation.ParseVisitor#visit(org.eclipse.jem.internal.instantiation.PTBooleanLiteral)
- */
- public boolean visit(PTBooleanLiteral node) {
- getExpression().createPrimitiveLiteral(getNextExpression(), node.isBooleanValue());
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.instantiation.ParseVisitor#visit(org.eclipse.jem.internal.instantiation.PTCastExpression)
- */
- public boolean visit(PTCastExpression node) {
- getExpression().createCastExpression(getNextExpression(), node.getType());
- setNextExpression(ForExpression.CAST_EXPRESSION);
- node.getExpression().accept(this);
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.instantiation.ParseVisitor#visit(org.eclipse.jem.internal.instantiation.PTCharacterLiteral)
- */
- public boolean visit(PTCharacterLiteral node) {
- getExpression().createPrimitiveLiteral(getNextExpression(), node.getCharValue());
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.instantiation.ParseVisitor#visit(org.eclipse.jem.internal.instantiation.PTClassInstanceCreation)
- */
- public boolean visit(PTClassInstanceCreation node) {
- getExpression().createClassInstanceCreation(getNextExpression(), node.getType(), node.getArguments().size());
- List args = node.getArguments();
- int s = args.size();
- for (int i = 0; i < s; i++) {
- setNextExpression(ForExpression.CLASSINSTANCECREATION_ARGUMENT);
- ((PTExpression) args.get(i)).accept(this);
- }
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.instantiation.ParseVisitor#visit(org.eclipse.jem.internal.instantiation.PTConditionalExpression)
- */
- public boolean visit(PTConditionalExpression node) {
- getExpression().createConditionalExpression(getNextExpression());
- setNextExpression(ForExpression.CONDITIONAL_CONDITION);
- node.getCondition().accept(this);
- setNextExpression(ForExpression.CONDITIONAL_TRUE);
- node.getTrue().accept(this);
- setNextExpression(ForExpression.CONDITIONAL_FALSE);
- node.getFalse().accept(this);
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.instantiation.ParseVisitor#visit(org.eclipse.jem.internal.instantiation.PTFieldAccess)
- */
- public boolean visit(PTFieldAccess node) {
- getExpression().createFieldAccess(getNextExpression(), node.getField(), node.getReceiver() != null);
- if (node.getReceiver() != null) {
- setNextExpression(ForExpression.FIELD_RECEIVER);
- node.getReceiver().accept(this);
- }
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.instantiation.ParseVisitor#visit(org.eclipse.jem.internal.instantiation.PTInfixExpression)
- */
- public boolean visit(PTInfixExpression node) {
- getExpression().createInfixExpression(getNextExpression(), convertPTInfixOperatorToProxyInfixOperator(node.getOperator()), node.getExtendedOperands().size());
- setNextExpression(ForExpression.INFIX_LEFT);
- node.getLeftOperand().accept(this);
- setNextExpression(ForExpression.INFIX_RIGHT);
- node.getRightOperand().accept(this);
- List extended = node.getExtendedOperands();
- int s = extended.size();
- for (int i = 0; i < s; i++) {
- setNextExpression(ForExpression.INFIX_EXTENDED);
- ((PTExpression) extended.get(i)).accept(this);
- }
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.instantiation.ParseVisitor#visit(org.eclipse.jem.internal.instantiation.PTInstanceof)
- */
- public boolean visit(PTInstanceof node) {
- getExpression().createInstanceofExpression(getNextExpression(), node.getType());
- setNextExpression(ForExpression.INSTANCEOF_VALUE);
- node.getOperand().accept(this);
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.instantiation.ParseVisitor#visit(org.eclipse.jem.internal.instantiation.PTInvalidExpression)
- */
- public boolean visit(PTInvalidExpression node) {
- throw new IllegalArgumentException(node.getMessage());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.instantiation.ParseVisitor#visit(org.eclipse.jem.internal.instantiation.PTMethodInvocation)
- */
- public boolean visit(PTMethodInvocation node) {
- getExpression().createMethodInvocation(getNextExpression(), node.getName(), node.getReceiver() != null, node.getArguments().size());
- if (node.getReceiver() != null) {
- setNextExpression(ForExpression.METHOD_RECEIVER);
- node.getReceiver().accept(this);
- }
- List args = node.getArguments();
- int s = args.size();
- for (int i = 0; i < s; i++) {
- setNextExpression(ForExpression.METHOD_ARGUMENT);
- ((PTExpression) args.get(i)).accept(this);
- }
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.instantiation.ParseVisitor#visit(org.eclipse.jem.internal.instantiation.PTName)
- */
- public boolean visit(PTName node) {
- // This is special in the PTName can only be used as a type receiver at this time.
- getExpression().createTypeReceiver(node.getName());
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.instantiation.ParseVisitor#visit(org.eclipse.jem.internal.instantiation.PTNullLiteral)
- */
- public boolean visit(PTNullLiteral node) {
- // This is special in the PTName can only be used as a type receiver at this time.
- getExpression().createNull(getNextExpression());
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.instantiation.ParseVisitor#visit(org.eclipse.jem.internal.instantiation.PTNumberLiteral)
- */
- public boolean visit(PTNumberLiteral node) {
- // It is assumed the tokens are trimmed.
- String lit = node.getToken();
- char lastChar = lit.charAt(lit.length()-1);
- if (lastChar == 'l' || lastChar == 'L' ) {
- // It is definitely a long.
- // Using decode so that things like 0x3 will be parsed. parseLong won't recognize those.
- getExpression().createPrimitiveLiteral(getNextExpression(), Long.decode(lit.substring(0, lit.length()-1)).longValue());
- } else if (lastChar == 'F' || lastChar == 'f') {
- // It is definitely a float.
- getExpression().createPrimitiveLiteral(getNextExpression(), Float.parseFloat(lit.substring(0, lit.length()-1)));
- } else if (lastChar == 'D' || lastChar == 'd') {
- // It is definitely a double.
- getExpression().createPrimitiveLiteral(getNextExpression(), Double.parseDouble(lit.substring(0, lit.length()-1)));
- } else if (lit.indexOf('.') != -1 || lit.indexOf('e') != -1 || lit.indexOf('E') != -1) {
- // It is definitely a double. (has a period or an exponent, but does not have an 'f' on the end is always a double).
- getExpression().createPrimitiveLiteral(getNextExpression(), Double.parseDouble(lit.substring(0, lit.length())));
- } else {
- // Using decode so that things like 0x3 will be parsed. parseInt won't recognize those.
- getExpression().createPrimitiveLiteral(getNextExpression(), Integer.decode(lit).intValue());
- }
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.instantiation.ParseVisitor#visit(org.eclipse.jem.internal.instantiation.PTParenthesizedExpression)
- */
- public boolean visit(PTParenthesizedExpression node) {
- node.getExpression().accept(this); // For instantiation purposes, the parenthesis can be ignored.
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.instantiation.ParseVisitor#visit(org.eclipse.jem.internal.instantiation.PTPrefixExpression)
- */
- public boolean visit(PTPrefixExpression node) {
- getExpression().createPrefixExpression(getNextExpression(), convertPTPrefixOperatorToProxyPrefixOperator(node.getOperator()));
- setNextExpression(ForExpression.PREFIX_OPERAND);
- node.getExpression().accept(this);
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.instantiation.ParseVisitor#visit(org.eclipse.jem.internal.instantiation.PTStringLiteral)
- */
- public boolean visit(PTStringLiteral node) {
- getExpression().createProxyExpression(getNextExpression(), getRegistry().getBeanProxyFactory().createBeanProxyWith(node.getLiteralValue()));
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.instantiation.ParseVisitor#visit(org.eclipse.jem.internal.instantiation.PTThisLiteral)
- */
- public boolean visit(PTThisLiteral node) {
- throw new IllegalArgumentException(InstantiationBaseMessages.ParseTreeAllocationInstantiationVisitor_CurrentlyThisNotSupported_EXC_);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jem.internal.instantiation.ParseVisitor#visit(org.eclipse.jem.internal.instantiation.PTTypeLiteral)
- */
- public boolean visit(PTTypeLiteral node) {
- getExpression().createTypeLiteral(getNextExpression(), node.getType());
- return false;
- }
-
-}
diff --git a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/messages.properties b/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/messages.properties
deleted file mode 100644
index d7e1f1615..000000000
--- a/plugins/org.eclipse.jem/javainst/org/eclipse/jem/internal/instantiation/base/messages.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 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
-###############################################################################
-ParseTreeAllocationInstantiationVisitor_CurrentlyThisNotSupported_EXC_ = IWAV0001E Currently "this" is not supported
-ParseTreeAllocationInstantiationVisitor_CannotProcessAnonymousDeclarations_EXC_ = Cannot process anonymous declarations: "{0}"

Back to the top