// ======================================================================== // Copyright (C) zeroth Project Team. All rights reserved. // GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 // http://www.gnu.org/licenses/agpl-3.0.txt // ======================================================================== package zeroth.framework.enterprise.infra.persistence; import java.io.Serializable; import javax.enterprise.inject.Default; import javax.persistence.EntityManager; import zeroth.framework.enterprise.shared.Persistable; /** * データ永続化サービスのファクトリ * @author nilcy */ @Default @SuppressWarnings("unused") public class PersistenceServiceFactoryImpl implements PersistenceServiceFactory { /** {@inheritDoc} */ @Override public <E extends Persistable<ID>, ID extends Serializable> SimplePersistenceService<E, ID> createSimplePersistenceService( final EntityManager manager, final Class<E> clazz) { return new SimplePersistenceServiceImpl<E, ID>(manager, clazz); } /** {@inheritDoc} */ @Override public <E extends Persistable<ID>, ID extends Serializable> NativePersistenceService<E, ID> createNativePersistenceService( final EntityManager manager, final Class<E> clazz) { return new NativePersistenceServiceImpl<E, ID>(manager, clazz); } /** {@inheritDoc} */ @Override public <E extends Persistable<ID>, ID extends Serializable> StandardPersistenceService<E, ID> createStandardPersistenceService( final EntityManager manager, final Class<E> clazz) { return new StandardPersistenceServiceImpl<E, ID>(manager, clazz); } /** {@inheritDoc} */ @Override public <E extends Persistable<ID>, ID extends Serializable> QueryPersistenceService<E, ID> createQueryPersistenceService( final EntityManager manager, final Class<E> clazz) { return new QueryPersistenceServiceImpl<E, ID>(manager, clazz); } }