001: /*
002: * @author <a href="mailto:oliver@wehrens.de">Oliver Wehrens</a>
003: * @author <a href="mailto:novotny@gridsphere.org">Jason Novotny</a>
004: * @version $Id: PersistenceManagerRdbms.java 6385 2007-10-25 14:02:26Z wehrens $
005: */
006: package org.gridsphere.services.core.persistence;
007:
008: import java.util.List;
009:
010: public interface PersistenceManagerRdbms {
011:
012: public void setClassLoader(ClassLoader loader);
013:
014: public void beginTransaction();
015:
016: public void endTransaction();
017:
018: public void rollbackTransaction();
019:
020: /**
021: * Creates the given object in the permanent storage.
022: *
023: * @param object object to be saved
024: * @throws PersistenceManagerException if the object could not be created
025: */
026: public void create(Object object)
027: throws PersistenceManagerException;
028:
029: /**
030: * Updates the given (already existing) object in the permanent storage.
031: *
032: * @param object Object to be updated
033: * @throws PersistenceManagerException If object could not be updated
034: */
035: public void update(Object object)
036: throws PersistenceManagerException;
037:
038: /**
039: * Saves or updates the given (already existing) object in the permanent storage.
040: *
041: * @param object Object to be updated
042: * @throws PersistenceManagerException If object could not be updated
043: */
044: public void saveOrUpdate(Object object)
045: throws PersistenceManagerException;
046:
047: /**
048: * Restores an object matching the query. If multiple are found the first
049: * is returned.
050: *
051: * @param query Query describing the object which should be restored
052: * @return object Returns queried object or null if none was found
053: * @throws PersistenceManagerException
054: */
055: public Object restore(String query)
056: throws PersistenceManagerException;
057:
058: /**
059: * Restores objects from storage matching the query.
060: *
061: * @param query Query describing the objects
062: * @return list List of objects from OQL query
063: * @throws PersistenceManagerException If a persistence error occurs
064: */
065: public List restoreList(String query)
066: throws PersistenceManagerException;
067:
068: /**
069: * Restores objects from storage matching the query and the supplied query filter
070: *
071: * @param query Query describing the objects
072: * @param queryFilter a query filter specifying a subset of the list of objects to return
073: * @return list List of objects from OQL query
074: * @throws PersistenceManagerException
075: */
076: public List restoreList(String query, QueryFilter queryFilter)
077: throws PersistenceManagerException;
078:
079: /**
080: * @param query Query describing the objects
081: * @return the number of objects returned by the query
082: * @throws PersistenceManagerException
083: */
084: public int count(String query) throws PersistenceManagerException;
085:
086: /**
087: * Deletes the given object from the storage.
088: *
089: * @param object Object to be deleted.
090: * @throws PersistenceManagerException If a persistence error occurs
091: */
092: public void delete(Object object)
093: throws PersistenceManagerException;
094:
095: /**
096: * Deletes objects from the storage matching the given query.
097: *
098: * @param query Query describing the objects to be deleted
099: * @throws PersistenceManagerException If a persistence error occurs
100: */
101: public void deleteList(String query)
102: throws PersistenceManagerException;
103:
104: /**
105: * Shuts down the PersistenceManager. Used to free any ressources
106: * still used by it.
107: *
108: * @throws PersistenceManagerException
109: */
110: public void destroy();
111: }
|