org.apache.jackrabbit.commons.repository
Class ProxyRepository

java.lang.Object
  extended by org.apache.jackrabbit.commons.AbstractRepository
      extended by org.apache.jackrabbit.commons.repository.ProxyRepository
All Implemented Interfaces:
Repository
Direct Known Subclasses:
JCARepositoryHandle, JNDIRepository, ServletRepository

public class ProxyRepository
extends AbstractRepository

Repository that proxies all method calls to another repository. The other repository is accessed lazily using a repository factory.

Since:
1.4

Field Summary
 
Fields inherited from interface javax.jcr.Repository
IDENTIFIER_STABILITY, IDENTIFIER_STABILITY_INDEFINITE_DURATION, IDENTIFIER_STABILITY_METHOD_DURATION, IDENTIFIER_STABILITY_SAVE_DURATION, IDENTIFIER_STABILITY_SESSION_DURATION, LEVEL_1_SUPPORTED, LEVEL_2_SUPPORTED, NODE_TYPE_MANAGEMENT_AUTOCREATED_DEFINITIONS_SUPPORTED, NODE_TYPE_MANAGEMENT_INHERITANCE, NODE_TYPE_MANAGEMENT_INHERITANCE_MINIMAL, NODE_TYPE_MANAGEMENT_INHERITANCE_MULTIPLE, NODE_TYPE_MANAGEMENT_INHERITANCE_SINGLE, NODE_TYPE_MANAGEMENT_MULTIPLE_BINARY_PROPERTIES_SUPPORTED, NODE_TYPE_MANAGEMENT_MULTIVALUED_PROPERTIES_SUPPORTED, NODE_TYPE_MANAGEMENT_ORDERABLE_CHILD_NODES_SUPPORTED, NODE_TYPE_MANAGEMENT_OVERRIDES_SUPPORTED, NODE_TYPE_MANAGEMENT_PRIMARY_ITEM_NAME_SUPPORTED, NODE_TYPE_MANAGEMENT_PROPERTY_TYPES, NODE_TYPE_MANAGEMENT_RESIDUAL_DEFINITIONS_SUPPORTED, NODE_TYPE_MANAGEMENT_SAME_NAME_SIBLINGS_SUPPORTED, NODE_TYPE_MANAGEMENT_UPDATE_IN_USE_SUPORTED, NODE_TYPE_MANAGEMENT_VALUE_CONSTRAINTS_SUPPORTED, OPTION_ACCESS_CONTROL_SUPPORTED, OPTION_ACTIVITIES_SUPPORTED, OPTION_BASELINES_SUPPORTED, OPTION_JOURNALED_OBSERVATION_SUPPORTED, OPTION_LIFECYCLE_SUPPORTED, OPTION_LOCKING_SUPPORTED, OPTION_NODE_AND_PROPERTY_WITH_SAME_NAME_SUPPORTED, OPTION_NODE_TYPE_MANAGEMENT_SUPPORTED, OPTION_OBSERVATION_SUPPORTED, OPTION_QUERY_SQL_SUPPORTED, OPTION_RETENTION_SUPPORTED, OPTION_SHAREABLE_NODES_SUPPORTED, OPTION_SIMPLE_VERSIONING_SUPPORTED, OPTION_TRANSACTIONS_SUPPORTED, OPTION_UNFILED_CONTENT_SUPPORTED, OPTION_UPDATE_MIXIN_NODE_TYPES_SUPPORTED, OPTION_UPDATE_PRIMARY_NODE_TYPE_SUPPORTED, OPTION_VERSIONING_SUPPORTED, OPTION_WORKSPACE_MANAGEMENT_SUPPORTED, OPTION_XML_EXPORT_SUPPORTED, OPTION_XML_IMPORT_SUPPORTED, QUERY_FULL_TEXT_SEARCH_SUPPORTED, QUERY_JOINS, QUERY_JOINS_INNER, QUERY_JOINS_INNER_OUTER, QUERY_JOINS_NONE, QUERY_LANGUAGES, QUERY_STORED_QUERIES_SUPPORTED, QUERY_XPATH_DOC_ORDER, QUERY_XPATH_POS_INDEX, REP_NAME_DESC, REP_VENDOR_DESC, REP_VENDOR_URL_DESC, REP_VERSION_DESC, SPEC_NAME_DESC, SPEC_VERSION_DESC, WRITE_SUPPORTED
 
