AbstractLuteceHome.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.IGenericDAO;
  36. import fr.paris.lutece.util.jpa.IGenericHome;

  37. import org.springframework.transaction.annotation.Transactional;

  38. import java.util.List;

  39. /**
  40.  * The Class AbstractLuteceHome.
  41.  *
  42.  * @param <K>
  43.  *            the key type
  44.  * @param <E>
  45.  *            the element type
  46.  * @param <D>
  47.  *            the generic type
  48.  */
  49. public abstract class AbstractLuteceHome<K, E, D extends IGenericDAO<K, E>> implements IGenericHome<K, E>
  50. {
  51.     private D _dao;

  52.     /**
  53.      * Sets the dao.
  54.      *
  55.      * @param dao
  56.      *            the new dao
  57.      */
  58.     public void setDao( D dao )
  59.     {
  60.         _dao = dao;
  61.     }

  62.     /**
  63.      * Gets the dao.
  64.      *
  65.      * @return the dao
  66.      */
  67.     public D getDao( )
  68.     {
  69.         return _dao;
  70.     }

  71.     /**
  72.      * {@inheritDoc}
  73.      */
  74.     @Override
  75.     @Transactional
  76.     public void create( E entityBean )
  77.     {
  78.         getDao( ).create( entityBean );
  79.     }

  80.     /**
  81.      * {@inheritDoc}
  82.      */
  83.     @Override
  84.     @Transactional
  85.     public void remove( K key )
  86.     {
  87.         getDao( ).remove( key );
  88.     }

  89.     /**
  90.      * {@inheritDoc}
  91.      */
  92.     @Override
  93.     public E findByPrimaryKey( K key )
  94.     {
  95.         return getDao( ).findById( key );
  96.     }

  97.     /**
  98.      * {@inheritDoc}
  99.      */
  100.     @Override
  101.     @Transactional
  102.     public void update( E entityBean )
  103.     {
  104.         getDao( ).update( entityBean );
  105.     }

  106.     /**
  107.      * {@inheritDoc}
  108.      */
  109.     @Override
  110.     public List<E> findAll( )
  111.     {
  112.         return getDao( ).findAll( );
  113.     }
  114. }