diff options
Diffstat (limited to 'plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMAbstractBeanTypeProxy.java')
-rw-r--r-- | plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMAbstractBeanTypeProxy.java | 703 |
1 files changed, 0 insertions, 703 deletions
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMAbstractBeanTypeProxy.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMAbstractBeanTypeProxy.java deleted file mode 100644 index 9bf6665c5..000000000 --- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/REMAbstractBeanTypeProxy.java +++ /dev/null @@ -1,703 +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 - *******************************************************************************/ -/* - * $RCSfile: REMAbstractBeanTypeProxy.java,v $ - * $Revision: 1.17 $ $Date: 2006/05/17 20:13:05 $ - */ -package org.eclipse.jem.internal.proxy.remote; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; - -import org.eclipse.jem.internal.proxy.core.*; -import org.eclipse.jem.internal.proxy.common.AmbiguousMethodException; -import org.eclipse.jem.internal.proxy.common.CommandException; -import org.eclipse.jem.internal.proxy.common.remote.Commands; -import org.eclipse.jem.internal.proxy.common.remote.TransmitableArray; - -/** - * This implementation of IBeanTypeProxy is for where the Bean is on a different VM then the IDE - * - * Creation date: (12/3/99 12:29:26 PM) - * - * @author: Joe Winchester - */ -public abstract class REMAbstractBeanTypeProxy implements IREMBeanTypeProxy { - - private Integer fID; - - protected final REMProxyFactoryRegistry fRegistry; - - protected final String fClassname; // This is cached here so that we don't need to go over the line to get it. - - private IBeanTypeProxy fSuperType; // This is cached so as not to have to go over the line for it. - - /** - * Create with a registry and a class. It is protected so that only subclasses and the factory with this REM package can call it. - */ - protected REMAbstractBeanTypeProxy(REMProxyFactoryRegistry aRegistry, Integer anID, String aClassname, IBeanTypeProxy aSuperType) { - fRegistry = aRegistry; - fID = anID; - fClassname = aClassname; - fSuperType = aSuperType; - } - - /** - * equals: Equal if: 1) This proxy == (identity) to the other object This is all that is needed for BeanTypes because we know these are classes, - * there is only one per class, and Class equals is true only for identity. - */ - public boolean equals(Object anObject) { - return super.equals(anObject); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanProxy#sameAs(org.eclipse.jem.internal.proxy.core.IBeanProxy) - */ - public boolean sameAs(IBeanProxy aBeanProxy) { - return this == aBeanProxy; // We can be assured in Remote Proxy that identity of proxy and identity of object are the same. - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.remote.IREMBeanProxy#getID() - */ - public Integer getID() { - return fID; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanProxy#isValid() - */ - public boolean isValid() { - return fID != null; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.remote.IREMBeanProxy#release() - */ - public void release() { - // Clear the id and supertype (supertype is cleared so that - // it won't hold onto it and will let the supertype be GC'd - // if necessary. - - fID = null; - fSuperType = null; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructorProxy(java.lang.String[]) - */ - public IConstructorProxy getConstructorProxy(String[] argumentClassNames) { - if (isInterface()) - return null; // Interfaces don't have ctor's. - - // Turn class names into array of BeanTypes. - IBeanTypeProxy[] argTypes = null; - if (argumentClassNames != null) { - IStandardBeanTypeProxyFactory typeFactory = fRegistry.getBeanTypeProxyFactory(); - argTypes = new IBeanTypeProxy[argumentClassNames.length]; - for (int i = 0; i < argumentClassNames.length; i++) { - IBeanTypeProxy type = argTypes[i] = typeFactory.getBeanTypeProxy(argumentClassNames[i]); - if (type == null) - return null; // Couldn't find the type. - } - } - - return getConstructorProxy(argTypes); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructorProxy(org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[]) - */ - public IConstructorProxy getConstructorProxy(IBeanTypeProxy[] argumentTypes) { - if (isInterface()) - return null; // Interfaces don't have ctor's. - - IREMMethodProxy getCtorMethod = (IREMMethodProxy) REMStandardBeanProxyConstants.getConstants(fRegistry).getClassConstructor(); - - // Create the argument array - Object[] getParms = (argumentTypes != null) ? new Object[] { new TransmitableArray(Commands.CLASS_CLASS, argumentTypes)} : // Get Ctor has - // only one parm, - // the array of - // parm types. - null; - - try { - return (IConstructorProxy) getCtorMethod.invokeWithParms(this, getParms); - } catch (ThrowableProxy e) { - fRegistry.releaseProxy(e); - return null; - } - } - - - /* (non-Javadoc) - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors() - */ - public IConstructorProxy[] getConstructors() { - - if (isInterface()) - return null; // Interfaces don't have ctor's. - - IREMMethodProxy getCtorMethod = (IREMMethodProxy) REMStandardBeanProxyConstants.getConstants(fRegistry).getClassConstructors(); - - try { - IArrayBeanProxy ctors = (IArrayBeanProxy) getCtorMethod.invokeWithParms(this, null); - IBeanProxy[] proxies = ctors.getSnapshot(); - IConstructorProxy[] ctorproxies = new IConstructorProxy[proxies.length]; - System.arraycopy(proxies, 0, ctorproxies, 0, proxies.length); - return ctorproxies; - } catch (ThrowableProxy e) { - fRegistry.releaseProxy(e); - return null; - } - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructorProxy(java.lang.String[]) - */ - public IConstructorProxy getDeclaredConstructorProxy(String[] argumentClassNames) { - if (isInterface()) - return null; // Interfaces don't have ctor's. - - // Turn class names into array of BeanTypes. - IBeanTypeProxy[] argTypes = null; - if (argumentClassNames != null) { - IStandardBeanTypeProxyFactory typeFactory = fRegistry.getBeanTypeProxyFactory(); - argTypes = new IBeanTypeProxy[argumentClassNames.length]; - for (int i = 0; i < argumentClassNames.length; i++) { - IBeanTypeProxy type = argTypes[i] = typeFactory.getBeanTypeProxy(argumentClassNames[i]); - if (type == null) - return null; // Couldn't find the type. - } - } - - return getDeclaredConstructorProxy(argTypes); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructorProxy(org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[]) - */ - public IConstructorProxy getDeclaredConstructorProxy(IBeanTypeProxy[] argumentTypes) { - if (isInterface()) - return null; // Interfaces don't have ctor's. - - IREMMethodProxy getCtorMethod = (IREMMethodProxy) REMStandardBeanProxyConstants.getConstants(fRegistry).getDeclaredClassConstructor(); - - // Create the argument array - Object[] getParms = (argumentTypes != null) ? new Object[] { new TransmitableArray(Commands.CLASS_CLASS, argumentTypes)} : // Get Ctor has - // only one parm, - // the array of - // parm types. - null; - - try { - return (IConstructorProxy) getCtorMethod.invokeWithParms(this, getParms); - } catch (ThrowableProxy e) { - fRegistry.releaseProxy(e); - return null; - } - } - - - /* (non-Javadoc) - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors() - */ - public IConstructorProxy[] getDeclaredConstructors() { - - if (isInterface()) - return null; // Interfaces don't have ctor's. - - IREMMethodProxy getCtorMethod = (IREMMethodProxy) REMStandardBeanProxyConstants.getConstants(fRegistry).getDeclaredClassConstructors(); - - try { - IArrayBeanProxy ctors = (IArrayBeanProxy) getCtorMethod.invokeWithParms(this, null); - IBeanProxy[] proxies = ctors.getSnapshot(); - IConstructorProxy[] ctorproxies = new IConstructorProxy[proxies.length]; - System.arraycopy(proxies, 0, ctorproxies, 0, proxies.length); - return ctorproxies; - } catch (ThrowableProxy e) { - fRegistry.releaseProxy(e); - return null; - } - } - - /* (non-Javadoc) - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors() - */ - public IFieldProxy[] getFields() { - - IREMMethodProxy getFieldsMethod = (IREMMethodProxy) REMStandardBeanProxyConstants.getConstants(fRegistry).getClassGetFields(); - - try { - IArrayBeanProxy fields = (IArrayBeanProxy) getFieldsMethod.invokeWithParms(this, null); - IBeanProxy[] proxies = fields.getSnapshot(); - IFieldProxy[] fieldProxies = new IFieldProxy[proxies.length]; - System.arraycopy(proxies, 0, fieldProxies, 0, proxies.length); - return fieldProxies; - } catch (ThrowableProxy e) { - fRegistry.releaseProxy(e); - return null; - } - } - - /* (non-Javadoc) - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors() - */ - public IFieldProxy[] getDeclaredFields() { - - IREMMethodProxy getDeclaredFieldsMethod = (IREMMethodProxy) REMStandardBeanProxyConstants.getConstants(fRegistry).getClassGetDeclaredFields(); - - try { - IArrayBeanProxy fields = (IArrayBeanProxy) getDeclaredFieldsMethod.invokeWithParms(this, null); - IBeanProxy[] proxies = fields.getSnapshot(); - IFieldProxy[] fieldProxies = new IFieldProxy[proxies.length]; - System.arraycopy(proxies, 0, fieldProxies, 0, proxies.length); - return fieldProxies; - } catch (ThrowableProxy e) { - fRegistry.releaseProxy(e); - return null; - } - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getDeclaredFieldProxy(java.lang.String) - */ - public IFieldProxy getDeclaredFieldProxy(String fieldName) { - return (IFieldProxy) REMStandardBeanProxyConstants.getConstants(fRegistry).getClassGetDeclaredField().invokeCatchThrowableExceptions(this, - fRegistry.getBeanProxyFactory().createBeanProxyWith(fieldName)); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getFieldProxy(java.lang.String) - */ - public IFieldProxy getFieldProxy(String fieldName) { - return ((REMStandardBeanTypeProxyFactory) fRegistry.getBeanTypeProxyFactory()).proxyConstants.getFieldProxy(this,fieldName); - } - - - /* (non-Javadoc) - * @see org.eclipse.jem.internal.proxy.core.IProxyBeanType#getFieldProxy(org.eclipse.jem.internal.proxy.core.IExpression, java.lang.String) - */ - public IProxyField getFieldProxy(IExpression expression, String fieldName) { - REMProxyFactoryRegistry registry = (REMProxyFactoryRegistry) expression.getRegistry(); - return ((REMMethodProxyFactory) registry.getMethodProxyFactory()).getFieldProxy(expression, this, fieldName); - } - - /* (non-Javadoc) - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors() - */ - public IMethodProxy[] getMethods() { - - IREMMethodProxy getMethodsMethod = (IREMMethodProxy) REMStandardBeanProxyConstants.getConstants(fRegistry).getClassMethods(); - - try { - IArrayBeanProxy methods = (IArrayBeanProxy) getMethodsMethod.invokeWithParms(this, null); - IBeanProxy[] proxies = methods.getSnapshot(); - IMethodProxy[] methodProxies = new IMethodProxy[proxies.length]; - System.arraycopy(proxies, 0, methodProxies, 0, proxies.length); - return methodProxies; - } catch (ThrowableProxy e) { - fRegistry.releaseProxy(e); - return null; - } - } - - /* (non-Javadoc) - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructors() - */ - public IMethodProxy[] getDeclaredMethods() { - - IREMMethodProxy getDeclaredMethodsMethod = (IREMMethodProxy) REMStandardBeanProxyConstants.getConstants(fRegistry).getClassDeclaredMethods(); - - try { - IArrayBeanProxy methods = (IArrayBeanProxy) getDeclaredMethodsMethod.invokeWithParms(this, null); - IBeanProxy[] proxies = methods.getSnapshot(); - IMethodProxy[] methodProxies = new IMethodProxy[proxies.length]; - System.arraycopy(proxies, 0, methodProxies, 0, proxies.length); - return methodProxies; - } catch (ThrowableProxy e) { - fRegistry.releaseProxy(e); - return null; - } - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getMethodProxy(java.lang.String) - */ - public IMethodProxy getMethodProxy(String methodName) { - return ((REMStandardBeanTypeProxyFactory) fRegistry.getBeanTypeProxyFactory()).proxyConstants.getMethodProxy(this,methodName,(String[])null); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getMethodProxy(java.lang.String, java.lang.String[]) - */ - public IMethodProxy getMethodProxy(String methodName, String[] argumentClassNames) { - return ((REMStandardBeanTypeProxyFactory) fRegistry.getBeanTypeProxyFactory()).proxyConstants.getMethodProxy(this,methodName,argumentClassNames); - } - - - /* (non-Javadoc) - * @see org.eclipse.jem.internal.proxy.core.IProxyBeanType#getMethodProxy(org.eclipse.jem.internal.proxy.core.IExpression, java.lang.String, org.eclipse.jem.internal.proxy.core.IProxyBeanType[]) - */ - public IProxyMethod getMethodProxy(IExpression expression, String methodName, IProxyBeanType[] parameterTypes) { - REMProxyFactoryRegistry registry = (REMProxyFactoryRegistry) expression.getRegistry(); - return ((REMMethodProxyFactory) registry.getMethodProxyFactory()).getMethodProxy(expression, this, methodName, parameterTypes); - } - - - /* (non-Javadoc) - * @see org.eclipse.jem.internal.proxy.core.IProxyBeanType#getMethodProxy(org.eclipse.jem.internal.proxy.core.IExpression, java.lang.String, java.lang.String[]) - */ - public IProxyMethod getMethodProxy(IExpression expression, String methodName, String[] parameterTypes) { - REMProxyFactoryRegistry registry = (REMProxyFactoryRegistry) expression.getRegistry(); - return ((REMMethodProxyFactory) registry.getMethodProxyFactory()).getMethodProxy(expression, this, methodName, parameterTypes); - } - - public IProxyMethod getMethodProxy(IExpression expression, String methodName) { - return getMethodProxy(expression, methodName, (IProxyBeanType[]) null); - } - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getMethodProxy(java.lang.String, java.lang.String) - */ - public IMethodProxy getMethodProxy(String methodName, String argumentQualifiedTypeName) { - return ((REMStandardBeanTypeProxyFactory) fRegistry.getBeanTypeProxyFactory()).proxyConstants.getMethodProxy(this,methodName,new String[] {argumentQualifiedTypeName}); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getMethodProxy(java.lang.String, org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[]) - */ - public IMethodProxy getMethodProxy(String methodName, IBeanTypeProxy[] argumentTypes) { - return ((REMStandardBeanTypeProxyFactory) fRegistry.getBeanTypeProxyFactory()).proxyConstants.getMethodProxy(this,methodName,argumentTypes); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructorProxy(java.lang.String[]) - */ - public IMethodProxy getDeclaredMethodProxy(String methodName, String[] argumentClassNames) { - - // Turn class names into array of BeanTypes. - IBeanTypeProxy[] argTypes = null; - if (argumentClassNames != null) { - IStandardBeanTypeProxyFactory typeFactory = fRegistry.getBeanTypeProxyFactory(); - argTypes = new IBeanTypeProxy[argumentClassNames.length]; - for (int i = 0; i < argumentClassNames.length; i++) { - IBeanTypeProxy type = argTypes[i] = typeFactory.getBeanTypeProxy(argumentClassNames[i]); - if (type == null) - return null; // Couldn't find the type. - } - } - - return getDeclaredMethodProxy(methodName, argTypes); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getConstructorProxy(org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[]) - */ - public IMethodProxy getDeclaredMethodProxy(String methodName, IBeanTypeProxy[] argumentTypes) { - IREMMethodProxy getDeclaredMethodMethod = (IREMMethodProxy) REMStandardBeanProxyConstants.getConstants(fRegistry).getClassDeclaredMethod(); - IBeanProxy nameProxy = fRegistry.getBeanProxyFactory().createBeanProxyWith(methodName); - // Create the argument array - Object[] getParms = (argumentTypes != null) ? new Object[] { nameProxy, new TransmitableArray(Commands.CLASS_CLASS, argumentTypes)} : new Object[] {nameProxy, null}; - - try { - return (IMethodProxy) getDeclaredMethodMethod.invokeWithParms(this, getParms); - } catch (ThrowableProxy e) { - fRegistry.releaseProxy(e); - return null; - } - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getInvokable(java.lang.String) - */ - public IInvokable getInvokable(String methodName) { - return ((REMStandardBeanTypeProxyFactory) fRegistry.getBeanTypeProxyFactory()).proxyConstants.getInvokable(this,methodName,(String[])null); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getInvokable(java.lang.String, java.lang.String[]) - */ - public IInvokable getInvokable(String methodName, String[] argumentClassNames) { - return ((REMStandardBeanTypeProxyFactory) fRegistry.getBeanTypeProxyFactory()).proxyConstants.getInvokable(this,methodName,argumentClassNames); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getInvokable(java.lang.String, java.lang.String) - */ - public IInvokable getInvokable(String methodName, String argumentQualifiedTypeName) { - return getInvokable(methodName, new String[] { argumentQualifiedTypeName}); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getInvokable(java.lang.String, org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[]) - */ - public IInvokable getInvokable(String methodName, IBeanTypeProxy[] argumentTypes) { - return ((REMStandardBeanTypeProxyFactory) fRegistry.getBeanTypeProxyFactory()).proxyConstants.getInvokable(this,methodName,argumentTypes); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getNullConstructorProxy() - */ - public IConstructorProxy getNullConstructorProxy() { - return getConstructorProxy((IBeanTypeProxy[]) null); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanProxy#getProxyFactoryRegistry() - */ - public ProxyFactoryRegistry getProxyFactoryRegistry() { - return fRegistry; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getSuperBeanTypeProxy() - */ - public IBeanTypeProxy getSuperBeanTypeProxy() { - return fSuperType; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getTypeName() - */ - public String getTypeName() { - return fClassname; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#isArray() - */ - public boolean isArray() { - return false; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#isInterface() - */ - public boolean isInterface() { - return false; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#isPrimitive() - */ - public boolean isPrimitive() { - return false; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#isKindOf(org.eclipse.jem.internal.proxy.core.IBeanTypeProxy) - */ - public boolean isKindOf(IBeanTypeProxy aBeanProxyType) { - return ((IBooleanBeanProxy) REMStandardBeanProxyConstants.getConstants(fRegistry).getClassIsAssignableFrom().invokeCatchThrowableExceptions( - aBeanProxyType, this)).booleanValue(); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#newInstance(java.lang.String) - */ - public IBeanProxy newInstance(String initializationString) throws ThrowableProxy, ClassCastException, InstantiationException { - try { - return ((REMStandardBeanProxyFactory) fRegistry.getBeanProxyFactory()).createBeanProxy(this, initializationString); - } catch (CommandException e) { - ProxyPlugin.getPlugin().getLogger().log(new Status(IStatus.WARNING, ProxyPlugin.getPlugin().getBundle().getSymbolicName(), 0, "", e)); //$NON-NLS-1$ - return null; - } - } - - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ - public String toString() { - return super.toString() + "(" + getTypeName() + ")"; //$NON-NLS-2$//$NON-NLS-1$ - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanProxy#getTypeProxy() - */ - public IBeanTypeProxy getTypeProxy() { - return ((REMStandardBeanTypeProxyFactory) fRegistry.getBeanTypeProxyFactory()).classClass; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanProxy#toBeanString() - */ - public String toBeanString() { - return getTypeName(); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#newInstance() - */ - public IBeanProxy newInstance() throws ThrowableProxy { - return ((REMStandardBeanProxyFactory) fRegistry.getBeanProxyFactory()).createBeanProxy(this); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.remote.IREMBeanProxy#renderBean(org.eclipse.jem.internal.proxy.common.remote.Commands.ValueObject) - */ - public void renderBean(Commands.ValueObject value) { - value.setObjectID(getID().intValue()); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getFormalTypeName() - */ - public String getFormalTypeName() { - return getTypeName(); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getInitializationError() - */ - public String getInitializationError() { - return null; // By default none have an initialization error. There is a special instance for init errors. - } - - /* (non-Javadoc) - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getCompatibleConstructor(org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[]) - */ - public IConstructorProxy getCompatibleConstructor(IBeanTypeProxy[] argumentTypes) throws NoSuchMethodException, AmbiguousMethodException, IllegalAccessException { - if (isInterface()) - return null; // Interfaces don't have ctor's. - - IREMMethodProxy findCompatibleMethod = (IREMMethodProxy) REMStandardBeanProxyConstants.getConstants(fRegistry).getFindCompatibleConstructorMethod(); - - // Create the argument array - Object[] getParms = (argumentTypes != null) ? new Object[] { this, new TransmitableArray(Commands.CLASS_CLASS, argumentTypes)} : new Object[] {this, null}; - - try { - return (IConstructorProxy) findCompatibleMethod.invokeWithParms(this, getParms); - } catch (ThrowableProxy e) { - try { - if (e.getTypeProxy().equals(fRegistry.getBeanTypeProxyFactory().getBeanTypeProxy("java.lang.NoSuchMethodException"))) //$NON-NLS-1$ - throw new NoSuchMethodException(e.getProxyLocalizedMessage()); - else if (e.getTypeProxy().equals(fRegistry.getBeanTypeProxyFactory().getBeanTypeProxy("org.eclipse.jem.internal.proxy.common.AmbiguousMethodException"))) //$NON-NLS-1$ - throw new AmbiguousMethodException(e.getProxyLocalizedMessage()); - else if (e.getTypeProxy().equals(fRegistry.getBeanTypeProxyFactory().getBeanTypeProxy("java.lang.IllegalAccessException"))) //$NON-NLS-1$ - throw new IllegalAccessException(e.getProxyLocalizedMessage()); - ProxyPlugin.getPlugin().getLogger().log(e); - return null; - } finally { - fRegistry.releaseProxy(e); - } - } - } - /* (non-Javadoc) - * @see org.eclipse.jem.internal.proxy.core.IBeanTypeProxy#getCompatibleMethod(java.lang.String, org.eclipse.jem.internal.proxy.core.IBeanTypeProxy[]) - */ - public IMethodProxy getCompatibleMethod(String methodName, IBeanTypeProxy[] argumentTypes) throws NoSuchMethodException, AmbiguousMethodException { - - IREMMethodProxy findCompatibleMethod = (IREMMethodProxy) REMStandardBeanProxyConstants.getConstants(fRegistry).getFindCompatibleMethodMethod(); - IBeanProxy methodNameProxy = fRegistry.getBeanProxyFactory().createBeanProxyWith(methodName); - - // Create the argument array - Object[] getParms = (argumentTypes != null) ? new Object[] { this, methodNameProxy, new TransmitableArray(Commands.CLASS_CLASS, argumentTypes)} : new Object[] {this, methodNameProxy, null}; - - try { - return (IMethodProxy) findCompatibleMethod.invokeWithParms(this, getParms); - } catch (ThrowableProxy e) { - try { - if (e.getTypeProxy().equals(fRegistry.getBeanTypeProxyFactory().getBeanTypeProxy("java.lang.NoSuchMethodException"))) //$NON-NLS-1$ - throw new NoSuchMethodException(e.getProxyLocalizedMessage()); - else if (e.getTypeProxy().equals(fRegistry.getBeanTypeProxyFactory().getBeanTypeProxy("org.eclipse.jem.internal.proxy.common.AmbiguousMethodException"))) //$NON-NLS-1$ - throw new AmbiguousMethodException(e.getProxyLocalizedMessage()); - ProxyPlugin.getPlugin().getLogger().log(e); - return null; - } finally { - fRegistry.releaseProxy(e); - } - } - } - /* (non-Javadoc) - * @see org.eclipse.jem.internal.proxy.core.IProxy#isBeanProxy() - */ - public final boolean isBeanProxy() { - return true; - } - /* (non-Javadoc) - * @see org.eclipse.jem.internal.proxy.core.IProxy#isExpressionProxy() - */ - public final boolean isExpressionProxy() { - return false; - } -} |