/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package Sirius.server.middleware.interfaces.domainserver;
import Sirius.server.localserver.tree.NodeReferenceList;
import Sirius.server.middleware.types.Link;
import Sirius.server.middleware.types.Node;
import Sirius.server.newuser.*;
import java.rmi.*;
/**
* Interface for operations on the systems catalogue.
*
* @version $Revision$, $Date$
*/
public interface CatalogueService extends Remote {
//~ Methods ----------------------------------------------------------------
/**
* retrieves all by this user accessible rootNodes of one localserver.
*
* @param user DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
NodeReferenceList getRoots(User user) throws RemoteException;
/**
* retrieves all children of node public NodeReferenceList getChildren(User usr, int nodeID) throws RemoteException;
*
* @param node DOCUMENT ME!
* @param usr DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
NodeReferenceList getChildren(Node node, User usr) throws RemoteException;
/**
* retrieves all parents from the same domain note that this is not a complete set of parents and as the navigation
* structure is a graph ther can be arbitrarily many public Node[] getParents(User usr, int nodeID) throws
* RemoteException;
*
* @param user DOCUMENT ME!
* @param ids DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
Node[] getNodes(User user, int[] ids) throws RemoteException;
/**
* DOCUMENT ME!
*
* @param node DOCUMENT ME!
* @param parent DOCUMENT ME!
* @param user DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
Node addNode(Node node, Link parent, User user) throws RemoteException;
/**
* DOCUMENT ME!
*
* @param node DOCUMENT ME!
* @param user DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
boolean deleteNode(Node node, User user) throws RemoteException;
/**
* DOCUMENT ME!
*
* @param from DOCUMENT ME!
* @param to DOCUMENT ME!
* @param user DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
boolean addLink(Node from, Node to, User user) throws RemoteException;
/**
* DOCUMENT ME!
*
* @param from DOCUMENT ME!
* @param to DOCUMENT ME!
* @param user DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
boolean deleteLink(Node from, Node to, User user) throws RemoteException;
// public boolean copySubTree(Node root, User user) throws RemoteException;
}