package org.springmodules.jcr.mapping; import java.util.Collection; import org.apache.portals.graffito.jcr.query.Query; import org.springframework.dao.DataAccessException; /** * Interface that specifies a basic set of JCR mapping operations. Not often used, but * a useful option to enhance testability, as it can easily be mocked or stubbed. * * <p> * Provides JcrMappingTemplate's data access methods that mirror various PersistenceManager * methods. See the required javadocs for details on those methods. * * @author Costin Leau * */ public interface JcrMappingOperations { /** * Execute a JcrMappingCallback. * * @param callback callback to execute * @return the callback result * @throws DataAccessException */ public Object execute(JcrMappingCallback callback) throws DataAccessException; /** * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#insert(java.lang.String, java.lang.Object) */ public void insert(final java.lang.String path, final java.lang.Object object); /** * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#update(java.lang.String, java.lang.Object) */ public void update(final java.lang.String path, final java.lang.Object object); /** * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#remove(java.lang.String) */ public void remove(final java.lang.String path); /** * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#getObject(java.lang.Class, java.lang.String) */ public Object getObject(final java.lang.Class pojoClass, final java.lang.String path); /** * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#getObjects(org.apache.portals.graffito.jcr.query.Query) */ public Collection getObjects(final Query query); }