Class MetadataSources
- java.lang.Object
-
- org.hibernate.boot.MetadataSources
-
- All Implemented Interfaces:
Serializable
public class MetadataSources extends Object implements Serializable
Entry point for working with sources of O/R mapping metadata, either in the form of annotated classes, or as XML mapping documents.Note that XML mappings may be expressed using the JPA
orm.xmlformat, or in Hibernate's legacy.hbm.xmlformat.An instance of
MetadataSourcesmay be obtained simply by instantiation, usingnew MetadataSources(). The client must register sources and then callbuildMetadata(), or usegetMetadataBuilder()to customize how the sources are processed (by registering naming strategies, etc).As an alternative to working directly with
MetadataSources, andMetadata, a program may useConfiguration.- Since:
- 5.0
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description MetadataSources()Create a new instance, using a defaultBootstrapServiceRegistry.MetadataSources(ServiceRegistry serviceRegistry)Create a new instance using the givenServiceRegistry.MetadataSources(ServiceRegistry serviceRegistry, XmlMappingBinderAccess xmlMappingBinderAccess)Create a new instance using the givenServiceRegistry.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description MetadataSourcesaddAnnotatedClass(Class<?> annotatedClass)Read metadata from the annotations attached to the given class.MetadataSourcesaddAnnotatedClasses(Class<?>... annotatedClasses)Vararg form ofaddAnnotatedClass(Class).MetadataSourcesaddAnnotatedClassName(String annotatedClassName)Read metadata from the annotations attached to the given class.MetadataSourcesaddAnnotatedClassNames(String... annotatedClassNames)Vararg form ofaddAnnotatedClassName(String).MetadataSourcesaddCacheableFile(File file)Add a cached mapping file.MetadataSourcesaddCacheableFile(File file, File cacheDirectory)Add a cached mapping file.MetadataSourcesaddCacheableFile(String path)Add acached mapping file.MetadataSourcesaddCacheableFile(String path, File cacheDirectory)Add acached mapping file.MetadataSourcesaddCacheableFileStrictly(File file)INTENDED FOR TESTSUITE USE ONLY!MetadataSourcesaddCacheableFileStrictly(File file, File cacheDir)INTENDED FOR TESTSUITE USE ONLY!MetadataSourcesaddDirectory(File dir)Read all.hbm.xmlmapping documents from a directory tree.MetadataSourcesaddFile(File file)Read mappings from a particular XML file.MetadataSourcesaddFile(String path)Read mappings from a particular XML file.MetadataSourcesaddInputStream(InputStream xmlInputStream)Read metadata from anInputStream.MetadataSourcesaddInputStream(InputStreamAccess xmlInputStreamAccess)Read metadata from anInputStreamaccessMetadataSourcesaddJar(File jar)Read all.hbm.xmlmappings from a jar file.MetadataSourcesaddPackage(Package packageRef)Read package-level metadata.MetadataSourcesaddPackage(String packageName)Read package-level metadata.MetadataSourcesaddQueryImport(String importedName, Class<?> target)MetadataSourcesaddResource(String name)Read mappings as an application resourceName (i.e.MetadataSourcesaddURL(URL url)Read mappings from aURLMetadataSourcesaddXmlBinding(Binding<?> binding)Add XML mapping bindings created from an arbitrary source by the binder.MetadatabuildMetadata()Shorthand form of callinggetMetadataBuilder()and using itsMetadataBuilder.build()method in cases where the application wants to accept the defaults.MetadatabuildMetadata(StandardServiceRegistry serviceRegistry)Collection<Class<?>>getAnnotatedClasses()Collection<String>getAnnotatedClassNames()Collection<String>getAnnotatedPackages()Map<String,Class<?>>getExtraQueryImports()MetadataBuildergetMetadataBuilder()Get a builder for metadata where non-default options can be specified.MetadataBuildergetMetadataBuilder(StandardServiceRegistry serviceRegistry)Get a builder for metadata where non-default options can be specified.ServiceRegistrygetServiceRegistry()List<Binding<BindableMappingDescriptor>>getXmlBindings()XmlMappingBinderAccessgetXmlMappingBinderAccess()protected static booleanisExpectedServiceRegistryType(ServiceRegistry serviceRegistry)
-
-
-
Constructor Detail
-
MetadataSources
public MetadataSources()
Create a new instance, using a defaultBootstrapServiceRegistry.
-
MetadataSources
public MetadataSources(ServiceRegistry serviceRegistry)
Create a new instance using the givenServiceRegistry.- Parameters:
serviceRegistry- The service registry to use.
-
MetadataSources
public MetadataSources(ServiceRegistry serviceRegistry, XmlMappingBinderAccess xmlMappingBinderAccess)
Create a new instance using the givenServiceRegistry.- Parameters:
serviceRegistry- The service registry to use.
-
-
Method Detail
-
isExpectedServiceRegistryType
protected static boolean isExpectedServiceRegistryType(ServiceRegistry serviceRegistry)
-
getXmlMappingBinderAccess
public XmlMappingBinderAccess getXmlMappingBinderAccess()
-
getXmlBindings
public List<Binding<BindableMappingDescriptor>> getXmlBindings()
-
getAnnotatedPackages
public Collection<String> getAnnotatedPackages()
-
getAnnotatedClasses
public Collection<Class<?>> getAnnotatedClasses()
-
getAnnotatedClassNames
public Collection<String> getAnnotatedClassNames()
-
getServiceRegistry
public ServiceRegistry getServiceRegistry()
-
getMetadataBuilder
public MetadataBuilder getMetadataBuilder()
Get a builder for metadata where non-default options can be specified.- Returns:
- The built metadata.
-
getMetadataBuilder
@Internal public MetadataBuilder getMetadataBuilder(StandardServiceRegistry serviceRegistry)
Get a builder for metadata where non-default options can be specified.- Returns:
- The built metadata.
-
buildMetadata
public Metadata buildMetadata()
Shorthand form of callinggetMetadataBuilder()and using itsMetadataBuilder.build()method in cases where the application wants to accept the defaults.- Returns:
- The built metadata.
-
buildMetadata
public Metadata buildMetadata(StandardServiceRegistry serviceRegistry)
-
addAnnotatedClass
public MetadataSources addAnnotatedClass(Class<?> annotatedClass)
Read metadata from the annotations attached to the given class.- Parameters:
annotatedClass- The class containing annotations- Returns:
- this (for method chaining)
-
addAnnotatedClasses
public MetadataSources addAnnotatedClasses(Class<?>... annotatedClasses)
Vararg form ofaddAnnotatedClass(Class).
-
addAnnotatedClassName
public MetadataSources addAnnotatedClassName(String annotatedClassName)
Read metadata from the annotations attached to the given class. The important distinction here is that theClasswill not be accessed until later, which is important for on-the-fly bytecode enhancement- Parameters:
annotatedClassName- The name of a class containing annotations- Returns:
- this (for method chaining)
-
addAnnotatedClassNames
public MetadataSources addAnnotatedClassNames(String... annotatedClassNames)
Vararg form ofaddAnnotatedClassName(String).
-
addQueryImport
public MetadataSources addQueryImport(String importedName, Class<?> target)
-
addPackage
public MetadataSources addPackage(String packageName)
Read package-level metadata.- Parameters:
packageName- java package name without trailing '.', cannot benull- Returns:
- this (for method chaining)
-
addPackage
public MetadataSources addPackage(Package packageRef)
Read package-level metadata.- Parameters:
packageRef- Java Package reference- Returns:
- this (for method chaining)
-
addResource
public MetadataSources addResource(String name)
Read mappings as an application resourceName (i.e. classpath lookup).- Parameters:
name- The resource name- Returns:
- this (for method chaining purposes)
-
addFile
public MetadataSources addFile(String path)
Read mappings from a particular XML file.The given path is resolved using
File(String).- Parameters:
path- The path to a file- Returns:
- this (for method chaining purposes)
- See Also:
addFile(File)
-
addFile
public MetadataSources addFile(File file)
Read mappings from a particular XML file.- Parameters:
file- The reference to the XML file- Returns:
- this (for method chaining purposes)
-
addXmlBinding
public MetadataSources addXmlBinding(Binding<?> binding)
Add XML mapping bindings created from an arbitrary source by the binder.- Parameters:
binding- The binding- Returns:
- this (for method chaining purposes)
-
addCacheableFile
public MetadataSources addCacheableFile(String path)
Add acached mapping file.The given path is resolved using
File(String).- Parameters:
path- The path to a file- Returns:
- this (for method chaining purposes)
- See Also:
addCacheableFile(File)
-
addCacheableFile
public MetadataSources addCacheableFile(String path, File cacheDirectory)
Add acached mapping file.The given path is resolved using
File(String).- Parameters:
path- The path to a file- Returns:
- this (for method chaining purposes)
- See Also:
addCacheableFile(File)
-
addCacheableFile
public MetadataSources addCacheableFile(File file)
Add a cached mapping file. A cached file is a serialized representation of the DOM structure of a particular mapping. It is saved from a previous call as a file with the name{xmlFile}.binwhere{xmlFile}is the name of the original mapping file.If a cached
{xmlFile}.binexists and is newer than{xmlFile}, the{xmlFile}.binfile will be read directly. Otherwise{xmlFile}is read and then serialized to{xmlFile}.binfor use the next time.- Parameters:
file- The cacheable mapping file to be added,{xmlFile}in above discussion.- Returns:
- this (for method chaining purposes)
-
addCacheableFile
public MetadataSources addCacheableFile(File file, File cacheDirectory)
Add a cached mapping file. A cached file is a serialized representation of the DOM structure of a particular mapping. It is saved from a previous call as a file with the name{xmlFile}.binwhere{xmlFile}is the name of the original mapping file.If a cached
{xmlFile}.binexists and is newer than{xmlFile}, the{xmlFile}.binfile will be read directly. Otherwise{xmlFile}is read and then serialized to{xmlFile}.binfor use the next time.- Parameters:
file- The cacheable mapping file to be added,{xmlFile}in above discussion.- Returns:
- this (for method chaining purposes)
-
addCacheableFileStrictly
public MetadataSources addCacheableFileStrictly(File file) throws SerializationException
INTENDED FOR TESTSUITE USE ONLY!Much like
addCacheableFile(File)except that here we will fail immediately if the cache version cannot be found or used for whatever reason.- Parameters:
file- The xml file, not the bin!- Returns:
- The dom "deserialized" from the cached file.
- Throws:
SerializationException- Indicates a problem deserializing the cached dom treeMappingNotFoundException- Indicates that the cached file was not found or was not usable.
-
addCacheableFileStrictly
public MetadataSources addCacheableFileStrictly(File file, File cacheDir) throws SerializationException
INTENDED FOR TESTSUITE USE ONLY!Much like
addCacheableFile(File)except that here we will fail immediately if the cache version cannot be found or used for whatever reason.- Parameters:
file- The xml file, not the bin!- Returns:
- The dom "deserialized" from the cached file.
- Throws:
SerializationException- Indicates a problem deserializing the cached dom treeMappingNotFoundException- Indicates that the cached file was not found or was not usable.
-
addInputStream
public MetadataSources addInputStream(InputStreamAccess xmlInputStreamAccess)
Read metadata from anInputStreamaccess- Parameters:
xmlInputStreamAccess- Access to an input stream containing a DOM.- Returns:
- this (for method chaining purposes)
-
addInputStream
public MetadataSources addInputStream(InputStream xmlInputStream)
Read metadata from anInputStream.- Parameters:
xmlInputStream- The input stream containing a DOM.- Returns:
- this (for method chaining purposes)
-
addURL
public MetadataSources addURL(URL url)
Read mappings from aURL- Parameters:
url- The url for the mapping document to be read.- Returns:
- this (for method chaining purposes)
-
addJar
public MetadataSources addJar(File jar)
Read all.hbm.xmlmappings from a jar file.Assumes that any file named
*.hbm.xmlis a mapping document. This method does not supportorm.xmlfiles!- Parameters:
jar- a jar file- Returns:
- this (for method chaining purposes)
-
addDirectory
public MetadataSources addDirectory(File dir)
Read all.hbm.xmlmapping documents from a directory tree.Assumes that any file named
*.hbm.xmlis a mapping document. This method does not supportorm.xmlfiles!- Parameters:
dir- The directory- Returns:
- this (for method chaining purposes)
- Throws:
MappingException- Indicates problems reading the jar file or processing the contained mapping documents.
-
-