/*
* 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 <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.jpa.boot.internal;
import java.net.URL;
import java.util.Collections;
import java.util.List;
import org.hibernate.jpa.boot.spi.PersistenceUnitDescriptor;
import org.hibernate.boot.archive.scan.spi.ScanEnvironment;
/**
* Implementation of ScanEnvironment leveraging a JPA deployment descriptor.
*
* @author Steve Ebersole
*/
public class StandardJpaScanEnvironmentImpl implements ScanEnvironment {
private final PersistenceUnitDescriptor persistenceUnitDescriptor;
private final List<String> explicitlyListedClassNames;
private final List<String> explicitlyListedMappingFiles;
public StandardJpaScanEnvironmentImpl(PersistenceUnitDescriptor persistenceUnitDescriptor) {
this.persistenceUnitDescriptor = persistenceUnitDescriptor;
this.explicitlyListedClassNames = persistenceUnitDescriptor.getManagedClassNames() == null
? Collections.<String>emptyList()
: persistenceUnitDescriptor.getManagedClassNames();
this.explicitlyListedMappingFiles = persistenceUnitDescriptor.getMappingFileNames() == null
? Collections.<String>emptyList()
: persistenceUnitDescriptor.getMappingFileNames();
}
@Override
public URL getRootUrl() {
return persistenceUnitDescriptor.getPersistenceUnitRootUrl();
}
@Override
public List<URL> getNonRootUrls() {
return persistenceUnitDescriptor.getJarFileUrls();
}
@Override
public List<String> getExplicitlyListedClassNames() {
return explicitlyListedClassNames;
}
@Override
public List<String> getExplicitlyListedMappingFiles() {
return explicitlyListedMappingFiles;
}
}