org.alfresco.util.resource
Class HierarchicalResourceLoader
java.lang.Object
org.springframework.core.io.DefaultResourceLoader
org.alfresco.util.resource.HierarchicalResourceLoader
- All Implemented Interfaces:
- org.springframework.beans.factory.InitializingBean, org.springframework.core.io.ResourceLoader
public class HierarchicalResourceLoader
- extends org.springframework.core.io.DefaultResourceLoader
- implements org.springframework.beans.factory.InitializingBean
Locate resources by using a class hierarchy to drive the search. The well-known
placeholder HierarchicalResourceLoader.DEFAULT_DIALECT_PLACEHOLDER
is replaced with successive class
names starting from the dialect class
and
progressing up the hierarchy until the base class
is reached. A full resource search using Spring's DefaultResourceLoader
is
done at each point until the resource is found or the base of the class hierarchy is
reached.
For example assume classpath resources:
RESOURCE 1: config/ibatis/org.hibernate.dialect.Dialect/SqlMap-DOG.xml
RESOURCE 2: config/ibatis/org.hibernate.dialect.MySQLInnoDBDialect/SqlMap-DOG.xml
RESOURCE 3: config/ibatis/org.hibernate.dialect.Dialect/SqlMap-CAT.xml
RESOURCE 4: config/ibatis/org.hibernate.dialect.MySQLDialect/SqlMap-CAT.xml
and
dialectBaseClass = org.hibernate.dialect.Dialect
For dialect org.hibernate.dialect.MySQLInnoDBDialect the following will be returned:
config/ibatis/#resource.dialect#/SqlMap-DOG.xml == RESOURCE 2
config/ibatis/#resource.dialect#/SqlMap-CAT.xml == RESOURCE 4
For dialectorg.hibernate.dialect.MySQLDBDialect the following will be returned:
config/ibatis/#resource.dialect#/SqlMap-DOG.xml == RESOURCE 1
config/ibatis/#resource.dialect#/SqlMap-CAT.xml == RESOURCE 4
For dialectorg.hibernate.dialect.Dialect the following will be returned:
config/ibatis/#resource.dialect#/SqlMap-DOG.xml == RESOURCE 1
config/ibatis/#resource.dialect#/SqlMap-CAT.xml == RESOURCE 3
- Since:
- 3.2 (Mobile)
Fields inherited from interface org.springframework.core.io.ResourceLoader |
CLASSPATH_URL_PREFIX |
Method Summary |
void |
afterPropertiesSet()
|
org.springframework.core.io.Resource |
getResource(java.lang.String location)
Get a resource using the defined class hierarchy as a search path. |
void |
setDialectBaseClass(java.lang.String className)
Set the class to be used during hierarchical dialect replacement. |
void |
setDialectClass(java.lang.String className)
|
Methods inherited from class org.springframework.core.io.DefaultResourceLoader |
getClassLoader, getResourceByPath, setClassLoader |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DEFAULT_DIALECT_PLACEHOLDER
public static final java.lang.String DEFAULT_DIALECT_PLACEHOLDER
- See Also:
- Constant Field Values
DEFAULT_DIALECT_REGEX
public static final java.lang.String DEFAULT_DIALECT_REGEX
- See Also:
- Constant Field Values
HierarchicalResourceLoader
public HierarchicalResourceLoader()
- Create a new HierarchicalResourceLoader.
setDialectBaseClass
public void setDialectBaseClass(java.lang.String className)
- Set the class to be used during hierarchical dialect replacement. Searches for the
configuration location will not go further up the hierarchy than this class.
- Parameters:
className
- the name of the class or interface
setDialectClass
public void setDialectClass(java.lang.String className)
afterPropertiesSet
public void afterPropertiesSet()
throws java.lang.Exception
- Specified by:
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
- Throws:
java.lang.Exception
getResource
public org.springframework.core.io.Resource getResource(java.lang.String location)
- Get a resource using the defined class hierarchy as a search path.
- Specified by:
getResource
in interface org.springframework.core.io.ResourceLoader
- Overrides:
getResource
in class org.springframework.core.io.DefaultResourceLoader
- Parameters:
location
- the location including a placeholder
- Returns:
- a resource found by successive searches using class name replacement, or
null if not found.
Copyright © 2005 - 2010 Alfresco Software, Inc. All Rights Reserved.