Constructor Summary
protected ProxyRepository()
          Protected constructor for subclasses that want to override the getRepository() method.
  ProxyRepository(Map<String,String> parameters)
          Creates a proxy for the repository (or repositories) accessible using the given repository parameters.
  ProxyRepository(RepositoryFactory factory)
          Creates a proxy for the repository (or repositories) accessible through the given factory.
  ProxyRepository(String uri)
          Creates a proxy for the repository accessible using the given repository URI.
 
Method Summary
 String getDescriptor(String key)
          Returns the descriptor with the given key from the proxied repository.
 String[] getDescriptorKeys()
          Returns the descriptor keys of the proxied repository, or an empty array if the proxied repository can not be accessed.
 Value getDescriptorValue(String key)
          Returns the value of the descriptor with the given key from the proxied repository.
 Value[] getDescriptorValues(String key)
          Returns the values of the descriptor with the given key from the proxied repository.
protected  Repository getRepository()
          Returns the proxied repository.
 boolean isSingleValueDescriptor(String key)
          Checks whether the given key identifies a valid single-valued descriptor key in the proxied repository.
 Session login(Credentials credentials, String workspace)
          Logs in to the proxied repository and returns the resulting session.
 
Methods inherited from class org.apache.jackrabbit.commons.AbstractRepository
isStandardDescriptor, login, login, login
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ProxyRepository

public ProxyRepository(RepositoryFactory factory)
Creates a proxy for the repository (or repositories) accessible through the given factory.

Parameters:
factory - repository factory

ProxyRepository

public ProxyRepository(Map<String,String> parameters)
Creates a proxy for the repository (or repositories) accessible using the given repository parameters.

Parameters:
parameters - repository parameters

ProxyRepository

public ProxyRepository(String uri)
Creates a proxy for the repository accessible using the given repository URI.

Parameters:
uri - repository URI

ProxyRepository

protected ProxyRepository()
Protected constructor for subclasses that want to override the getRepository() method.

Method Detail

getRepository

protected Repository getRepository()
                            throws RepositoryException
Returns the proxied repository. Subclasses can override this method to implement custom repository access mechanisms.

Returns:
repository
Throws:
RepositoryException - if the repository can not be accessed

getDescriptorKeys

public String[] getDescriptorKeys()
Returns the descriptor keys of the proxied repository, or an empty array if the proxied repository can not be accessed.

Returns:
descriptor keys (possibly empty)

isSingleValueDescriptor

public boolean isSingleValueDescriptor(String key)
Checks whether the given key identifies a valid single-valued descriptor key in the proxied repository. Returns false if the proxied repository can not be accessed.

Returns:
true if the key identifies a valid single-valued descriptor in the proxied repository, false otherwise

getDescriptor

public String getDescriptor(String key)
Returns the descriptor with the given key from the proxied repository. Returns null if the descriptor does not exist or if the proxied repository can not be accessed.

Parameters:
key - descriptor key
Returns:
descriptor value, or null

getDescriptorValue

public Value getDescriptorValue(String key)
Returns the value of the descriptor with the given key from the proxied repository. Returns null if the descriptor does not exist or if the proxied repository can not be accessed.

Parameters:
key - descriptor key
Returns:
descriptor value, or null

getDescriptorValues

public Value[] getDescriptorValues(String key)
Returns the values of the descriptor with the given key from the proxied repository. Returns null if the descriptor does not exist or if the proxied repository can not be accessed.

Parameters:
key - descriptor key
Returns:
descriptor values, or null

login

public Session login(Credentials credentials,
                     String workspace)
              throws RepositoryException
Logs in to the proxied repository and returns the resulting session.

Note that the Session.getRepository() method of the resulting session will return the proxied repository, not this repository proxy!

Throws:
RepositoryException - if the proxied repository can not be accessed, or if the login in the proxied repository fails


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