All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.ccsds.moims.mo.com.archive.provider.ArchiveHandler Maven / Gradle / Ivy

The newest version!
package org.ccsds.moims.mo.com.archive.provider;

/**
 * Interface that providers of the Archive service must implement to handle 
 * the operations of that service. 
 */
public interface ArchiveHandler {

    /**
     * Implements the operation retrieve.
     * 
     * @param objType The first part of the request shall contain the type of 
     * the object required. 
     * If any of the fields of the object type contains the wildcard value of 
     * "0" then an INVALID error shall be returned. 
     * The second part of the request shall contain the domain to match. 
     * If the domain contains the wildcard value of "*" then an INVALID 
     * error shall be returned. 
     * The third part of the request shall contain the list of object instance 
     * identifiers to match. 
     * If the object instance identifier list contains the wildcard value "0" 
     * then all object instances shall be matched. 
     * If any explicitly requested object cannot be matched then an UNKNOWN error 
     * shall be returned. 
     * @param domain domain Argument number 1 as defined by the service operation. 
     * @param objInstIds objInstIds Argument number 2 as defined by the service 
     * operation. 
     * @param interaction The MAL object representing the interaction in the provider. 
     * @throws org.ccsds.moims.mo.mal.MALInteractionException if there is a problem 
     * during the interaction as defined by the MAL specification. 
     * @throws org.ccsds.moims.mo.mal.MALException if there is an implementation 
     * exception. 
     */
    void retrieve(org.ccsds.moims.mo.com.structures.ObjectType objType,
            org.ccsds.moims.mo.mal.structures.IdentifierList domain,
            org.ccsds.moims.mo.mal.structures.LongList objInstIds,
            org.ccsds.moims.mo.com.archive.provider.RetrieveInteraction interaction) throws org.ccsds.moims.mo.mal.MALInteractionException, org.ccsds.moims.mo.mal.MALException;
    /**
     * Implements the operation query.
     * 
     * @param returnBody The first part of the request shall contain a Boolean 
     * that if set to TRUE requests that the body of the objects is returned otherwise 
     * only the ObjectType and ArchiveDetails shall be returned and the returned 
     * list of the bodies of the objects shall be replaced with a NULL. 
     * The second part of the request shall contain the type of the object required. 
     * Each part of the object type may contain the wildcard value of "0". 
     * The third and fourth parts of the request shall contain the queries to 
     * evaluate. 
     * A single query shall be formed by the combination of an ArchiveQuery from 
     * the first list and a QueryFilter from the second list. 
     * The two lists shall be ordered identically so that the query and the filter 
     * parts can be matched together. 
     * If a query does not contain a QueryFilter part then that entry in the QueryFilter 
     * list shall be replaced with a NULL value. 
     * If the request does not contain any QueryFilters then the complete list 
     * may be replaced with a NULL. 
     * The size of the two lists must be the same unless the complete second list 
     * is replaced with a NULL otherwise an INVALID error shall be raised. 
     * For each query, the ArchiveQuery and the QueryFilter shall contain the 
     * COM object fields to filter on. 
     * The ArchiveQuery may contain the wildcard value of NULL on each of the 
     * fields. 
     * If an ArchiveQuery contains an end time but no start time then it shall 
     * match the single object that has a timestamp closest to, but not greater 
     * than, the end time field. 
     * The end time field may specify a time in the future. 
     * If the sortFieldName of the ArchiveQuery does not reference a defined field 
     * then an INVALID error shall be returned. 
     * Each query shall be evaluated separately from each other, the filter of 
     * one query will not affect the filter of another. This forms a logical OR 
     * operation. 
     * If the QueryFilter contains an error then an INVALID error shall be returned. 
     * The definition of erroneous values are filter specific and defined in the 
     * relevant filter structure specification. 
     * @param objType objType Argument number 1 as defined by the service operation. 
     * @param archiveQuery archiveQuery Argument number 2 as defined by the service 
     * operation. 
     * @param queryFilter queryFilter Argument number 3 as defined by the service 
     * operation. 
     * @param interaction The MAL object representing the interaction in the provider. 
     * @throws org.ccsds.moims.mo.mal.MALInteractionException if there is a problem 
     * during the interaction as defined by the MAL specification. 
     * @throws org.ccsds.moims.mo.mal.MALException if there is an implementation 
     * exception. 
     */
    void query(Boolean returnBody,
            org.ccsds.moims.mo.com.structures.ObjectType objType,
            org.ccsds.moims.mo.com.archive.structures.ArchiveQueryList archiveQuery,
            org.ccsds.moims.mo.com.archive.structures.QueryFilterList queryFilter,
            org.ccsds.moims.mo.com.archive.provider.QueryInteraction interaction) throws org.ccsds.moims.mo.mal.MALInteractionException, org.ccsds.moims.mo.mal.MALException;
    /**
     * Implements the operation count.
     * 
     * @param objType The ObjectType, ArchiveQuery and QueryFilter parts of the 
     * request shall be populated exactly the same as for the query operation. 
     * @param archiveQuery archiveQuery Argument number 1 as defined by the service 
     * operation. 
     * @param queryFilter queryFilter Argument number 2 as defined by the service 
     * operation. 
     * @param interaction The MAL object representing the interaction in the provider. 
     * @throws org.ccsds.moims.mo.mal.MALInteractionException if there is a problem 
     * during the interaction as defined by the MAL specification. 
     * @throws org.ccsds.moims.mo.mal.MALException if there is an implementation 
     * exception. 
     */
    void count(org.ccsds.moims.mo.com.structures.ObjectType objType,
            org.ccsds.moims.mo.com.archive.structures.ArchiveQueryList archiveQuery,
            org.ccsds.moims.mo.com.archive.structures.QueryFilterList queryFilter,
            org.ccsds.moims.mo.com.archive.provider.CountInteraction interaction) throws org.ccsds.moims.mo.mal.MALInteractionException, org.ccsds.moims.mo.mal.MALException;
    /**
     * Implements the operation store.
     * 
     * @param returnObjInstIds The first part of the request indicates whether 
     * the operation should return the object instance identifiers used, if TRUE 
     * it shall return them, otherwise it returns NULL. 
     * The second part of the request shall contain the type of object being stored. 
     * The third part of the request shall contain the domain of the objects being 
     * stored. 
     * The fourth part of the request shall contain the list of archive details 
     * to use, one for each object being stored. 
     * If the object instance identifier supplied in the archive details is set 
     * to 0 then the store operation shall allocate a new and unused object instance 
     * identifier. 
     * If the object instance identifier supplied in the archive details is not 
     * set to 0 and is currently used in the archive then a DUPLICATE error is 
     * returned and no objects from the request shall be stored. 
     * The fifth part of the request shall contain the list of objects to store. 
     * The fourth and fifth list must be the same size as there is only one entry 
     * in each for each object to be stored. If they differ in size an INVALID 
     * error is returned with the extra error information integer giving the index 
     * of the list entry without a matching entry in the other list. 
     * An INVALID error shall be returned if a wildcard value of "0" 
     * is used in the object type. 
     * An INVALID error shall be returned if a wildcard value of "*" 
     * is used in the domain identifier list. 
     * An INVALID error shall be returned if the values of "0", "*", 
     * or NULL are used in the network, timestamp or provider fields of the archive 
     * details except for the object instance identifier. 
     * The type of the body of the object should be checked against the declared 
     * type in the relevant service specification, if different an INVALID error 
     * is raised. 
     * If any error is returned then the store operation shall be rolled back 
     * and nothing is stored as a result of the operation. 
     * @param objType objType Argument number 1 as defined by the service operation. 
     * @param domain domain Argument number 2 as defined by the service operation. 
     * @param objDetails objDetails Argument number 3 as defined by the service 
     * operation. 
     * @param objBodies objBodies Argument number 4 as defined by the service 
     * operation. 
     * @param interaction The MAL object representing the interaction in the provider. 
     * @return The return value of the operation.
     * @throws org.ccsds.moims.mo.mal.MALInteractionException if there is a problem 
     * during the interaction as defined by the MAL specification. 
     * @throws org.ccsds.moims.mo.mal.MALException if there is an implementation 
     * exception. 
     */
    org.ccsds.moims.mo.mal.structures.LongList store(Boolean returnObjInstIds,
            org.ccsds.moims.mo.com.structures.ObjectType objType,
            org.ccsds.moims.mo.mal.structures.IdentifierList domain,
            org.ccsds.moims.mo.com.archive.structures.ArchiveDetailsList objDetails,
            org.ccsds.moims.mo.mal.structures.HeterogeneousList objBodies,
            org.ccsds.moims.mo.mal.provider.MALInteraction interaction) throws org.ccsds.moims.mo.mal.MALInteractionException, org.ccsds.moims.mo.mal.MALException;
    /**
     * Implements the operation update.
     * 
     * @param objType The first part of the request shall contain the type of 
     * object being updated. 
     * The second part of the request shall contain the domain of the objects 
     * being updated. 
     * The third part of the request shall contain the list of ArchiveDetails. 
     * The object instance identifier contained in the ArchiveDetails, combined 
     * with the object type and domain from the request, shall be used to match 
     * objects. 
     * If requested object cannot be matched then an UNKNOWN error shall be returned 
     * and nothing will be updated. 
     * The remainder of the ArchiveDetails shall be used to update the matched 
     * objects. 
     * The fourth part of the request shall contain the list of objects to replace 
     * the matched objects with. 
     * No wildcard values shall be accepted in the object type, the domain, and 
     * the object instance identifier, an INVALID error is returned in this case 
     * and no objects are updated. 
     * @param domain domain Argument number 1 as defined by the service operation. 
     * @param objDetails objDetails Argument number 2 as defined by the service 
     * operation. 
     * @param objBodies objBodies Argument number 3 as defined by the service 
     * operation. 
     * @param interaction The MAL object representing the interaction in the provider. 
     * @throws org.ccsds.moims.mo.mal.MALInteractionException if there is a problem 
     * during the interaction as defined by the MAL specification. 
     * @throws org.ccsds.moims.mo.mal.MALException if there is an implementation 
     * exception. 
     */
    void update(org.ccsds.moims.mo.com.structures.ObjectType objType,
            org.ccsds.moims.mo.mal.structures.IdentifierList domain,
            org.ccsds.moims.mo.com.archive.structures.ArchiveDetailsList objDetails,
            org.ccsds.moims.mo.mal.structures.HeterogeneousList objBodies,
            org.ccsds.moims.mo.mal.provider.MALInteraction interaction) throws org.ccsds.moims.mo.mal.MALInteractionException, org.ccsds.moims.mo.mal.MALException;
    /**
     * Implements the operation delete.
     * 
     * @param objType The first part of the request shall contain the type of 
     * object to match and is not permitted to contain the wildcard value. 
     * The second part of the request shall contain the domain of the objects 
     * to match and is not permitted to contain the wildcard value. 
     * If either the first or second part contain a wildcard value then an INVALID 
     * error shall be returned and no object deleted. 
     * The third part of the request shall contain the list of object instance 
     * identifiers to match. 
     * If the object instance identifier list contains the wildcard value "0" 
     * then all object instances shall be matched. 
     * If any explicitly requested object cannot be matched then an UNKNOWN error 
     * shall be returned and nothing will be deleted. 
     * The matched objects shall be deleted from the archive. 
     * @param domain domain Argument number 1 as defined by the service operation. 
     * @param objInstIds objInstIds Argument number 2 as defined by the service 
     * operation. 
     * @param interaction The MAL object representing the interaction in the provider. 
     * @return The return value of the operation.
     * @throws org.ccsds.moims.mo.mal.MALInteractionException if there is a problem 
     * during the interaction as defined by the MAL specification. 
     * @throws org.ccsds.moims.mo.mal.MALException if there is an implementation 
     * exception. 
     */
    org.ccsds.moims.mo.mal.structures.LongList delete(org.ccsds.moims.mo.com.structures.ObjectType objType,
            org.ccsds.moims.mo.mal.structures.IdentifierList domain,
            org.ccsds.moims.mo.mal.structures.LongList objInstIds,
            org.ccsds.moims.mo.mal.provider.MALInteraction interaction) throws org.ccsds.moims.mo.mal.MALInteractionException, org.ccsds.moims.mo.mal.MALException;
    /**
     * Sets the skeleton to be used for creation of publishers.
     * 
     * @param skeleton The skeleton to be used.
     */
    void setSkeleton(org.ccsds.moims.mo.com.archive.provider.ArchiveSkeleton skeleton);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy