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.xmlpage.service;
35
36 import fr.paris.lutece.portal.service.resource.ResourceService;
37 import fr.paris.lutece.util.ReferenceItem;
38 import fr.paris.lutece.util.ReferenceList;
39
40 import java.util.Collection;
41 import java.util.Collections;
42 import java.util.Comparator;
43 import java.util.Iterator;
44
45
46
47
48
49 public final class XmlPageService extends ResourceService
50 {
51 private static final String PROPERTY_LOADER = "xmlpage.service.loaders";
52 private static final String PROPERTY_NAME = "xmlpage.service.name";
53 private static final String PROPERTY_CACHE = "xmlpage.service.cache";
54 private static final String PARAMETER_VALUE_SEPARATOR = "-";
55 private static XmlPageService _singleton = new XmlPageService( );
56 private static final Comparator<ReferenceItem> COMPARATOR_TRI_ASC = new Comparator<ReferenceItem>( )
57 {
58 public int compare( ReferenceItem item1, ReferenceItem item2 )
59 {
60 int nOrder = item1.getName( ).compareTo( item2.getName( ) );
61
62 return nOrder;
63 }
64 };
65
66
67
68
69 private XmlPageService( )
70 {
71 setNameKey( PROPERTY_NAME );
72 setCacheKey( PROPERTY_CACHE );
73 }
74
75
76
77
78
79 public static XmlPageService getInstance( )
80 {
81 return _singleton;
82 }
83
84
85
86
87
88 protected String getLoadersProperty( )
89 {
90 return PROPERTY_LOADER;
91 }
92
93
94
95
96
97
98 public XmlPageElement getXmlPageResource( String strPageName )
99 {
100 XmlPageElement xmlPageElement = (XmlPageElement) getResource( strPageName );
101
102 return xmlPageElement;
103 }
104
105
106
107
108
109
110 public ReferenceList getXmlPageList( )
111 {
112 ReferenceList list = new ReferenceList( );
113 Collection colXmlPages = getResources( );
114 Iterator iColXmlPages = colXmlPages.iterator( );
115
116 while ( iColXmlPages.hasNext( ) )
117 {
118 XmlPageElement xmlPageElement = (XmlPageElement) iColXmlPages.next( );
119
120 if ( xmlPageElement.getListXslContent( ) != null )
121 {
122 Iterator iXslElement = xmlPageElement.getListXslContent( ).keySet( ).iterator( );
123
124 while ( iXslElement.hasNext( ) )
125 {
126 String strStyle = (String) iXslElement.next( );
127 list.addItem( xmlPageElement.getName( ).concat( PARAMETER_VALUE_SEPARATOR ).concat( strStyle ),
128 xmlPageElement.getTitle( ).concat( " (" ).concat( strStyle ).concat( ")" ) );
129 }
130 }
131 }
132
133
134 Collections.sort( list, COMPARATOR_TRI_ASC );
135
136 return list;
137 }
138 }