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.folderlisting.service;
35
36 import fr.paris.lutece.plugins.folderlisting.business.FolderListingDatabase;
37 import fr.paris.lutece.plugins.folderlisting.business.FolderListingDatabaseHome;
38 import fr.paris.lutece.portal.service.plugin.Plugin;
39 import fr.paris.lutece.portal.service.plugin.PluginService;
40 import fr.paris.lutece.portal.service.resource.Resource;
41 import fr.paris.lutece.portal.service.resource.ResourceLoader;
42
43 import java.util.ArrayList;
44 import java.util.Collection;
45
46
47 public class FolderLoaderDatabase implements ResourceLoader
48 {
49 private static final String PLUGIN_NAME = "folderlisting";
50 Plugin _plugin;
51
52
53
54
55
56 public Collection getResources( )
57 {
58 if ( _plugin == null )
59 {
60 _plugin = PluginService.getPlugin( PLUGIN_NAME );
61 }
62
63 ArrayList listFolders = new ArrayList( );
64
65 for ( FolderListingDatabase folderListing : FolderListingDatabaseHome.findFolderListingDatabasesList( _plugin ) )
66 {
67 Folder folder = loadFolder( folderListing.getId( ) );
68 listFolders.add( folder );
69 }
70
71 return listFolders;
72 }
73
74
75
76
77
78
79 public Resource getResource( String strId )
80 {
81 Resource resource = null;
82
83 if ( !( strId.startsWith( "folder" ) ) )
84 {
85 resource = loadFolder( Integer.parseInt( strId ) );
86 }
87
88 return resource;
89 }
90
91
92
93
94
95
96 private Folder loadFolder( int nIdFolder )
97 {
98 if ( _plugin == null )
99 {
100 _plugin = PluginService.getPlugin( PLUGIN_NAME );
101 }
102
103 Folder folder = new Folder( );
104 FolderListingDatabase folderListing = FolderListingDatabaseHome.findByPrimaryKey( nIdFolder, _plugin );
105 folder.setName( folderListing.getFolderName( ) );
106 folder.setPath( folderListing.getFolderPath( ) );
107 folder.setWorkgroup( folderListing.getWorkgroup( ) );
108
109 String strFolderId = Integer.toString( nIdFolder );
110 folder.setId( strFolderId );
111
112 return folder;
113 }
114 }