1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.workflow.modules.fillingdirectory.business;
35
36 import fr.paris.lutece.plugins.directory.business.PhysicalFile;
37 import fr.paris.lutece.portal.service.plugin.Plugin;
38 import fr.paris.lutece.util.sql.DAOUtil;
39
40
41
42
43
44 public final class PhysicalFileHistoryDAO implements IPhysicalFileHistoryDAO
45 {
46
47 private static final String SQL_QUERY_NEW_PK = "SELECT max( id_physical_file ) FROM tf_directory_physical_file";
48 private static final String SQL_QUERY_FIND_BY_PRIMARY_KEY = "SELECT id_physical_file,file_value" +
49 " FROM tf_directory_physical_file WHERE id_physical_file = ?";
50 private static final String SQL_QUERY_INSERT = "INSERT INTO tf_directory_physical_file(id_physical_file,file_value)" +
51 " VALUES(?,?)";
52 private static final String SQL_QUERY_DELETE = "DELETE FROM tf_directory_physical_file WHERE id_physical_file = ? ";
53 private static final String SQL_QUERY_UPDATE = "UPDATE tf_directory_physical_file SET " +
54 "id_physical_file=?,file_value=? WHERE id_physical_file = ?";
55
56
57
58
59 @Override
60 public int newPrimaryKey( Plugin plugin )
61 {
62 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_NEW_PK, plugin );
63 daoUtil.executeQuery( );
64
65 int nKey;
66
67 if ( !daoUtil.next( ) )
68 {
69
70 nKey = 1;
71 }
72
73 nKey = daoUtil.getInt( 1 ) + 1;
74 daoUtil.free( );
75
76 return nKey;
77 }
78
79
80
81
82 @Override
83 public synchronized int insert( PhysicalFile physicalFile, Plugin plugin )
84 {
85 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_INSERT, plugin );
86 daoUtil.setBytes( 2, physicalFile.getValue( ) );
87 physicalFile.setIdPhysicalFile( newPrimaryKey( plugin ) );
88 daoUtil.setInt( 1, physicalFile.getIdPhysicalFile( ) );
89 daoUtil.executeUpdate( );
90
91 daoUtil.free( );
92
93 return physicalFile.getIdPhysicalFile( );
94 }
95
96
97
98
99 @Override
100 public PhysicalFile load( int nId, Plugin plugin )
101 {
102 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_FIND_BY_PRIMARY_KEY, plugin );
103 daoUtil.setInt( 1, nId );
104 daoUtil.executeQuery( );
105
106 PhysicalFile physicalFile = null;
107
108 if ( daoUtil.next( ) )
109 {
110 physicalFile = new PhysicalFile( );
111 physicalFile.setIdPhysicalFile( daoUtil.getInt( 1 ) );
112 physicalFile.setValue( daoUtil.getBytes( 2 ) );
113 }
114
115 daoUtil.free( );
116
117 return physicalFile;
118 }
119
120
121
122
123 @Override
124 public void delete( int nIdPhysicalFile, Plugin plugin )
125 {
126 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_DELETE, plugin );
127 daoUtil.setInt( 1, nIdPhysicalFile );
128 daoUtil.executeUpdate( );
129 daoUtil.free( );
130 }
131
132
133
134
135 @Override
136 public void store( PhysicalFile physicalFile, Plugin plugin )
137 {
138 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_UPDATE, plugin );
139 daoUtil.setInt( 1, physicalFile.getIdPhysicalFile( ) );
140 daoUtil.setBytes( 2, physicalFile.getValue( ) );
141 daoUtil.setInt( 3, physicalFile.getIdPhysicalFile( ) );
142 daoUtil.executeUpdate( );
143 daoUtil.free( );
144 }
145 }