org.compass.core.mapping
Class CompassMapping

java.lang.Object
  extended by org.compass.core.mapping.CompassMapping

public class CompassMapping
extends Object

Author:
kimchy

Constructor Summary
CompassMapping()
           
 
Method Summary
 void addMapping(AliasMapping mapping)
           
 void clearMappings()
           
 CompassMapping copy(ConverterLookup converterLookup)
           
 ResourceMapping findNonRootMappingByClass(Class clazz)
          Finds a non root mapping by the class name.
 ResourceMapping findRootMappingByClass(Class clazz)
          Finds a root mapping by the class name.
 AliasMapping getAliasMapping(String alias)
          Returns the alias mapping for the given alias (most if not all of the times, this will be a ResourceMapping).
 List<ResourceMapping> getAllDirectMappingByClass(Class clazz)
          Returns all the direct class mapping for the given class (root or not).
 ConverterLookup getConverterLookup()
           
 ResourceMapping getDirectMappingByClass(Class clazz)
          Returns the direct class mapping for the given class (root or not).
 ResourceMapping getMappingByAlias(String alias)
          Returns the resource mapping for the given alias.
 ResourceMapping getMappingByClass(Class clazz)
          Finds the Resource mapping that is the "nearest" to the provided class.
 ResourceMapping getNonRootMappingByAlias(String alias)
          Returns the non root resource mapping associated with the alias.
 ResourceMapping getNonRootMappingByClass(Class clazz)
          Does exactly the same as findNonRootMappingByClass(Class), but returns null if nothing is found (does not throw an exception).
 PropertyPath getPath()
           
 ResourcePropertyLookup getResourcePropertyLookup(String name)
          Returns a resoruce lookup for a specific name.
 ResourcePropertyMapping getResourcePropertyMappingByPath(String path)
          Finds the ResourcePropertyMapping definition for the specified path.
 ResourcePropertyMapping[] getResourcePropertyMappingsByPath(String path)
          Returns an array of all the given ResourcePropertyMapping for the given path.
 ResourceMapping getRootMappingByAlias(String alias)
          Returns the root resource mapping associated with the alias.
 ResourceMapping getRootMappingByClass(Class clazz)
          Does exactly the same as findRootMappingByClass(Class), but returns null if nothing is found (does not throw an exception).
 ResourceMapping[] getRootMappings()
           
 boolean hasMultipleRootClassMapping(String className)
          Returns true if the given className has multiple class mappings.
 boolean hasRootClassMapping(String alias)
          Returns true if there is a root ClassMapping for the given alias.
 boolean hasRootMappingByAlias(String alias)
          Returns true if the given alias has a root resource mapping.
 boolean hasRootRawResourceMapping(String alias)
          Returns true if there is a root RawResourceMapping for the given alias.
 Iterator mappingsIt()
          Returns an itertor over all the current mappings.
 void postProcess()
           
 void setPath(PropertyPath path)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CompassMapping

public CompassMapping()
Method Detail

copy

public CompassMapping copy(ConverterLookup converterLookup)

postProcess

public void postProcess()

clearMappings

public void clearMappings()

addMapping

public void addMapping(AliasMapping mapping)
                throws MappingException
Throws:
MappingException

getResourcePropertyLookup

public ResourcePropertyLookup getResourcePropertyLookup(String name)
                                                 throws IllegalArgumentException
Returns a resoruce lookup for a specific name. Supports dot path notation ([alias].[class property].). Allows to get the meta-data/resource property mapping through it (or a list of mappings).

Throws:
IllegalArgumentException

getResourcePropertyMappingByPath

public ResourcePropertyMapping getResourcePropertyMappingByPath(String path)
Finds the ResourcePropertyMapping definition for the specified path. The path is in the format of: [alias].[class property mapping].[meta data mapping] in case of class mapping, and [alias].[resource property mapping] in case of resource mapping. The format of [alias].[class property mapping] can also be applied, and will result in the meta data id of the given class property mapping.

Parameters:
path - the path to the resource property mapping
Returns:
the resource property mapping for the given path

getResourcePropertyMappingsByPath

