org.apache.portals.graffito.jcr.persistence.impl
Class PersistenceManagerImpl

java.lang.Object
  extended by org.apache.portals.graffito.jcr.persistence.impl.PersistenceManagerImpl
All Implemented Interfaces:
PersistenceManager

public class PersistenceManagerImpl
extends java.lang.Object
implements PersistenceManager

Default implementation for PersistenceManager

Author:
Sandro Boehme, Lombart Christophe, Martin Koci, Alexandru Popescu

Field Summary
protected  Mapper mapper
           
protected  ObjectConverter objectConverter
          Object Converter
protected  QueryManager queryManager
          The Graffito query manager
protected  javax.jcr.Session session
          JCR session.
 
Constructor Summary
PersistenceManagerImpl(Mapper mapper, ObjectConverter converter, QueryManager queryManager, javax.jcr.Session session)
          Full constructor.
PersistenceManagerImpl(Mapper mapper, QueryManager queryManager, javax.jcr.Session session)
          Creates a new PersistenceManager that uses the passed in Mapper, QueryManager and a default ObjectConverter
PersistenceManagerImpl(javax.jcr.Session session, java.lang.String[] xmlMappingFiles)
          Creates a new PersistenceManager based on a JCR session and some xml mapping files.
 
Method Summary
 void addVersionLabel(java.lang.String path, java.lang.String versionName, java.lang.String versionLabel)
          Add a new label to a particular version
protected  void checkIfNodeLocked(java.lang.String absPath)
          Throws LockedException id node is locked so alter nopde cannot be done
 void checkin(java.lang.String path)
          Checkin an object
 void checkin(java.lang.String path, java.lang.String[] versionLabels)
          Checkin an object and apply some labels to this new version Within a particular object path, a given label may appear a maximum of once
 void checkout(java.lang.String path)
          Checkout - Create a new version This is only possible if the object is based on mix:versionable node type
 java.lang.String[] getAllVersionLabels(java.lang.String path)
          Get all version labels assigned to all versions
 VersionIterator getAllVersions(java.lang.String path)
          Get all object versions
 Version getBaseVersion(java.lang.String path)
          Get the lastest object version
protected  javax.jcr.Node getNode(java.lang.String absPath)
           
 java.lang.Object getObject(java.lang.Class objectClass, java.lang.String path)
          Get an object from the JCR repository
 java.lang.Object getObject(java.lang.Class objectClass, java.lang.String path, java.lang.String versionName)
          Get an object from the JCR repository
 java.lang.Object getObject(Query query)
          Retrieve an object matching to a query
 java.lang.Object getObject(java.lang.String path)
          Get an object from the JCR repository
 java.lang.Object getObject(java.lang.String path, java.lang.String versionName)
          Get an object from the JCR repository
 java.util.Iterator getObjectIterator(Query query)
          Retrieve some objects matching to a query.
 java.util.Collection getObjects(Query query)
          Retrieve some objects matching to a query
 QueryManager getQueryManager()
           
 Version getRootVersion(java.lang.String path)
          Get the first object version
 javax.jcr.Session getSession()
           
 Version getVersion(java.lang.String path, java.lang.String versionName)
          Get a particular version
 java.lang.String[] getVersionLabels(java.lang.String path, java.lang.String versionName)
          Get all version labels assigned to a particular object version
 void insert(java.lang.Object object)
          Insert an object into the JCR repository
 boolean isLocked(java.lang.String absPath)
          Is that path locked?
 boolean isPersistent(java.lang.Class clazz)
          Can this persistence manager insert, update, delete, ...
 java.lang.String lock(java.lang.String absPath, boolean isDeep, boolean isSessionScoped)
          Lock object saved on .
 void logout()
          Close the session
protected  void maybeAddLockToken(java.lang.String lockToken)
           
 boolean objectExists(java.lang.String path)
          Check if an object exists
 void remove(java.lang.Object object)
          Remove an object from a JCR repository
 void remove(Query query)
          Remove all objects matching to a query
 void remove(java.lang.String path)
          Remove an object from a JCR repository
 void retrieveAllMappedAttributes(java.lang.Object object)
          Retrieve all mapped attributes for the given persistent object.
 void retrieveMappedAttribute(java.lang.Object object, java.lang.String attributeName)
          Retrieve the specified attribute for the given persistent object.
 void save()
          Save all modifications made by the persistence manager
 void setMapper(Mapper mapper)
          Sets the Mapper used by this persistence manager.
 void setObjectConverter(ObjectConverter objectConverter)
          Sets the ObjectConverter that is used internally by this persistence manager.
 void setQueryManager(QueryManager queryManager)
          Sets the QueryManager used by the persistence manager.
 void unlock(java.lang.String absPath, java.lang.String lockToken)
          Unlock object stored on .
 void update(java.lang.Object object)
          Update an object
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

