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.directory.business;
35
36 import fr.paris.lutece.portal.service.plugin.Plugin;
37 import fr.paris.lutece.util.sql.DAOUtil;
38
39
40
41
42 public final class PhysicalFileDAO implements IPhysicalFileDAO
43 {
44
45 private static final String SQL_QUERY_NEW_PK = "SELECT max( id_physical_file ) FROM directory_physical_file";
46 private static final String SQL_QUERY_FIND_BY_PRIMARY_KEY = "SELECT id_physical_file,file_value"
47 + " FROM directory_physical_file WHERE id_physical_file = ?";
48 private static final String SQL_QUERY_INSERT = "INSERT INTO directory_physical_file(id_physical_file,file_value)" + " VALUES(?,?)";
49 private static final String SQL_QUERY_DELETE = "DELETE FROM directory_physical_file WHERE id_physical_file = ? ";
50 private static final String SQL_QUERY_PURGE = "UPDATE directory_physical_file SET file_value = ? WHERE id_physical_file = ? ";
51 private static final String SQL_QUERY_UPDATE = "UPDATE directory_physical_file SET " + "id_physical_file=?,file_value=? WHERE id_physical_file = ?";
52
53
54
55
56 @Override
57 public int newPrimaryKey( Plugin plugin )
58 {
59 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_NEW_PK, plugin );
60 daoUtil.executeQuery( );
61
62 int nKey;
63
64 if ( !daoUtil.next( ) )
65 {
66
67 nKey = 1;
68 }
69
70 nKey = daoUtil.getInt( 1 ) + 1;
71 daoUtil.free( );
72
73 return nKey;
74 }
75
76
77
78
79 @Override
80 public synchronized int insert( PhysicalFile physicalFile, Plugin plugin )
81 {
82 physicalFile.setIdPhysicalFile( newPrimaryKey( plugin ) );
83
84 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_INSERT, plugin );
85 daoUtil.setInt( 1, physicalFile.getIdPhysicalFile( ) );
86 daoUtil.setBytes( 2, physicalFile.getValue( ) );
87 daoUtil.executeUpdate( );
88
89 daoUtil.free( );
90
91 return physicalFile.getIdPhysicalFile( );
92 }
93
94
95
96
97 @Override
98 public PhysicalFile load( int nId, Plugin plugin )
99 {
100 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_FIND_BY_PRIMARY_KEY, plugin );
101 daoUtil.setInt( 1, nId );
102 daoUtil.executeQuery( );
103
104 PhysicalFile physicalFile = null;
105
106 if ( daoUtil.next( ) )
107 {
108 physicalFile = new PhysicalFile( );
109 physicalFile.setIdPhysicalFile( daoUtil.getInt( 1 ) );
110 physicalFile.setValue( daoUtil.getBytes( 2 ) );
111 }
112
113 daoUtil.free( );
114
115 return physicalFile;
116 }
117
118
119
120
121 @Override
122 public void delete( int nIdPhysicalFile, Plugin plugin )
123 {
124 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_DELETE, plugin );
125 daoUtil.setInt( 1, nIdPhysicalFile );
126 daoUtil.executeUpdate( );
127 daoUtil.free( );
128 }
129
130
131
132
133 @Override
134 public void store( PhysicalFile physicalFile, Plugin plugin )
135 {
136 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_UPDATE, plugin );
137 daoUtil.setInt( 1, physicalFile.getIdPhysicalFile( ) );
138 daoUtil.setBytes( 2, physicalFile.getValue( ) );
139 daoUtil.setInt( 3, physicalFile.getIdPhysicalFile( ) );
140 daoUtil.executeUpdate( );
141 daoUtil.free( );
142 }
143
144
145
146
147 @Override
148 public void purge( PhysicalFile physicalFile, Plugin plugin )
149 {
150 int nIndex = 1;
151 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_PURGE, plugin );
152 daoUtil.setBytes( nIndex++, new byte [ 0] );
153 daoUtil.setInt( nIndex++, physicalFile.getIdPhysicalFile( ) );
154 daoUtil.executeUpdate( );
155 daoUtil.free( );
156 }
157 }