org.exolab.castor.mapping
Class Mapping
java.lang.Object
org.exolab.castor.mapping.Mapping
public class Mapping
extends java.lang.Object
Utility class for loading mapping files and providing them to the
XML marshaller, JDO engine etc. The mapping file can be loaded from
a URL, input stream or SAX
InputSource.
Multiple mapping files can be loaded with the same
Mapping
object. When loading master mapping files that include other mapping
files it might be convenient to use
setBaseURL(String)
or
setEntityResolver(EntityResolver)
.
If the desired class loader is different than the one used by Castor
(e.g. if Castor is installed as a Java extension), the
Mapping
object can be constructed with the proper class loader.
The following example loads two mapping files:
Mapping mapping;
mapping = new Mapping( getClass().getClassLoader() );
mapping.loadMapping( "mapping.xml" );
mapping.loadMapping( url );
$Revision: 1.1.1.1 $ $Date: 2003/03/03 07:08:27 $(package private) class | Mapping.ClassMappingResolver - An IDResolver to allow us to resolve ClassMappings
from included Mapping files
|
(package private) static class | Mapping.EngineMapping - Associates engine name (XML, JDO, etc) with the class of its
mapping loader.
|
(package private) class | Mapping.MappingState - A class to keep track of the loaded mapping.
|
Mapping() - Constructs a new mapping.
|
Mapping(ClassLoader loader) - Constructs a new mapping.
|
DAX
public static final Mapping.EngineMapping DAX
Use this object to obtain the mapping resolver for DAX from
getResolver
.
JDO
public static final Mapping.EngineMapping JDO
Use this object to obtain the mapping resolver for JDO from
getResolver
.
XML
public static final Mapping.EngineMapping XML
Use this object to obtain the mapping resolver for XML from
getResolver
.
Mapping
public Mapping()
Constructs a new mapping.
Mapping
public Mapping(ClassLoader loader)
Constructs a new mapping.
loader
- The class loader to use, null for the default
getClassLoader
public ClassLoader getClassLoader()
Returns the class loader used by this mapping object. The returned
class loaded may be the one passed in the constructor, the one used
to load Castor, or in some 1.1 JVMs null.
- The class loader used by this mapping object (may be null)
getResolver
public MappingResolver getResolver(Mapping.EngineMapping engine)
throws MappingException
Returns a mapping resolver for the suitable engine. The engine's
specific mapping loader is created and used to create engine
specific descriptors, returning a suitable mapping resolver.
The mapping resolver is cached in memory and returned in
subsequent method calls.
engine
- The mapping engine
MappingException
- A mapping error occured preventing
descriptors from being generated from the loaded mapping
getResolver
public MappingResolver getResolver(Mapping.EngineMapping engine,
Object param)
throws MappingException
Returns a mapping resolver for the suitable engine. The engine's
specific mapping loader is created and used to create engine
specific descriptors, returning a suitable mapping resolver.
The mapping resolver is cached in memory and returned in
subsequent method calls.
engine
- The mapping engineparam
- Arbitrary parameter that is to be passed to resolver.loadMapping()
MappingException
- A mapping error occured preventing
descriptors from being generated from the loaded mapping
getRoot
public MappingRoot getRoot()
Returns a MappingRoot which contains all loaded mapping classes and
key generators definition.
loadMapping
public void loadMapping(InputSource source)
throws IOException,
MappingException
Loads the mapping from the specified input source.
source
- The input source
loadMapping
public void loadMapping(String url)
throws IOException,
MappingException
Loads the mapping from the specified URL. If an entity resolver
was specified, will use the entity resolver to resolve the URL.
This method is also used to load mappings referenced from another
mapping or configuration file.
url
- The URL of the mapping file
loadMapping
public void loadMapping(URL url)
throws IOException,
MappingException
Loads the mapping from the specified URL.
url
- The URL of the mapping file
setAllowRedefinitions
public void setAllowRedefinitions(boolean allow)
Enables or disables the ability to allow the redefinition
of class mappings.
allow
- a boolean that when true enables redefinitions.
setBaseURL
public void setBaseURL(String url)
Sets the base URL for the mapping and related files. If the base
URL is known, files can be included using relative names. Any URL
can be passed, if the URL can serve as a base URL it will be used.
If url is an absolute path, it is converted to a file URL.
setEntityResolver
public void setEntityResolver(EntityResolver resolver)
Sets the entity resolver. The entity resolver can be used to
resolve external entities and cached documents that are used
from within mapping files.
resolver
- The entity resolver to use
setLogWriter
public void setLogWriter(PrintWriter logWriter)
Sets the log writer. If not null, errors and other messages
will be directed to that log writer.
logWriter
- The log writer to use
Intalio Inc. (C) 1999-2003. All rights reserved http://www.intalio.com