session

protected javax.jcr.Session session
JCR session.


mapper

protected Mapper mapper

queryManager

protected QueryManager queryManager
The Graffito query manager


objectConverter

protected ObjectConverter objectConverter
Object Converter

Constructor Detail

PersistenceManagerImpl

public PersistenceManagerImpl(Mapper mapper,
                              QueryManager queryManager,
                              javax.jcr.Session session)
Creates a new PersistenceManager that uses the passed in Mapper, QueryManager and a default ObjectConverter

Parameters:
mapper - the Mapper component
queryManager - the query manager to used
session - The JCR session

PersistenceManagerImpl

public PersistenceManagerImpl(javax.jcr.Session session,
                              java.lang.String[] xmlMappingFiles)
Creates a new PersistenceManager based on a JCR session and some xml mapping files.

Parameters:
session - The JCR session
xmlMappingFiles - Graffito JCR mapping file used mainly to create the Mapper component

PersistenceManagerImpl

public PersistenceManagerImpl(Mapper mapper,
                              ObjectConverter converter,
                              QueryManager queryManager,
                              javax.jcr.Session session)
Full constructor.

Parameters:
mapper - the Mapper component
converter - the ObjectConverter to be used internally
queryManager - the query manager to used
session - The JCR session
Method Detail

setMapper

public void setMapper(Mapper mapper)
Sets the Mapper used by this persistence manager.

Parameters:
mapper - mapping solver

setObjectConverter

public void setObjectConverter(ObjectConverter objectConverter)
Sets the ObjectConverter that is used internally by this persistence manager.

Parameters:
objectConverter - the internal ObjectConverter

setQueryManager

public void setQueryManager(QueryManager queryManager)
Sets the QueryManager used by the persistence manager.

Parameters:
queryManager - a QueryManager

getObject

public java.lang.Object getObject(java.lang.String path)
Description copied from interface: PersistenceManager
Get an object from the JCR repository

Specified by:
getObject in interface PersistenceManager
Parameters:
path - the object path
Returns:
the object found or null
Throws:
RepositoryException - if the underlying repository has thrown a javax.jcr.RepositoryException
JcrMappingException - if the mapping for the class is not correct
PersistenceException - if the object cannot be retrieved from the path
See Also:
PersistenceManager.getObject(java.lang.Class, java.lang.String)

getObject

public java.lang.Object getObject(java.lang.String path,
                                  java.lang.String versionName)
Description copied from interface: PersistenceManager
Get an object from the JCR repository

Specified by:
getObject in interface PersistenceManager
Parameters:
path - the object path
versionName - The desired object version number
Returns:
the object found or null
See Also:
PersistenceManager.getObject(java.lang.Class, java.lang.String, java.lang.String)

getObject

public java.lang.Object getObject(java.lang.Class objectClass,
                                  java.lang.String path)
Description copied from interface: PersistenceManager
Get an object from the JCR repository

Specified by:
getObject in interface PersistenceManager
Parameters:
objectClass - the object class
path - the object path
Returns:
the object found or null
Throws:
RepositoryException - if the underlying repository has thrown a javax.jcr.RepositoryException
JcrMappingException - if the mapping for the class is not correct
PersistenceException - if the object cannot be retrieved from the path
See Also:
PersistenceManager.getObject(java.lang.Class, java.lang.String)

getObject

public java.lang.Object getObject(java.lang.Class objectClass,
                                  java.lang.String path,
                                  java.lang.String versionName)
Description copied from interface: PersistenceManager
Get an object from the JCR repository

Specified by:
getObject in interface PersistenceManager
Parameters:
objectClass - the object class
path - the object path
versionName - The desired object version number
Returns:
the object found or null
See Also:
PersistenceManager.getObject(java.lang.Class, java.lang.String, java.lang.String)

retrieveAllMappedAttributes

public void retrieveAllMappedAttributes(java.lang.Object object)
Description copied from interface: PersistenceManager
Retrieve all mapped attributes for the given persistent object.

Specified by:
retrieveAllMappedAttributes in interface PersistenceManager
Parameters:
object - The persistent object
See Also:
PersistenceManager.retrieveAllMappedAttributes(Object)

retrieveMappedAttribute

public void retrieveMappedAttribute(java.lang.Object object,
                                    java.lang.String attributeName)
Description copied from interface: PersistenceManager
Retrieve the specified attribute for the given persistent object. this attribute is either a bean or a collection. This method is usefull if the corresponding descriptor has an autoRetrieve="false"

Specified by:
retrieveMappedAttribute in interface PersistenceManager
Parameters:
object - The persistent object
attributeName - The name of the attribute to retrieve
See Also:
PersistenceManager.retrieveMappedAttribute(Object, String)

insert

public void insert(java.lang.Object object)
Description copied from interface: PersistenceManager
Insert an object into the JCR repository

