package com.eucalyptus.entities;
import java.io.File;
import javax.persistence.Embeddable;
import javax.persistence.Entity;
import javax.persistence.MappedSuperclass;
import javax.persistence.PersistenceContext;
import org.apache.log4j.Logger;
import com.eucalyptus.bootstrap.BootstrapException;
import com.eucalyptus.bootstrap.ServiceJarDiscovery;
import com.eucalyptus.system.Ats;
import com.eucalyptus.system.BaseDirectory;
import com.google.common.collect.Multimap;
public class PersistenceContextDiscovery extends ServiceJarDiscovery {
private static Logger LOG = Logger.getLogger( PersistenceContextDiscovery.class );
public PersistenceContextDiscovery( ) {}
@Override
public Double getPriority( ) {
return 0.91d;
}
@Override
public boolean processClass( Class candidate ) throws Throwable {
if ( Ats.from( candidate ).has( Entity.class ) ) {
if ( !Ats.from( candidate ).has( PersistenceContext.class ) ) {
throw BootstrapException.throwFatal( "Database entity does not have required @PersistenceContext annotation: " + candidate.getCanonicalName( ) );
} else {
PersistenceContexts.addEntity( candidate );
return true;
}
} else if ( Ats.from( candidate ).has( MappedSuperclass.class ) || Ats.from( candidate ).has( Embeddable.class ) ) {
PersistenceContexts.addSharedEntity( candidate );
return true;
} else {
return false;
}
}
}