blob: 15ea493255066db188e3e9e6f0e8d0be10a7b269 [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.remote;
/*
* $RCSfile: IREMBeanProxy.java,v $
* $Revision: 1.3 $ $Date: 2005/08/24 20:39:06 $
*/
import org.eclipse.jem.internal.proxy.core.IBeanProxy;
import org.eclipse.jem.internal.proxy.common.remote.Commands;
/**
* A Remote VM proxy. All IBeanProxy implementations
* for the Remote VM must also implement this interface.
* This is necessary for proper functioning.
*
* NOTE: This is an internal interface to the Remote VM Proxy.
* It MUST not be used outside of the proxy factory family.
*/
public interface IREMBeanProxy extends IBeanProxy {
/**
* Return the ID of this proxy
*/
public Integer getID();
/**
* Proxy is about to be released, MUST mark it invalid.
* This is required. Resources can also be cleaned up
* if they are being held and need to be cleaned up.
*
* NOTE: This method will only be called when the proxy
* is explicitly released. If it is simply garbage collected,
* then this method will not be called. Simple garbage collection
* means that no one is referencing this proxy. The proxy factory
* will know what id this proxy was referencing and will release it
* on the server at GC time.
*
* If there are resources
* that absolutely must be released, then the finalize method
* should be implemented to do the clean up. However, try not
* to have this be the case. Finalize methods add overhead that is
* usually better not to have. The better way is for any users
* that get this kind of proxy object know to call release on
* ProxyFactoryRegistry to release it before garbage collection.
*/
public void release();
/**
* Render this bean for transport to the server into a Commands.ValueObject.
* For example, a string may put a string. An id type may put out the id.
*/
public void renderBean(Commands.ValueObject renderInto);
}