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.portal.service.cache;
35
36 import javax.servlet.http.HttpServletRequest;
37
38 import org.apache.commons.lang3.StringUtils;
39
40 import fr.paris.lutece.portal.service.page.PageEvent;
41 import fr.paris.lutece.portal.service.page.PageEventListener;
42 import fr.paris.lutece.portal.service.page.PageService;
43 import fr.paris.lutece.portal.web.constants.Parameters;
44
45
46
47
48 public class PathCacheService extends AbstractCacheableService implements IPathCacheService, PageEventListener
49 {
50
51
52
53
54 PathCacheService( )
55 {
56 initCache( );
57 PageService.addPageEventListener( this );
58 }
59
60 @Override
61 public String getName( )
62 {
63 return IPathCacheService.BEAN_NAME;
64 }
65
66 @Override
67 public String getKey( String strXPageName, int nMode, HttpServletRequest request )
68 {
69 return getKey( strXPageName, nMode, null, request );
70 }
71
72 @Override
73 public String getKey( String strXPageName, int nMode, String strTitlesUrls, HttpServletRequest request )
74 {
75 if ( !isCacheEnable( ) )
76 {
77 return null;
78 }
79 StringBuilder builder = new StringBuilder( );
80 builder.append( "[XPageName:" ).append( strXPageName ).append( ']' );
81 builder.append( "[mode:" ).append( nMode ).append( ']' );
82 if ( strTitlesUrls != null )
83 {
84 builder.append( "[titleUrls:" ).append( strTitlesUrls ).append( ']' );
85 }
86 if ( request != null )
87 {
88 builder.append( "[locale:" ).append( request.getLocale( ) ).append( ']' );
89 String strPageId = request.getParameter( Parameters.PAGE_ID );
90 if ( StringUtils.isNotBlank( strPageId ) )
91 {
92 builder.append( '[' ).append( Parameters.PAGE_ID ).append( ':' ).append( strPageId ).append( ']' );
93 }
94 String strPortletId = request.getParameter( Parameters.PORTLET_ID );
95 if ( StringUtils.isNotBlank( strPortletId ) )
96 {
97 builder.append( '[' ).append( Parameters.PORTLET_ID ).append( ':' ).append( strPortletId ).append( ']' );
98 }
99 }
100 return builder.toString( );
101 }
102
103 @Override
104 public String getFromCache( String strKey )
105 {
106 return (String) super.getFromCache( strKey );
107 }
108
109 @Override
110 public void putInCache( String strKey, String path )
111 {
112 super.putInCache( strKey, path );
113 }
114
115 @Override
116 public void processPageEvent( PageEvent event )
117 {
118 if ( isCacheEnable( ) && event.getEventType( ) != PageEvent.PAGE_CREATED )
119 {
120
121
122 resetCache( );
123 }
124 }
125
126 }