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.rss.business;
35
36 import fr.paris.lutece.plugins.rss.business.portlet.IRssPortletDAO;
37 import fr.paris.lutece.plugins.rss.business.portlet.RssPortlet;
38 import fr.paris.lutece.portal.service.spring.SpringContextService;
39 import fr.paris.lutece.util.ReferenceList;
40
41 import java.util.ArrayList;
42 import java.util.List;
43
44
45
46
47
48 public final class RssFeedHome
49 {
50
51 private static IRssFeedDAO../../../../../fr/paris/lutece/plugins/rss/business/IRssFeedDAO.html#IRssFeedDAO">IRssFeedDAO _dao = (IRssFeedDAO) SpringContextService.getPluginBean( "rss", "rssFeedDAO" );
52 private static IRssPortletDAO./../fr/paris/lutece/plugins/rss/business/portlet/IRssPortletDAO.html#IRssPortletDAO">IRssPortletDAO _daoPortlet = (IRssPortletDAO) SpringContextService.getPluginBean( "rss",
53 "rssPortletDAO" );
54
55
56
57
58 private RssFeedHome( )
59 {
60 }
61
62
63
64
65
66
67 public static RssFeed"../../../../../../fr/paris/lutece/plugins/rss/business/RssFeed.html#RssFeed">RssFeed create( RssFeed rssFeed )
68 {
69 _dao.insert( rssFeed );
70
71 return rssFeed;
72 }
73
74
75
76
77
78
79 public static RssFeed"../../../../../../fr/paris/lutece/plugins/rss/business/RssFeed.html#RssFeed">RssFeed update( RssFeed rssFeed )
80 {
81 _dao.store( rssFeed );
82
83 return rssFeed;
84 }
85
86
87
88
89
90
91 public static RssFeed./../fr/paris/lutece/plugins/rss/business/RssFeed.html#RssFeed">RssFeed updateLastFetchInfos( RssFeed rssFeed )
92 {
93 _dao.storeLastFetchInfos( rssFeed );
94
95 return rssFeed;
96 }
97
98
99
100
101
102 public static void remove( RssFeed rssFeed )
103 {
104 if ( rssFeed.getIsActive( ) )
105 {
106 int nMaxOrder = _dao.newPrimaryKey( true ) - 1;
107 rssFeed = updateOrder( rssFeed, nMaxOrder );
108 }
109
110 _dao.delete( rssFeed );
111 }
112
113
114
115
116
117
118
119
120
121
122 public static RssFeed findByPrimaryKey( int nKey, boolean bActive )
123 {
124 return _dao.load( nKey, bActive );
125 }
126
127
128
129
130
131 public static List<RssFeed> getRssFeeds( )
132 {
133 return _dao.selectRssFeeds( true );
134 }
135
136
137
138
139
140
141 public static List<RssFeed> getRssFeeds( boolean bActive )
142 {
143 return _dao.selectRssFeeds( bActive );
144 }
145
146
147
148
149
150 public static ReferenceList getRssFeedsReferenceList( )
151 {
152 return _dao.selectRssFeedReferenceList( true );
153 }
154
155
156
157
158
159
160 public static ReferenceList getRssFeedsReferenceList( boolean bActive )
161 {
162 return _dao.selectRssFeedReferenceList( bActive );
163 }
164
165
166
167
168
169
170 public static boolean checkUrlNotUsed( String strUrl )
171 {
172 return _dao.checkUrlNotUsed( strUrl );
173 }
174
175
176
177
178
179
180
181
182
183
184 public static RssFeed./../../../../fr/paris/lutece/plugins/rss/business/RssFeed.html#RssFeed">RssFeed updateOrder( RssFeed rssFeed, int nNewOrder )
185 throws IndexOutOfBoundsException
186 {
187 if ( !rssFeed.getIsActive( ) )
188 {
189 return null;
190 }
191
192 int nMaxOrder = _dao.newPrimaryKey( true ) - 1;
193 int nOldOrder = rssFeed.getId( );
194
195 if ( ( nNewOrder < 1 ) || ( nNewOrder > nMaxOrder ) )
196 {
197 throw new IndexOutOfBoundsException( );
198 }
199
200 if ( nNewOrder == nOldOrder )
201 {
202 return rssFeed;
203 }
204
205 List<RssPortlet> listLinkedPortlet = new ArrayList<RssPortlet>( );
206
207 for ( RssFeed currentRssFeed : getRssFeeds( true ) )
208 {
209 int nCurrentOrder = currentRssFeed.getId( );
210
211 if ( ( nOldOrder > nNewOrder ) && ( nCurrentOrder < nOldOrder ) && ( nCurrentOrder >= nNewOrder ) )
212 {
213 currentRssFeed.setId( nCurrentOrder + 1 );
214 _dao.store( currentRssFeed );
215 _dao.storeLastFetchInfos( currentRssFeed );
216
217 for ( RssPortlet linkedPortlet : _daoPortlet.checkLinkedPortlet( nCurrentOrder ) )
218 {
219 linkedPortlet.setRssFeedId( Integer.toString( nCurrentOrder + 1 ) );
220 listLinkedPortlet.add( linkedPortlet );
221 }
222 }
223 else if ( ( nOldOrder < nNewOrder ) && ( nCurrentOrder > nOldOrder ) && ( nCurrentOrder <= nNewOrder ) )
224 {
225 currentRssFeed.setId( nCurrentOrder - 1 );
226 _dao.store( currentRssFeed );
227 _dao.storeLastFetchInfos( currentRssFeed );
228
229 for ( RssPortlet linkedPortlet : _daoPortlet.checkLinkedPortlet( nCurrentOrder ) )
230 {
231 linkedPortlet.setRssFeedId( Integer.toString( nCurrentOrder - 1 ) );
232 listLinkedPortlet.add( linkedPortlet );
233 }
234 }
235 }
236
237 rssFeed.setId( nNewOrder );
238 _dao.store( rssFeed );
239 _dao.storeLastFetchInfos( rssFeed );
240
241 for ( RssPortlet linkedPortlet : _daoPortlet.checkLinkedPortlet( nOldOrder ) )
242 {
243 linkedPortlet.setRssFeedId( Integer.toString( nNewOrder ) );
244 listLinkedPortlet.add( linkedPortlet );
245 }
246
247 for ( RssPortlet portletToUpdate : listLinkedPortlet )
248 {
249 _daoPortlet.store( portletToUpdate );
250 }
251
252 return rssFeed;
253 }
254
255
256
257
258
259
260
261 public static RssFeed/../../../../../fr/paris/lutece/plugins/rss/business/RssFeed.html#RssFeed">RssFeed setActive( RssFeed rssFeed, boolean bActive )
262 {
263 remove( rssFeed );
264 rssFeed.setIsActive( bActive );
265
266 return create( rssFeed );
267 }
268 }