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.service.file;
35
36 import fr.paris.lutece.plugins.directory.business.File;
37 import fr.paris.lutece.plugins.directory.business.FileHome;
38 import fr.paris.lutece.plugins.directory.business.PhysicalFileHome;
39 import fr.paris.lutece.plugins.directory.business.RecordField;
40 import fr.paris.lutece.plugins.directory.business.RecordFieldFilter;
41 import fr.paris.lutece.plugins.directory.business.RecordFieldHome;
42 import fr.paris.lutece.plugins.directory.service.DirectoryPlugin;
43 import fr.paris.lutece.portal.service.i18n.I18nService;
44 import fr.paris.lutece.portal.service.plugin.PluginService;
45 import fr.paris.lutece.portal.service.util.AppLogService;
46 import fr.paris.lutece.util.sql.TransactionManager;
47 import java.util.ArrayList;
48 import java.util.List;
49 import java.util.Locale;
50
51 public class DirectoryFileService
52 {
53
54 private static final String MESSAGE_PURGE_FILE_TITLE = "directory.file.purge.fileTitle";
55
56
57
58
59
60
61
62 public void purge( File file )
63 {
64 try
65 {
66 TransactionManager.beginTransaction( PluginService.getPlugin( DirectoryPlugin.PLUGIN_NAME ) );
67 file.setTitle( I18nService.getLocalizedString( MESSAGE_PURGE_FILE_TITLE, Locale.getDefault( ) ) );
68 FileHome.purge( file, PluginService.getPlugin( DirectoryPlugin.PLUGIN_NAME ) );
69 PhysicalFileHome.purge( file.getPhysicalFile( ), PluginService.getPlugin( DirectoryPlugin.PLUGIN_NAME ) );
70 TransactionManager.commitTransaction( PluginService.getPlugin( DirectoryPlugin.PLUGIN_NAME ) );
71 }
72 catch( Exception e )
73 {
74 TransactionManager.rollBack( null );
75 AppLogService.error( "Unable to purge file with id " + file.getIdFile( ), e );
76 throw e;
77 }
78 }
79
80
81
82
83
84
85 public List<File> getFilesList( )
86 {
87 return FileHome.getFilesList( PluginService.getPlugin( DirectoryPlugin.PLUGIN_NAME ) );
88 }
89
90
91
92
93
94
95
96 public void update( File file )
97 {
98 FileHome.update( file, PluginService.getPlugin( DirectoryPlugin.PLUGIN_NAME ) );
99 }
100
101
102
103
104
105
106
107
108 public List<File> getAssociatedFiles( int nIdResource )
109 {
110 List<File> listFiles = new ArrayList<>( );
111
112
113 RecordFieldFilter filter = new RecordFieldFilter( );
114 filter.setIdRecord( nIdResource );
115 filter.setContainsFile( true );
116 List<RecordField> listRecordFields = RecordFieldHome.getRecordFieldList( filter, PluginService.getPlugin( DirectoryPlugin.PLUGIN_NAME ) );
117
118 for ( RecordField recordField : listRecordFields )
119 {
120 listFiles.add( recordField.getFile( ) );
121 }
122 return listFiles;
123 }
124
125
126
127
128
129
130
131
132 public File getFile( String strFileId )
133 {
134 int nIdFile = Integer.parseInt( strFileId );
135 return FileHome.findByPrimaryKey( nIdFile, PluginService.getPlugin( DirectoryPlugin.PLUGIN_NAME ) );
136 }
137
138 }