1 /*
2 * Copyright (c) 2002-2015, 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.elasticsearch.business;
35
36 import fr.paris.lutece.plugins.workflow.modules.elasticsearch.service.WorkflowElasticSearchPlugin;
37 import fr.paris.lutece.plugins.workflowcore.business.config.ITaskConfigDAO;
38 import fr.paris.lutece.util.sql.DAOUtil;
39
40 /**
41 * Class TaskElasticSearchConfigDAO
42 */
43 public class TaskElasticSearchConfigDAO implements ITaskConfigDAO<TaskElasticSearchConfig>
44 {
45
46 private static final String SQL_QUERY_INSERT = "INSERT INTO workflow_task_elasticsearch (id, `index`, bean_name) VALUES( ? , ? , ? )";
47 private static final String SQL_QUERY_DELETE = "DELETE FROM workflow_task_elasticsearch WHERE id = ?";
48 private static final String SQL_QUERY_FIND_BY_PRIMARY_KEY = "SELECT id, `index`, bean_name FROM workflow_task_elasticsearch WHERE id = ? ";
49 private static final String SQL_QUERY_UPDATE = "UPDATE workflow_task_elasticsearch SET `index` = ? , bean_name = ? WHERE id = ?";
50
51 /* (non-Javadoc)
52 * @see fr.paris.lutece.plugins.workflowcore.business.config.ITaskConfigDAO#delete(int)
53 */
54 @Override
55 public void delete( int nId )
56 {
57 DAOUtil dao = new DAOUtil( SQL_QUERY_DELETE, WorkflowElasticSearchPlugin.getPlugin( ) );
58 dao.setInt( 1, nId );
59 dao.executeUpdate( );
60 dao.free( );
61 }
62
63 /* (non-Javadoc)
64 * @see fr.paris.lutece.plugins.workflowcore.business.config.ITaskConfigDAO#insert(fr.paris.lutece.plugins.workflowcore.business.config.ITaskConfig)
65 */
66 @Override
67 public synchronized void insert( TaskElasticSearchConfig config )
68 {
69 DAOUtil dao = new DAOUtil( SQL_QUERY_INSERT, WorkflowElasticSearchPlugin.getPlugin( ) );
70
71 int nPos = 1;
72 dao.setInt( nPos++, config.getId( ) );
73 dao.setString( nPos++, config.getIndex( ) );
74 dao.setString( nPos++, config.getBeanName( ) );
75
76 dao.executeUpdate( );
77 dao.free( );
78 }
79
80 /* (non-Javadoc)
81 * @see fr.paris.lutece.plugins.workflowcore.business.config.ITaskConfigDAO#load(int)
82 */
83 @Override
84 public TaskElasticSearchConfig load( int nId )
85 {
86 int nPos = 1;
87 TaskElasticSearchConfig config = null;
88 DAOUtil dao = new DAOUtil( SQL_QUERY_FIND_BY_PRIMARY_KEY, WorkflowElasticSearchPlugin.getPlugin( ) );
89 dao.setInt( nPos, nId );
90 dao.executeQuery( );
91 if ( dao.next( ) )
92 {
93 config = new TaskElasticSearchConfig( );
94 config.setId( dao.getInt( nPos++ ) );
95 config.setIndex( dao.getString( nPos++ ) );
96 config.setBeanName( dao.getString( nPos ) );
97 }
98 dao.free( );
99 return config;
100 }
101
102 /* (non-Javadoc)
103 * @see fr.paris.lutece.plugins.workflowcore.business.config.ITaskConfigDAO#store(fr.paris.lutece.plugins.workflowcore.business.config.ITaskConfig)
104 */
105 @Override
106 public void store( TaskElasticSearchConfig config )
107 {
108 int nPos = 1;
109 DAOUtil dao = new DAOUtil( SQL_QUERY_UPDATE, WorkflowElasticSearchPlugin.getPlugin( ) );
110 dao.setString( nPos++, config.getIndex( ) );
111 dao.setString( nPos++, config.getBeanName( ) );
112 dao.setInt( nPos, config.getId( ) );
113 dao.executeUpdate( );
114 dao.free( );
115 }
116
117 }