Specified by:
insert in interface PersistenceManager
Parameters:
object - the object to add
See Also:
PersistenceManager.insert(java.lang.Object)

update

public void update(java.lang.Object object)
Description copied from interface: PersistenceManager
Update an object

Specified by:
update in interface PersistenceManager
Parameters:
object - the object to update
See Also:
PersistenceManager.update(java.lang.Object)

remove

public void remove(java.lang.String path)
Description copied from interface: PersistenceManager
Remove an object from a JCR repository

Specified by:
remove in interface PersistenceManager
Parameters:
path - the object path
See Also:
PersistenceManager.remove(java.lang.String)

remove

public void remove(java.lang.Object object)
Description copied from interface: PersistenceManager
Remove an object from a JCR repository

Specified by:
remove in interface PersistenceManager
Parameters:
object - the object to remove
See Also:
PersistenceManager.remove(java.lang.Object)

remove

public void remove(Query query)
Description copied from interface: PersistenceManager
Remove all objects matching to a query

Specified by:
remove in interface PersistenceManager
Parameters:
query - The query used to find the objects to remove
See Also:
PersistenceManager.remove(org.apache.portals.graffito.jcr.query.Query)

objectExists

public boolean objectExists(java.lang.String path)
Description copied from interface: PersistenceManager
Check if an object exists

Specified by:
objectExists in interface PersistenceManager
Parameters:
path - the object path
Returns:
true if the item exists
See Also:
PersistenceManager.objectExists(java.lang.String)

isPersistent

public boolean isPersistent(java.lang.Class clazz)
Description copied from interface: PersistenceManager
Can this persistence manager insert, update, delete, ... that type?

Specified by:
isPersistent in interface PersistenceManager
Parameters:
clazz - class for question
Returns:
true if the class is persistence
See Also:
PersistenceManager.isPersistent(java.lang.Class)

getObject

public java.lang.Object getObject(Query query)
Description copied from interface: PersistenceManager
Retrieve an object matching to a query

Specified by:
getObject in interface PersistenceManager
Parameters:
query - The Graffito Query object used to seach the object
Returns:
The object found or null
See Also:
PersistenceManager.getObject(org.apache.portals.graffito.jcr.query.Query)

getObjects

public java.util.Collection getObjects(Query query)
Description copied from interface: PersistenceManager
Retrieve some objects matching to a query

Specified by:
getObjects in interface PersistenceManager
Parameters:
query - The query used to seach the objects
Returns:
a collection of objects found
See Also:
PersistenceManager.getObjects(org.apache.portals.graffito.jcr.query.Query)

getObjectIterator

public java.util.Iterator getObjectIterator(Query query)
Description copied from interface: PersistenceManager
Retrieve some objects matching to a query.

Specified by:
getObjectIterator in interface PersistenceManager
Parameters:
query - The query used to seach the objects
Returns:
an iterator of objects found
See Also:
PersistenceManager.getObjectIterator(org.apache.portals.graffito.jcr.query.Query)

checkin

public void checkin(java.lang.String path)
Description copied from interface: PersistenceManager
Checkin an object

Specified by:
checkin in interface PersistenceManager
Parameters:
path - the object path
See Also:
PersistenceManager.checkin(java.lang.String)

checkin

public void checkin(java.lang.String path,
                    java.lang.String[] versionLabels)
Description copied from interface: PersistenceManager
Checkin an object and apply some labels to this new version Within a particular object path, a given label may appear a maximum of once

Specified by:
checkin in interface PersistenceManager
Parameters:
path - The object path
versionLabels - the version labels to apply to the new version
See Also:
PersistenceManager.checkin(java.lang.String, java.lang.String[])

checkout

public void checkout(java.lang.String path)
Description copied from interface: PersistenceManager
Checkout - Create a new version This is only possible if the object is based on mix:versionable node type

Specified by:
checkout in interface PersistenceManager
Parameters:
path - The object path
See Also:
PersistenceManager.checkout(java.lang.String)

addVersionLabel

public void addVersionLabel(java.lang.String path,
                            java.lang.String versionName,
                            java.lang.String versionLabel)
Description copied from interface: PersistenceManager
Add a new label to a particular version

Specified by:
addVersionLabel in interface PersistenceManager
Parameters:
path - the object path
versionName - the object versio name (1.0, 1.1, ...)
versionLabel - The new label to apply
See Also:
PersistenceManager.addVersionLabel(java.lang.String, java.lang.String, java.lang.String)

getVersion

public Version getVersion(java.lang.String path,
                          java.lang.String versionName)
Description copied from interface: PersistenceManager
Get a particular version

Specified by:
getVersion in interface PersistenceManager
Parameters:
path - the object path
versionName - the version name
Returns:
the version found or null
See Also:
PersistenceManager.getVersion(java.lang.String, java.lang.String)

