blob: 59635a732a93c4c4b766230a94e801bcd3482bf9 [file] [log] [blame]
/*******************************************************************************
* 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);
}