blob: 7fc92f42ea1b9f26d8119f8ed479cb79df265186 [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.internal.proxy.core;
/*
*/
/**
* Bean Proxy interface. This is the
* root interface for any bean proxy instance.
* Creation date: (12/3/99 11:37:01 AM)
* @author: Joe Winchester
*/
public interface IBeanProxy extends IProxy {
/**
* equals: Equal if:
* 1) This proxy == (identity) to the other object
* 2) Else if other is an IBeanProxy, then if
* equals on the server.
* 3) If this is a constant proxy and the other is too or is a constant
* value (e.g. IStringBeanProxy.equals(String), then true if values are equals.
*/
public boolean equals(Object anObject);
/**
* Test for identity among this bean proxy and the other bean proxy.
* For some proxy systems, this may be redundent and you can be assured
* that if the objects being proxied are identical you will receive the
* same proxy for both. However, other implementations may not have this
* condition. Therefor this method was created.
*
* There is one restriction, constants may not necessarily be identical.
* For instance, in some implementations, the Boolean proxy (i.e. an instance of class Boolean) is a constant, i.e.
* it cannot be changed. In those cases a new proxy may be created for each
* access and so they will not be considered to be identical. In those cases false will be returned.
* But in other implementations a new proxy will not be created and so sameAs will return true.
*
* Primitives will return true if just equal because in Java primitives are identical if the same value.
*
* @param aBeanProxy
* @return true if they are identical (i.e. ==) and not just equals.
*/
public boolean sameAs(IBeanProxy aBeanProxy);
/**
* Return the registry this proxy was created with.
*/
public ProxyFactoryRegistry getProxyFactoryRegistry();
/**
* Return the proxied class of the bean
* Creation date: (12/3/99 11:37:01 AM)
* @author: Joe Winchester
*/
public IBeanTypeProxy getTypeProxy();
/**
* Return a string representation of the bean itself
* This could be done by finding the toString() method by a findMethod()
* on the type proxy, etc... but toString() is so ubiquitous that it is
* explicitly declared on the IBeanProxy interface
* Creation date: (12/3/99 11:37:01 AM)
* @author: Joe Winchester
*/
public String toBeanString();
/**
* Is this bean still valid? It could be invalid because it
* was specifically released but someone is still holding onto it.
*/
public boolean isValid();
}