getVersionLabels

public java.lang.String[] getVersionLabels(java.lang.String path,
                                           java.lang.String versionName)
Description copied from interface: PersistenceManager
Get all version labels assigned to a particular object version

Specified by:
getVersionLabels in interface PersistenceManager
Parameters:
path - the object path
versionName - the object version name (1.0, ...)
Returns:
a array of string (version labels)
See Also:
PersistenceManager.getVersionLabels(java.lang.String, java.lang.String)

getAllVersionLabels

public java.lang.String[] getAllVersionLabels(java.lang.String path)
Description copied from interface: PersistenceManager
Get all version labels assigned to all versions

Specified by:
getAllVersionLabels in interface PersistenceManager
Parameters:
path - the object path
Returns:
a array of string (version labels)
See Also:
PersistenceManager.getAllVersionLabels(java.lang.String)

getAllVersions

public VersionIterator getAllVersions(java.lang.String path)
Description copied from interface: PersistenceManager
Get all object versions

Specified by:
getAllVersions in interface PersistenceManager
Parameters:
path - the object path
Returns:
a version iterator
See Also:
PersistenceManager.getAllVersions(java.lang.String)

getRootVersion

public Version getRootVersion(java.lang.String path)
Description copied from interface: PersistenceManager
Get the first object version

Specified by:
getRootVersion in interface PersistenceManager
Parameters:
path - the object path
Returns:
the first version found
See Also:
PersistenceManager.getRootVersion(java.lang.String)

getBaseVersion

public Version getBaseVersion(java.lang.String path)
Description copied from interface: PersistenceManager
Get the lastest object version

Specified by:
getBaseVersion in interface PersistenceManager
Parameters:
path - the object path
Returns:
the last version found
See Also:
PersistenceManager.getBaseVersion(java.lang.String)

lock

public java.lang.String lock(java.lang.String absPath,
                             boolean isDeep,
                             boolean isSessionScoped)
                      throws LockedException
Description copied from interface: PersistenceManager
Lock object saved on .

Specified by:
lock in interface PersistenceManager
Parameters:
absPath - path to saved object.
isDeep - is lock deep? See JCR spec: 8.4.3 Shallow and Deep Locks
isSessionScoped - is lock session scoped? See JCR spec: Session-scoped and Open-scoped Locks
Returns:
lock token - see JCR spec: 8.4.6 Lock Token; Other user with this token can perform unlock
Throws:
LockedException - if path is locked (cannot lock same path again)
See Also:
org.apache.portals.graffito.jcr.persistence.PersistenceManager#lock(java.lang.String, java.lang.Object, boolean, boolean)

unlock

public void unlock(java.lang.String absPath,
                   java.lang.String lockToken)
            throws IllegalUnlockException
Description copied from interface: PersistenceManager
Unlock object stored on .

Specified by:
unlock in interface PersistenceManager
Parameters:
absPath - path to stored object
lockToken - see JCR spec: 8.4.6 Lock Token; can be null
Throws:
IllegalUnlockException - throws if the current operation does not own the current lock
See Also:
org.apache.portals.graffito.jcr.persistence.PersistenceManager#unlock(java.lang.String, java.lang.Object, java.lang.String)

isLocked

public boolean isLocked(java.lang.String absPath)
Description copied from interface: PersistenceManager
Is that path locked?

Specified by:
isLocked in interface PersistenceManager
Returns:
true if path locked
See Also:
PersistenceManager.isLocked(java.lang.String)

getQueryManager

public QueryManager getQueryManager()
Specified by:
getQueryManager in interface PersistenceManager
Returns:
The query manager reference
See Also:
PersistenceManager.getQueryManager()

checkIfNodeLocked

protected void checkIfNodeLocked(java.lang.String absPath)
                          throws javax.jcr.RepositoryException,
                                 LockedException
Throws LockedException id node is locked so alter nopde cannot be done

Parameters:
absPath - abs path to node
Throws:
javax.jcr.RepositoryException
LockedException - if node is locked

maybeAddLockToken

protected void maybeAddLockToken(java.lang.String lockToken)

getNode

protected javax.jcr.Node getNode(java.lang.String absPath)
                          throws javax.jcr.PathNotFoundException,
                                 javax.jcr.RepositoryException
Throws:
javax.jcr.PathNotFoundException
javax.jcr.RepositoryException

logout

public void logout()
Description copied from interface: PersistenceManager
Close the session

Specified by:
logout in interface PersistenceManager
See Also:
PersistenceManager.logout()

save

public void save()
Description copied from interface: PersistenceManager
Save all modifications made by the persistence manager

Specified by:
save in interface PersistenceManager
See Also:
PersistenceManager.save()

getSession

public javax.jcr.Session getSession()
Returns:
The JCR Session


Copyright © 2004-2006 The Apache Software Foundation. All Rights Reserved.