/******************************************************************************* * 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.proxy.core; /** * This interface is for IBeanTypeProxy's and BeanTypeExpressionProxy's so that we can lazily * get the beantype proxy and have the expression process it when needed. * * @since 1.1.0 */ public interface IProxyBeanType extends IProxy { /** * Answer the name of the type we are proxying This is the fully qualified name. For arrays it will return the format: [Lclassname; * @return * * @since 1.1.0 */ public String getTypeName(); /** * Get the IProxyMethod for the method from this beantype. It may be either a resolved method proxy (if already resolved) or * it may be an ExpressionProxy if not yet resolved. * * @param expression * @param methodName * @param parameterTypes array of parameter types or <code>null</code> if no parameters. * @return * * @since 1.1.0 */ public IProxyMethod getMethodProxy(IExpression expression, String methodName, IProxyBeanType[] parameterTypes); /** * Get the IProxyMethod for the method from this beantype where the method has no arguments. It may be either a resolved method proxy (if already resolved) or * it may be an ExpressionProxy if not yet resolved. * <p> * This is a shortcut for getMethodProxy() that takes arguments names where the names have been sent as null. * * @param expression * @param methodName * @return * * @since 1.1.0 */ public IProxyMethod getMethodProxy(IExpression expression, String methodName); /** * Get the IProxyMethod for the method from this beantype. It may be either a resolved method proxy (if already resolved) or * it may be an ExpressionProxy if not yet resolved. * * @param expression * @param methodName * @param parameterTypes array of parameter types or <code>null</code> if no parameters. * @return * * @since 1.1.0 */ public IProxyMethod getMethodProxy(IExpression expression, String methodName, String[] parameterTypes); /** * Get the IProxyyField for the field from this beantype. It may be either a resolved field proxy (if already resolved) or * it may be an ExpressionProxy if not yet resolved. * * @param expression * @param fieldName * @return * * @since 1.1.0 */ public IProxyField getFieldProxy(IExpression expression, String fieldName); }