/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package Sirius.navigator.connection.proxy;
import Sirius.navigator.connection.ConnectionSession;
import Sirius.navigator.exception.ConnectionException;
import Sirius.server.middleware.types.Link;
import Sirius.server.middleware.types.MetaClass;
import Sirius.server.middleware.types.MetaObject;
import Sirius.server.middleware.types.Node;
import java.util.Collection;
import java.util.HashMap;
import de.cismet.cids.server.actions.ServerActionParameter;
import de.cismet.cids.server.search.CidsServerSearch;
/**
* Default implementation of the connection proxy interface.
*
* @author Pascal test
* @version 1.0 12/22/2002
*/
public interface ProxyInterface {
//~ Methods ----------------------------------------------------------------
/**
* DOCUMENT ME!
*
* @param name DOCUMENT ME!
* @param value DOCUMENT ME!
*/
void setProperty(String name, String value);
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*/
ConnectionSession getSession();
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws ConnectionException DOCUMENT ME!
*/
Node[] getRoots() throws ConnectionException;
/**
* DOCUMENT ME!
*
* @param domain DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws ConnectionException DOCUMENT ME!
*/
Node[] getRoots(String domain) throws ConnectionException;
/**
* DOCUMENT ME!
*
* @param node DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws ConnectionException DOCUMENT ME!
*/
Node[] getChildren(Node node) throws ConnectionException;
/**
* DOCUMENT ME!
*
* @param nodeID DOCUMENT ME!
* @param domain DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws ConnectionException DOCUMENT ME!
*/
Node getNode(int nodeID, String domain) throws ConnectionException;
/**
* DOCUMENT ME!
*
* @param node DOCUMENT ME!
* @param parent DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws ConnectionException DOCUMENT ME!
*/
Node addNode(Node node, Link parent) throws ConnectionException;
/**
* DOCUMENT ME!
*
* @param node DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws ConnectionException DOCUMENT ME!
*/
boolean deleteNode(Node node) throws ConnectionException;
/**
* DOCUMENT ME!
*
* @param from DOCUMENT ME!
* @param to DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws ConnectionException DOCUMENT ME!
*/
boolean addLink(Node from, Node to) throws ConnectionException;
/**
* DOCUMENT ME!
*
* @param from DOCUMENT ME!
* @param to DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws ConnectionException DOCUMENT ME!
*/
boolean deleteLink(Node from, Node to) throws ConnectionException;
/**
* DOCUMENT ME!
*
* @param methodKey DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws ConnectionException DOCUMENT ME!
*/
Sirius.server.localserver.method.Method getMethod(String methodKey) throws ConnectionException;
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws ConnectionException DOCUMENT ME!
*/
Node[] getClassTreeNodes() throws ConnectionException;
/**
* DOCUMENT ME!
*
* @param domain DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws ConnectionException DOCUMENT ME!
*/
MetaClass[] getClasses(String domain) throws ConnectionException;
/**
* DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws ConnectionException DOCUMENT ME!
*/
MetaClass[] getClasses() throws ConnectionException;
/**
* DOCUMENT ME!
*
* @param classID DOCUMENT ME!
* @param domain DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws ConnectionException DOCUMENT ME!
*/
MetaClass getMetaClass(int classID, String domain) throws ConnectionException;
/**
* DOCUMENT ME!
*
* @param classKey DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws ConnectionException DOCUMENT ME!
*/
MetaClass getMetaClass(String classKey) throws ConnectionException;
/**
* DOCUMENT ME!
*
* @param objectID DOCUMENT ME!
* @param classID DOCUMENT ME!
* @param domain DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws ConnectionException DOCUMENT ME!
*/
MetaObject getMetaObject(int objectID, int classID, String domain) throws ConnectionException;
/**
* DOCUMENT ME!
*
* @param objectId DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws ConnectionException DOCUMENT ME!
*/
MetaObject getMetaObject(String objectId) throws ConnectionException;
/**
* DOCUMENT ME!
*
* @param query DOCUMENT ME!
* @param sig DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws ConnectionException DOCUMENT ME!
*/
MetaObject[] getMetaObjectByQuery(String query, int sig) throws ConnectionException;
/**
* DOCUMENT ME!
*
* @param MetaObject DOCUMENT ME!
* @param domain DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws ConnectionException DOCUMENT ME!
*/
MetaObject insertMetaObject(MetaObject MetaObject, String domain) throws ConnectionException;
/**
* DOCUMENT ME!
*
* @param MetaObject DOCUMENT ME!
* @param domain DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws ConnectionException DOCUMENT ME!
*/
int updateMetaObject(MetaObject MetaObject, String domain) throws ConnectionException;
/**
* DOCUMENT ME!
*
* @param MetaObject DOCUMENT ME!
* @param domain DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws ConnectionException DOCUMENT ME!
*/
int deleteMetaObject(MetaObject MetaObject, String domain) throws ConnectionException;
/**
* DOCUMENT ME!
*
* @param c DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws ConnectionException DOCUMENT ME!
*/
MetaObject getInstance(MetaClass c) throws ConnectionException;
/**
* DOCUMENT ME!
*
* @param serverSearch DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws ConnectionException DOCUMENT ME!
*/
Collection customServerSearch(CidsServerSearch serverSearch) throws ConnectionException;
/**
* DOCUMENT ME!
*
* @param taskname DOCUMENT ME!
* @param taskdomain DOCUMENT ME!
* @param body DOCUMENT ME!
* @param params DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws ConnectionException DOCUMENT ME!
*/
Object executeTask(String taskname, String taskdomain, Object body, ServerActionParameter... params)
throws ConnectionException;
}