View Javadoc
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.workflow.modules.eudonetrestdirectory.business;
35  
36  import fr.paris.lutece.plugins.workflow.modules.eudonetrestdirectory.service.EudonetRestDirectoryPlugin;
37  import fr.paris.lutece.plugins.workflowcore.business.config.ITaskConfigDAO;
38  import fr.paris.lutece.portal.service.plugin.Plugin;
39  import fr.paris.lutece.util.sql.DAOUtil;
40  
41  import java.util.ArrayList;
42  import java.util.List;
43  
44  /**
45   *
46   * TaskCreatePDFConfigDAO
47   *
48   */
49  public class TaskEudonetRestConfigDAO implements ITaskConfigDAO<TaskEudonetRestConfig>
50  {
51      private static final String SQL_QUERY_SELECT = "SELECT id_task, id_directory, id_table, base_url, subscriber_login, subscriber_password, base_name, user_login, user_password, user_lang, product_name FROM task_create_eudonetdirectory_cf WHERE id_task = ? ;";
52      private static final String SQL_QUERY_INSERT = "INSERT INTO task_create_eudonetdirectory_cf (id_task, id_directory, id_table, base_url, subscriber_login, subscriber_password, base_name, user_login, user_password, user_lang, product_name ) VALUES ( ?, ? , ? , ?, ?, ?, ?, ?, ?, ?, ? );";
53      private static final String SQL_QUERY_DELETE = "DELETE FROM task_create_eudonetdirectory_cf WHERE id_task = ? ;";
54      private static final String SQL_QUERY_UPDATE = "UPDATE task_create_eudonetdirectory_cf SET id_directory=?, id_table=?, base_url=?, subscriber_login=?, subscriber_password=?, base_name=?, user_login=?, user_password=?, user_lang=?, product_name=? WHERE id_task = ? ;";
55      private static final String SQL_QUERY_NEW_PK_PARAM = "SELECT max( id_attribut ) FROM task_create_eudonet_data_cf";
56      private static final String SQL_QUERY_EUDONET_SELECT = "SELECT id_attribut, id_task, order_entry, eudonet_key, eudonet_key_table, eudonet_key_table_link, eudonet_default_value FROM task_create_eudonet_data_cf WHERE id_task = ? ;";
57      private static final String SQL_QUERY_EUDONET_INSERT = "INSERT INTO task_create_eudonet_data_cf (id_attribut, id_task, order_entry, eudonet_key, eudonet_key_table, eudonet_key_table_link, eudonet_default_value ) VALUES ( ?, ?, ?, ? , ? , ? , ?);";
58      private static final String SQL_QUERY_EUDONET_DELETE = "DELETE FROM task_create_eudonet_data_cf WHERE id_attribut = ? ;";
59      private static final String SQL_QUERY_EUDONET_UPDATE = "UPDATE task_create_eudonet_data_cf SET id_task=?, order_entry=?, eudonet_key=?, eudonet_key_table=?, eudonet_key_table_link=?, eudonet_default_value=?  WHERE id_attribut = ? ;";
60  
61      /**
62       * Generates a new primary key
63       * 
64       * @param plugin
65       *            The Plugin
66       * @return The new primary key
67       */
68      public int newPrimaryKey( Plugin plugin )
69      {
70          DAOUtil daoUtil = new DAOUtil( SQL_QUERY_NEW_PK_PARAM, plugin );
71          daoUtil.executeQuery( );
72  
73          int nKey = 1;
74  
75          if ( daoUtil.next( ) )
76          {
77              nKey = daoUtil.getInt( 1 ) + 1;
78          }
79  
80          daoUtil.free( );
81  
82          return nKey;
83      }
84  
85      /**
86       * {@inheritDoc}
87       */
88      @Override
89      public void insert( TaskEudonetRestConfig taskEudonetConfig )
90      {
91          DAOUtil daoUtil = new DAOUtil( SQL_QUERY_INSERT, EudonetRestDirectoryPlugin.getPlugin( ) );
92          daoUtil.setInt( 1, taskEudonetConfig.getIdTask( ) );
93          daoUtil.setInt( 2, taskEudonetConfig.getIdDirectory( ) );
94          daoUtil.setString( 3, taskEudonetConfig.getIdTableEudonet( ) );
95          daoUtil.setString( 4, taskEudonetConfig.getBaseUrl( ) );
96          daoUtil.setString( 5, taskEudonetConfig.getSubscriberLogin( ) );
97          daoUtil.setString( 6, taskEudonetConfig.getSubscriberPassword( ) );
98          daoUtil.setString( 7, taskEudonetConfig.getBaseName( ) );
99          daoUtil.setString( 8, taskEudonetConfig.getUserLogin( ) );
100         daoUtil.setString( 9, taskEudonetConfig.getUserPassword( ) );
101         daoUtil.setString( 10, taskEudonetConfig.getUserLang( ) );
102         daoUtil.setString( 11, taskEudonetConfig.getProductName( ) );
103         daoUtil.executeUpdate( );
104         daoUtil.free( );
105     }
106 
107     /**
108      * {@inheritDoc}
109      */
110     @Override
111     public void delete( int nIdTask )
112     {
113         DAOUtil daoUtil = new DAOUtil( SQL_QUERY_DELETE, EudonetRestDirectoryPlugin.getPlugin( ) );
114         daoUtil.setInt( 1, nIdTask );
115         daoUtil.executeQuery( );
116         daoUtil.free( );
117     }
118 
119     /**
120      * {@inheritDoc}
121      */
122     @Override
123     public TaskEudonetRestConfig load( int nIdTask )
124     {
125         DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT, EudonetRestDirectoryPlugin.getPlugin( ) );
126         daoUtil.setInt( 1, nIdTask );
127         daoUtil.executeQuery( );
128 
129         if ( daoUtil.next( ) )
130         {
131             TaskEudonetRestConfig taskEudonetConfig = new TaskEudonetRestConfig( );
132             taskEudonetConfig.setIdTask( daoUtil.getInt( 1 ) );
133             taskEudonetConfig.setIdDirectory( daoUtil.getInt( 2 ) );
134             taskEudonetConfig.setIdTableEudonet( daoUtil.getString( 3 ) );
135             taskEudonetConfig.setBaseUrl( daoUtil.getString( 4 ) );
136             taskEudonetConfig.setSubscriberLogin( daoUtil.getString( 5 ) );
137             taskEudonetConfig.setSubscriberPassword( daoUtil.getString( 6 ) );
138             taskEudonetConfig.setBaseName( daoUtil.getString( 7 ) );
139             taskEudonetConfig.setUserLogin( daoUtil.getString( 8 ) );
140             taskEudonetConfig.setUserPassword( daoUtil.getString( 9 ) );
141             taskEudonetConfig.setUserLang( daoUtil.getString( 10 ) );
142             taskEudonetConfig.setProductName( daoUtil.getString( 11 ) );
143 
144             daoUtil.free( );
145 
146             List<EudonetRestData> listEudonetData = selectEntryList( nIdTask );
147             taskEudonetConfig.setEntry( listEudonetData );
148 
149             return taskEudonetConfig;
150         }
151         else
152         {
153             daoUtil.free( );
154 
155             return null;
156         }
157     }
158 
159     /**
160      * {@inheritDoc}
161      */
162     @Override
163     public void store( TaskEudonetRestConfig taskEudonetConfig )
164     {
165         DAOUtil daoUtil = new DAOUtil( SQL_QUERY_UPDATE, EudonetRestDirectoryPlugin.getPlugin( ) );
166         daoUtil.setInt( 1, taskEudonetConfig.getIdDirectory( ) );
167         daoUtil.setString( 2, taskEudonetConfig.getIdTableEudonet( ) );
168         daoUtil.setString( 3, taskEudonetConfig.getBaseUrl( ) );
169         daoUtil.setString( 4, taskEudonetConfig.getSubscriberLogin( ) );
170         daoUtil.setString( 5, taskEudonetConfig.getSubscriberPassword( ) );
171         daoUtil.setString( 6, taskEudonetConfig.getBaseName( ) );
172         daoUtil.setString( 7, taskEudonetConfig.getUserLogin( ) );
173         daoUtil.setString( 8, taskEudonetConfig.getUserPassword( ) );
174         daoUtil.setString( 9, taskEudonetConfig.getUserLang( ) );
175         daoUtil.setString( 10, taskEudonetConfig.getProductName( ) );
176         daoUtil.setInt( 11, taskEudonetConfig.getIdTask( ) );
177         daoUtil.executeUpdate( );
178         daoUtil.free( );
179     }
180 
181     /**
182      * Creation mapping entry
183      * 
184      * @param eudonetData
185      */
186     public void insertEntry( EudonetRestData eudonetData )
187     {
188         DAOUtil daoUtil = new DAOUtil( SQL_QUERY_EUDONET_INSERT, EudonetRestDirectoryPlugin.getPlugin( ) );
189 
190         eudonetData.setId( newPrimaryKey( EudonetRestDirectoryPlugin.getPlugin( ) ) );
191 
192         daoUtil.setInt( 1, eudonetData.getId( ) );
193         daoUtil.setInt( 2, eudonetData.getIdConfig( ) );
194         daoUtil.setInt( 3, eudonetData.getOrderEntry( ) );
195         daoUtil.setString( 4, eudonetData.getIdAttribut( ) );
196         daoUtil.setString( 5, eudonetData.getIdTable( ) );
197         daoUtil.setString( 6, eudonetData.getIdTableLink( ) );
198         daoUtil.setString( 7, eudonetData.getDefaultValue( ) );
199 
200         daoUtil.executeUpdate( );
201         daoUtil.free( );
202     }
203 
204     /**
205      * Remove mapping entry
206      * 
207      * @param nKey
208      */
209     public void deleteEntry( int nKey )
210     {
211         DAOUtil daoUtil = new DAOUtil( SQL_QUERY_EUDONET_DELETE, EudonetRestDirectoryPlugin.getPlugin( ) );
212         daoUtil.setInt( 1, nKey );
213         daoUtil.executeUpdate( );
214         daoUtil.free( );
215     }
216 
217     /**
218      * Update mapping entry
219      * 
220      * @param eudonetData
221      */
222     public void storeEntry( EudonetRestData eudonetData )
223     {
224         DAOUtil daoUtil = new DAOUtil( SQL_QUERY_EUDONET_UPDATE, EudonetRestDirectoryPlugin.getPlugin( ) );
225 
226         daoUtil.setInt( 1, eudonetData.getId( ) );
227         daoUtil.setInt( 2, eudonetData.getIdConfig( ) );
228         daoUtil.setInt( 3, eudonetData.getOrderEntry( ) );
229         daoUtil.setString( 4, eudonetData.getIdAttribut( ) );
230         daoUtil.setString( 5, eudonetData.getIdTable( ) );
231         daoUtil.setString( 6, eudonetData.getIdTableLink( ) );
232         daoUtil.setString( 7, eudonetData.getDefaultValue( ) );
233 
234         daoUtil.executeUpdate( );
235         daoUtil.free( );
236     }
237 
238     /**
239      * load mapping entry list
240      * 
241      * @param idTask
242      * @return EudonetData list
243      */
244     public List<EudonetRestData> selectEntryList( int nidTask )
245     {
246         List<EudonetRestData> parameterList = new ArrayList<EudonetRestData>( );
247         DAOUtil daoUtil = new DAOUtil( SQL_QUERY_EUDONET_SELECT, EudonetRestDirectoryPlugin.getPlugin( ) );
248         daoUtil.setInt( 1, nidTask );
249 
250         daoUtil.executeQuery( );
251 
252         while ( daoUtil.next( ) )
253         {
254             EudonetRestData parameter = new EudonetRestData( );
255 
256             parameter.setId( daoUtil.getInt( 1 ) );
257             parameter.setIdConfig( daoUtil.getInt( 2 ) );
258 
259             parameter.setOrderEntry( daoUtil.getInt( 3 ) );
260 
261             parameter.setIdAttribut( daoUtil.getString( 4 ) );
262 
263             parameter.setIdTable( daoUtil.getString( 5 ) );
264 
265             parameter.setIdTableLink( daoUtil.getString( 6 ) );
266 
267             parameter.setDefaultValue( daoUtil.getString( 7 ) );
268 
269             parameterList.add( parameter );
270         }
271 
272         daoUtil.free( );
273 
274         return parameterList;
275     }
276 }