Coverage Report - fr.paris.lutece.plugins.dila.business.fichelocale.dao.impl.LocalCardDAO
 
Classes in this File Line Coverage Branch Coverage Complexity
LocalCardDAO
0 %
0/88
0 %
0/16
2
 
 1  
 /*
 2  
  * Copyright (c) 2002-2014, Mairie de 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.plugins.dila.business.fichelocale.dao.impl;
 35  
 
 36  
 import fr.paris.lutece.plugins.dila.business.fichelocale.dao.ILocalCardDAO;
 37  
 import fr.paris.lutece.plugins.dila.business.fichelocale.dto.LocalCardDTO;
 38  
 import fr.paris.lutece.plugins.dila.business.fichelocale.dto.LocalDTO;
 39  
 import fr.paris.lutece.plugins.dila.service.DilaPlugin;
 40  
 import fr.paris.lutece.portal.service.plugin.PluginService;
 41  
 import fr.paris.lutece.util.sql.DAOUtil;
 42  
 
 43  
 import java.io.Serializable;
 44  
 import java.util.ArrayList;
 45  
 import java.util.List;
 46  
 
 47  
 
 48  
 /**
 49  
  * Implements {@link ILocalCardDAO}
 50  
  */
 51  0
 public class LocalCardDAO implements ILocalCardDAO, Serializable
 52  
 {
 53  
     /** Serial ID */
 54  
     private static final long serialVersionUID = 1687246174844997810L;
 55  
 
 56  
     // QUERIES
 57  
     private static final String SQL_QUERY_NEW_PK = "SELECT max(id) FROM dila_local_card";
 58  
     private static final String SQL_QUERY_INSERT = " INSERT INTO dila_local_card "
 59  
             + "( id, parent_folder_id, sibling_card_id, position, local_id ) " + " VALUES ( ?, ? ,?, ?, ?)";
 60  
     private static final String SQL_QUERY_SELECT_CARD_ID_BY_LOCAL_ID = "SELECT "
 61  
             + "id  FROM dila_local_card WHERE local_id = ?";
 62  
     private static final String SQL_QUERY_SELECT_CARD_BY_LOCAL_ID = "SELECT "
 63  
             + "fiche.id, fiche.parent_folder_id, fiche.sibling_card_id, fiche.position, local.title, local.author, local.audience_id FROM dila_local_card fiche, dila_local local "
 64  
             + "WHERE fiche.local_id = ? AND fiche.local_id = local.id";
 65  
     private static final String SQL_QUERY_DELETE = "DELETE FROM dila_local_card WHERE id = ?";
 66  
     private static final String SQL_QUERY_UPDATE = " UPDATE dila_local_card "
 67  
             + "set parent_folder_id = ?, sibling_card_id = ?, position = ?  WHERE id = ?";
 68  
     private static final String SQL_QUERY_SELECT_CARD_ID_BY_PARENT_ID = "SELECT "
 69  
             + "id FROM dila_local_card WHERE parent_folder_id = ?";
 70  
     private static final String SQL_QUERY_FIND_CARDS_BY_PARENT_ID = "SELECT l.id, l.title, f.sibling_card_id, f.position"
 71  
             + " FROM dila_local_card f JOIN dila_local l ON f.local_id = l.id" + " WHERE f.parent_folder_id = ?";
 72  
 
 73  
     /**
 74  
      * Generates a new primary key
 75  
      * @return The new primary key
 76  
      */
 77  
     private Long newPrimaryKey( )
 78  
     {
 79  0
         DAOUtil daoUtil = new DAOUtil( SQL_QUERY_NEW_PK, PluginService.getPlugin( DilaPlugin.PLUGIN_NAME ) );
 80  0
         daoUtil.executeQuery( );
 81  
 
 82  0
         Long nKey = 1L;
 83  
 
 84  0
         if ( daoUtil.next( ) )
 85  
         {
 86  
             // if the table is empty
 87  0
             nKey = daoUtil.getLong( 1 ) + 1L;
 88  
         }
 89  
 
 90  0
         daoUtil.free( );
 91  
 
 92  0
         return nKey;
 93  
     }
 94  
 
 95  
     @Override
 96  
     public Long insert( LocalCardDTO card )
 97  
     {
 98  0
         DAOUtil daoUtil = new DAOUtil( SQL_QUERY_INSERT, PluginService.getPlugin( DilaPlugin.PLUGIN_NAME ) );
 99  
 
 100  0
         card.setId( newPrimaryKey( ) );
 101  
 
 102  0
         daoUtil.setLong( 1, card.getId( ) );
 103  0
         daoUtil.setString( 2, card.getParentFolderId( ) );
 104  0
         daoUtil.setString( 3, card.getSiblingCardId( ) );
 105  
 
 106  0
         if ( card.getPosition( ) != null )
 107  
         {
 108  0
             daoUtil.setInt( 4, card.getPosition( ) );
 109  
         }
 110  
         else
 111  
         {
 112  0
             daoUtil.setIntNull( 4 );
 113  
         }
 114  
 
 115  0
         daoUtil.setLong( 5, card.getLocalDTO( ).getId( ) );
 116  
 
 117  0
         daoUtil.executeUpdate( );
 118  0
         daoUtil.free( );
 119  
 
 120  0
         return card.getId( );
 121  
     }
 122  
 
 123  
     @Override
 124  
     public Long findCardIdByLocalId( String localId )
 125  
     {
 126  0
         DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_CARD_ID_BY_LOCAL_ID,
 127  0
                 PluginService.getPlugin( DilaPlugin.PLUGIN_NAME ) );
 128  0
         daoUtil.setString( 1, localId );
 129  0
         daoUtil.executeQuery( );
 130  
 
 131  0
         Long result = null;
 132  
 
 133  0
         if ( daoUtil.next( ) )
 134  
         {
 135  0
             result = daoUtil.getLong( 1 );
 136  
         }
 137  
 
 138  0
         daoUtil.free( );
 139  
 
 140  0
         return result;
 141  
     }
 142  
 
 143  
     @Override
 144  
     public void delete( Long ficheLocalId )
 145  
     {
 146  0
         DAOUtil daoUtil = new DAOUtil( SQL_QUERY_DELETE, PluginService.getPlugin( DilaPlugin.PLUGIN_NAME ) );
 147  0
         daoUtil.setLong( 1, ficheLocalId );
 148  0
         daoUtil.executeUpdate( );
 149  0
         daoUtil.free( );
 150  0
     }
 151  
 
 152  
     @Override
 153  
     public LocalCardDTO findCardByLocalId( Long idLocal )
 154  
     {
 155  0
         DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_CARD_BY_LOCAL_ID,
 156  0
                 PluginService.getPlugin( DilaPlugin.PLUGIN_NAME ) );
 157  0
         daoUtil.setLong( 1, idLocal );
 158  0
         daoUtil.executeQuery( );
 159  
 
 160  0
         LocalCardDTO card = null;
 161  
 
 162  0
         if ( daoUtil.next( ) )
 163  
         {
 164  0
             card = new LocalCardDTO( );
 165  0
             card.getLocalDTO( ).setId( idLocal );
 166  0
             card.setId( daoUtil.getLong( 1 ) );
 167  0
             card.setParentFolderId( daoUtil.getString( 2 ) );
 168  
 
 169  0
             if ( daoUtil.getString( 3 ) != null )
 170  
             {
 171  0
                 card.setSiblingCardId( daoUtil.getString( 3 ) );
 172  0
                 card.setPosition( daoUtil.getInt( 4 ) );
 173  
             }
 174  
 
 175  0
             card.getLocalDTO( ).setTitle( daoUtil.getString( 5 ) );
 176  0
             card.getLocalDTO( ).setAuthor( daoUtil.getString( 6 ) );
 177  0
             card.getLocalDTO( ).setIdAudience( daoUtil.getLong( 7 ) );
 178  
         }
 179  
 
 180  0
         daoUtil.free( );
 181  
 
 182  0
         return card;
 183  
     }
 184  
 
 185  
     @Override
 186  
     public void store( LocalCardDTO card )
 187  
     {
 188  0
         DAOUtil daoUtil = new DAOUtil( SQL_QUERY_UPDATE, PluginService.getPlugin( DilaPlugin.PLUGIN_NAME ) );
 189  0
         daoUtil.setString( 1, card.getParentFolderId( ) );
 190  0
         daoUtil.setString( 2, card.getSiblingCardId( ) );
 191  
 
 192  0
         if ( card.getPosition( ) != null )
 193  
         {
 194  0
             daoUtil.setInt( 3, card.getPosition( ) );
 195  
         }
 196  
         else
 197  
         {
 198  0
             daoUtil.setIntNull( 3 );
 199  
         }
 200  
 
 201  0
         daoUtil.setLong( 4, card.getId( ) );
 202  
 
 203  0
         daoUtil.executeUpdate( );
 204  0
         daoUtil.free( );
 205  0
     }
 206  
 
 207  
     @Override
 208  
     public boolean isCardWithParentId( String localId )
 209  
     {
 210  0
         DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_CARD_ID_BY_PARENT_ID,
 211  0
                 PluginService.getPlugin( DilaPlugin.PLUGIN_NAME ) );
 212  0
         daoUtil.setString( 1, localId );
 213  0
         daoUtil.executeQuery( );
 214  
 
 215  0
         boolean result = false;
 216  
 
 217  0
         if ( daoUtil.next( ) )
 218  
         {
 219  0
             result = true;
 220  
         }
 221  
 
 222  0
         daoUtil.free( );
 223  
 
 224  0
         return result;
 225  
     }
 226  
 
 227  
     @Override
 228  
     public List<LocalCardDTO> findLocalCardsByParentFolder( String parentId )
 229  
     {
 230  0
         DAOUtil daoUtil = new DAOUtil( SQL_QUERY_FIND_CARDS_BY_PARENT_ID,
 231  0
                 PluginService.getPlugin( DilaPlugin.PLUGIN_NAME ) );
 232  0
         daoUtil.setString( 1, parentId );
 233  0
         daoUtil.executeQuery( );
 234  
 
 235  0
         List<LocalCardDTO> resultList = new ArrayList<LocalCardDTO>( );
 236  
 
 237  0
         while ( daoUtil.next( ) )
 238  
         {
 239  0
             LocalCardDTO localCard = new LocalCardDTO( );
 240  0
             LocalDTO local = new LocalDTO( );
 241  0
             local.setId( daoUtil.getLong( 1 ) );
 242  0
             local.setTitle( daoUtil.getString( 2 ) );
 243  0
             localCard.setLocalDTO( local );
 244  0
             localCard.setSiblingCardId( daoUtil.getString( 3 ) );
 245  0
             localCard.setPosition( daoUtil.getInt( 4 ) );
 246  0
             resultList.add( localCard );
 247  0
         }
 248  
 
 249  0
         daoUtil.free( );
 250  
 
 251  0
         return resultList;
 252  
     }
 253  
 }