package org.concord.otrunk.util;
import java.util.Vector;
import org.concord.framework.otrunk.OTObject;
import org.concord.framework.otrunk.OTObjectFilter;
public interface OTSharingManager
{
/**
*
* @return all objects being shared
*/
public Vector<OTObject> getAllSharedObjects();
/**
*
* @param clazz specific class of object
* @return all shared objects of type clazz
*/
public Vector<OTObject> getAllSharedObjects(Class<?> clazz);
/**
*
* @param filter OTObjectFilter
* @return all shared objects matching the OTObjectFilter
*/
public Vector<OTObject> getAllSharedObjects(OTObjectFilter filter);
/**
*
* @param obj The OTObject to be shared
*/
public void share(OTObject obj);
/**
*
* @param obj the object to be removed from the shared list
*/
public void remove(OTObject obj);
/**
* Method to determine if an OTObject is already shared or not
* @param obj The object that may be shared
* @return true if the object is currently shared, false otherwise
*/
public boolean isShared(OTObject obj);
/**
* Add a listener which gets notified when objects are shared and removed from the sharing manager.
* @param listener
*/
public void addOTSharingListener(OTSharingListener listener);
/**
* Remove a listener from the notification list. If the listener was not in the list, the method completes silently.
* @param listener
*/
public void removeOTSharingListener(OTSharingListener listener);
}