/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package Sirius.server.middleware.interfaces.domainserver;
import Sirius.server.localserver.method.MethodMap;
import Sirius.server.localserver.tree.NodeReferenceList;
import Sirius.server.middleware.types.HistoryObject;
import Sirius.server.middleware.types.LightweightMetaObject;
import Sirius.server.middleware.types.MetaClass;
import Sirius.server.middleware.types.MetaObject;
import Sirius.server.middleware.types.Node;
import Sirius.server.newuser.User;
import Sirius.server.search.Query;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.ArrayList;
/**
* Interface for retrieving or modifying meta information sets.
*
* @version $Revision$, $Date$
*/
public interface MetaService extends Remote {
//~ Methods ----------------------------------------------------------------
/**
* retrieves a Meta data object( as Node) referenced by a symbolic pointer to the MIS.
*
* @param usr DOCUMENT ME!
* @param nodeID DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
Node getMetaObjectNode(User usr, int nodeID) throws RemoteException;
/**
* retrieves Meta data objects with meta data matching query (Search) Query not yet defined but will be MetaSQL.
*
* @param usr DOCUMENT ME!
* @param query DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
Node[] getMetaObjectNode(User usr, String query) throws RemoteException;
/**
* retrieves Meta data objects with meta data matching query (Search).
*
* @param usr DOCUMENT ME!
* @param query DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
Node[] getMetaObjectNode(User usr, Query query) throws RemoteException;
/**
* retrieves Meta data objects with meta data matching query (Search) Query not yet defined but will be MetaSQL.
*
* @param usr DOCUMENT ME!
* @param query DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
MetaObject[] getMetaObject(User usr, String query) throws RemoteException;
/**
* retrieves Meta data objects with meta data matching query (Search).
*
* @param usr DOCUMENT ME!
* @param query DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
MetaObject[] getMetaObject(User usr, Query query) throws RemoteException;
/**
* -*-*-*-*-*-*-*-*-*-*-*-*-* MetaJDBC Zeugs *-*-*-*-*-*-*-*-*-*-*-*- ??? public MetaObject getMetaObject(User usr,
* String query) throws RemoteException; retrieves a Meta data object referenced by a symbolic pointer to the MIS
* XXX New Method XXX MetaObject ersetzt Object
*
* @param usr DOCUMENT ME!
* @param objectID DOCUMENT ME!
* @param classID DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
MetaObject getMetaObject(User usr, int objectID, int classID) throws RemoteException;
/**
* inserts metaObject in the MIS XXX NEW Method XXX.
*
* @param user DOCUMENT ME!
* @param metaObject DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
MetaObject insertMetaObject(User user, MetaObject metaObject) throws RemoteException;
/**
* inserts metaObject in the MIS XXX NEW Method XXX.
*
* @param user DOCUMENT ME!
* @param query DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
int insertMetaObject(User user, Query query) throws RemoteException;
/**
* updates metaObject in the MIS XXX New Method XXX.
*
* @param user DOCUMENT ME!
* @param metaObject DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
int updateMetaObject(User user, MetaObject metaObject) throws RemoteException;
/**
* insertion, deletion or update of meta data according to the query returns how many object's are effected XXX New
* Method XXX.
*
* @param user DOCUMENT ME!
* @param query DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
int update(User user, String query) throws RemoteException;
/**
* DOCUMENT ME!
*
* @param user DOCUMENT ME!
* @param metaObject DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
int deleteMetaObject(User user, MetaObject metaObject) throws RemoteException;
/**
* -*-*-*-*-*-*-*-*-*-*-*-*-* /MetaJDBC Zeugs *-*-*-*-*-*-*-*-*-*-*-*- creates an Instance of a MetaObject with all
* attribute values set to default.
*
* @param user DOCUMENT ME!
* @param c DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
MetaObject getInstance(User user, MetaClass c) throws RemoteException;
/**
* ---------------------------- Class retrieval---------------------------------------- MetaClass ersetzt Class
* retrieves a certain class ( classification and definition ) of meta objects.
*
* @param user DOCUMENT ME!
* @param classID DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
MetaClass getClass(User user, int classID) throws RemoteException;
/**
* DOCUMENT ME!
*
* @param user DOCUMENT ME!
* @param tablename DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
MetaClass getClassByTableName(User user, String tablename) throws RemoteException;
/**
* retrieves a certain class ( classification and definition ) of meta objects.
*
* @param user DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
MetaClass[] getClasses(User user) throws RemoteException;
/**
* navigation??
*
* @param user DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
NodeReferenceList getClassTreeNodes(User user) throws RemoteException;
/**
* ----------------------------Method Retrieval--------------------------------------------- retrieves user services
* accessible from the Navigator XXX muss \u00FCberarbeitet werden XXX.
*
* @param user DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
MethodMap getMethods(User user) throws RemoteException;
/**
* ----------------------------LightweightMetaObjects--------------------------------------------- ---!!!
*
* @param classId DOCUMENT ME!
* @param user DOCUMENT ME!
* @param representationFields DOCUMENT ME!
* @param representationPattern DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
LightweightMetaObject[] getAllLightweightMetaObjectsForClass(
int classId,
User user,
String[] representationFields,
String representationPattern) throws RemoteException;
/**
* DOCUMENT ME!
*
* @param classId DOCUMENT ME!
* @param user DOCUMENT ME!
* @param representationFields DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
LightweightMetaObject[] getAllLightweightMetaObjectsForClass(int classId, User user, String[] representationFields)
throws RemoteException;
/**
* DOCUMENT ME!
*
* @param classId DOCUMENT ME!
* @param user DOCUMENT ME!
* @param query DOCUMENT ME!
* @param representationFields DOCUMENT ME!
* @param representationPattern DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
LightweightMetaObject[] getLightweightMetaObjectsByQuery(
int classId,
User user,
String query,
String[] representationFields,
String representationPattern) throws RemoteException;
/**
* DOCUMENT ME!
*
* @param classId DOCUMENT ME!
* @param user DOCUMENT ME!
* @param query DOCUMENT ME!
* @param representationFields DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
LightweightMetaObject[] getLightweightMetaObjectsByQuery(
int classId,
User user,
String query,
String[] representationFields) throws RemoteException;
/**
* DOCUMENT ME!
*
* @param query DOCUMENT ME!
*
* @return DOCUMENT ME!
*
* @throws RemoteException DOCUMENT ME!
*/
ArrayList<ArrayList> performCustomSearch(String query) throws RemoteException;
/**
* @see Sirius.server.middleware.interfaces.proxy.MetaService#getHistory(int, int, java.lang.String,
* Sirius.server.newuser.User, int)
*/
HistoryObject[] getHistory(int classId, int objectId, User user, int elements) throws RemoteException;
}