EntityManagerService.java

  1. /*
  2.  * Copyright (c) 2002-2022, City of Paris
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms, with or without
  6.  * modification, are permitted provided that the following conditions
  7.  * are met:
  8.  *
  9.  *  1. Redistributions of source code must retain the above copyright notice
  10.  *     and the following disclaimer.
  11.  *
  12.  *  2. Redistributions in binary form must reproduce the above copyright notice
  13.  *     and the following disclaimer in the documentation and/or other materials
  14.  *     provided with the distribution.
  15.  *
  16.  *  3. Neither the name of 'Mairie de Paris' nor 'Lutece' nor the names of its
  17.  *     contributors may be used to endorse or promote products derived from
  18.  *     this software without specific prior written permission.
  19.  *
  20.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  21.  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  22.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  23.  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
  24.  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  25.  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  26.  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  27.  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  28.  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  29.  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  30.  * POSSIBILITY OF SUCH DAMAGE.
  31.  *
  32.  * License 1.0
  33.  */
  34. package fr.paris.lutece.portal.service.jpa;

  35. import fr.paris.lutece.util.jpa.JPAConstants;

  36. import java.util.Map;

  37. import javax.persistence.EntityManagerFactory;

  38. import org.apache.logging.log4j.LogManager;
  39. import org.apache.logging.log4j.Logger;

  40. /**
  41.  * Class EntityManagerService
  42.  */
  43. public class EntityManagerService
  44. {
  45.     private static Logger _log = LogManager.getLogger( JPAConstants.JPA_LOGGER );
  46.     private static Map<String, EntityManagerFactory> _mapFactories;

  47.     /**
  48.      * Sets the map of factories (injected in core_context.xml)
  49.      *
  50.      * @param mapFactories
  51.      *            The factories map
  52.      */
  53.     public void setMapFactories( Map<String, EntityManagerFactory> mapFactories )
  54.     {
  55.         _mapFactories = mapFactories;
  56.     }

  57.     /**
  58.      * Returns all factories
  59.      *
  60.      * @return all factories
  61.      */
  62.     public Map<String, EntityManagerFactory> getEntityManagerFactories( )
  63.     {
  64.         return _mapFactories;
  65.     }

  66.     /**
  67.      * Gets an Entity Manager Factory for a given pool name
  68.      *
  69.      * @param strPoolName
  70.      *            The name of the persistence pool name
  71.      * @return An Entity Manager Factory
  72.      */
  73.     public EntityManagerFactory getEntityManagerFactory( String strPoolName )
  74.     {
  75.         EntityManagerFactory emf = _mapFactories.get( strPoolName );

  76.         if ( emf == null )
  77.         {
  78.             _log.error( "EntityManagerService Error - No factory was found for pool : {}", strPoolName );
  79.         }

  80.         return emf;
  81.     }
  82. }