public ResourcePropertyMapping[] getResourcePropertyMappingsByPath(String path)
Returns an array of all the given ResourcePropertyMapping for the given path. If the path is in "dot path" notation, will reutrn a single mappings matching it (see getResourcePropertyMappingByPath(String)). Otherwise will return all the ones mapped to the given name.


mappingsIt

public Iterator mappingsIt()
Returns an itertor over all the current mappings.


getAliasMapping

public AliasMapping getAliasMapping(String alias)
Returns the alias mapping for the given alias (most if not all of the times, this will be a ResourceMapping).


getMappingByAlias

public ResourceMapping getMappingByAlias(String alias)
Returns the resource mapping for the given alias.


getRootMappingByAlias

public ResourceMapping getRootMappingByAlias(String alias)
Returns the root resource mapping associated with the alias. Retruns null if no root mapping (or no mapping) is associated with the alias.


getNonRootMappingByAlias

public ResourceMapping getNonRootMappingByAlias(String alias)
Returns the non root resource mapping associated with the alias. Retruns null if no non root mapping (or no mapping) is associated with the alias.


hasRootMappingByAlias

public boolean hasRootMappingByAlias(String alias)
Returns true if the given alias has a root resource mapping.


hasRootClassMapping

public boolean hasRootClassMapping(String alias)
Returns true if there is a root ClassMapping for the given alias.


hasRootRawResourceMapping

public boolean hasRootRawResourceMapping(String alias)
Returns true if there is a root RawResourceMapping for the given alias.


hasMultipleRootClassMapping

public boolean hasMultipleRootClassMapping(String className)
Returns true if the given className has multiple class mappings.


getDirectMappingByClass

public ResourceMapping getDirectMappingByClass(Class clazz)
Returns the direct class mapping for the given class (root or not). Will not try to navigate up the interface/superclass in order to find the "nearset" class mapping.

If a class has more than one mappings (using differnet aliases) will return the first one.


getAllDirectMappingByClass

public List<ResourceMapping> getAllDirectMappingByClass(Class clazz)
Returns all the direct class mapping for the given class (root or not). Will not try to navigate up the interface/superclass in order to find the "nearest" class mapping.


getMappingByClass

public ResourceMapping getMappingByClass(Class clazz)
Finds the Resource mapping that is the "nearest" to the provided class. Similar way that findRootMappingByClass(Class) except the search is on all the ClassMappings (even ones that are not marked as root).


findRootMappingByClass

public ResourceMapping findRootMappingByClass(Class clazz)
                                       throws MappingException
Finds a root mapping by the class name. If a root mapping is not found for the class name, than searches for mappings for the interfaces, if not found, checks for subclasses, and subclassess interfaces. Note: If there is no direct mapping that match the class name, then the mapping that is found should be marked as poly.

Parameters:
clazz - The class to find root mapping for
Returns:
The resource mapping
Throws:
MappingException

getRootMappingByClass

public ResourceMapping getRootMappingByClass(Class clazz)
                                      throws MappingException
Does exactly the same as findRootMappingByClass(Class), but returns null if nothing is found (does not throw an exception).

Throws:
MappingException

findNonRootMappingByClass

public ResourceMapping findNonRootMappingByClass(Class clazz)
                                          throws MappingException
Finds a non root mapping by the class name. If a non root mapping is not found for the class name, than searches for mappings for the interfaces, if not found, checks for subclasses, and subclassess interfaces. Note: If there is no direct mapping that match the class name, then the mapping that is found should be marked as poly.

Parameters:
clazz - The class to find root mapping for
Returns:
The resource mapping
Throws:
MappingException

getNonRootMappingByClass

public ResourceMapping getNonRootMappingByClass(Class clazz)
                                         throws MappingException
Does exactly the same as findNonRootMappingByClass(Class), but returns null if nothing is found (does not throw an exception).

Throws:
MappingException

getRootMappings

public ResourceMapping[] getRootMappings()

getConverterLookup

public ConverterLookup getConverterLookup()

getPath

public PropertyPath getPath()

setPath

public void setPath(PropertyPath path)


Copyright (c) 2004-2008 The Compass Project.