org.hibernate.boot.model.process.internal.ManagedResourcesImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hibernate-core Show documentation
Show all versions of hibernate-core Show documentation
Hibernate's core ORM functionality
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or .
*/
package org.hibernate.boot.model.process.internal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.hibernate.boot.AttributeConverterInfo;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.jaxb.spi.Binding;
import org.hibernate.boot.model.process.spi.ManagedResources;
import org.hibernate.boot.spi.BootstrapContext;
import org.hibernate.boot.spi.MetadataBuildingOptions;
import org.hibernate.cfg.AttributeConverterDefinition;
/**
* @author Steve Ebersole
*/
public class ManagedResourcesImpl implements ManagedResources {
private Map attributeConverterInfoMap = new HashMap<>();
private Set annotatedClassReferences = new LinkedHashSet();
private Set annotatedClassNames = new LinkedHashSet();
private Set annotatedPackageNames = new LinkedHashSet();
private List mappingFileBindings = new ArrayList();
public static ManagedResourcesImpl baseline(MetadataSources sources, BootstrapContext bootstrapContext) {
final ManagedResourcesImpl impl = new ManagedResourcesImpl();
bootstrapContext.getAttributeConverters().forEach( impl::addAttributeConverterDefinition );
impl.annotatedClassReferences.addAll( sources.getAnnotatedClasses() );
impl.annotatedClassNames.addAll( sources.getAnnotatedClassNames() );
impl.annotatedPackageNames.addAll( sources.getAnnotatedPackages() );
impl.mappingFileBindings.addAll( sources.getXmlBindings() );
return impl;
}
private ManagedResourcesImpl() {
}
@Override
public Collection getAttributeConverterDefinitions() {
return Collections.unmodifiableCollection( attributeConverterInfoMap.values() );
}
@Override
public Collection getAnnotatedClassReferences() {
return Collections.unmodifiableSet( annotatedClassReferences );
}
@Override
public Collection getAnnotatedClassNames() {
return Collections.unmodifiableSet( annotatedClassNames );
}
@Override
public Collection getAnnotatedPackageNames() {
return Collections.unmodifiableSet( annotatedPackageNames );
}
@Override
public Collection getXmlMappingBindings() {
return Collections.unmodifiableList( mappingFileBindings );
}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// package private
void addAttributeConverterDefinition(AttributeConverterInfo converterInfo) {
attributeConverterInfoMap.put( converterInfo.getConverterClass(), converterInfo );
}
void addAnnotatedClassReference(Class annotatedClassReference) {
annotatedClassReferences.add( annotatedClassReference );
}
void addAnnotatedClassName(String annotatedClassName) {
annotatedClassNames.add( annotatedClassName );
}
void addAnnotatedPackageName(String annotatedPackageName) {
annotatedPackageNames.add( annotatedPackageName );
}
void addXmlBinding(Binding binding) {
mappingFileBindings.add( binding );
}
}