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.blog.business;
35
36 import java.io.Serializable;
37 import java.sql.Timestamp;
38 import java.util.ArrayList;
39 import java.util.List;
40
41 import javax.validation.constraints.NotEmpty;
42 import javax.validation.constraints.Size;
43
44 import fr.paris.lutece.plugins.blog.business.portlet.BlogPublication;
45 import fr.paris.lutece.portal.business.user.AdminUser;
46 import fr.paris.lutece.portal.business.user.AdminUserHome;
47 import fr.paris.lutece.portal.service.rbac.RBACResource;
48 import fr.paris.lutece.portal.service.resource.IExtendableResource;
49 import fr.paris.lutece.util.ReferenceItem;
50
51
52
53
54 public class Blog extends ReferenceItem implements Serializable, IExtendableResource, RBACResource
55 {
56 public static final String PROPERTY_RESOURCE_TYPE = "BLOG";
57
58 private static final long serialVersionUID = 1L;
59
60
61 public static final String PERMISSION_VIEW = "VIEW";
62 public static final String PERMISSION_CREATE = "CREATE";
63 public static final String PERMISSION_MODIFY = "MODIFY";
64 public static final String PERMISSION_DELETE = "DELETE";
65 public static final String PERMISSION_PUBLISH = "PUBLISH";
66
67
68 private int _nId;
69
70 private int _nAttachedPortletId;
71
72 private int _nVersion;
73
74 @NotEmpty( message = "#i18n{blog.validation.blog.ContentLabel.notEmpty}" )
75 @Size( max = 255, message = "#i18n{blog.validation.blog.ContentLabel.size}" )
76 private String _strContentLabel;
77
78 private Timestamp _dateCreationDate;
79
80 private Timestamp _dateUpdateDate;
81
82 @NotEmpty( message = "#i18n{blog.validation.blog.HtmlContent.notEmpty}" )
83 @Size( message = "#i18n{blog.validation.blog.HtmlContent.size}" )
84 private String _strHtmlContent;
85
86 @NotEmpty( message = "#i18n{blog.validation.blog.User.notEmpty}" )
87 @Size( max = 255, message = "#i18n{blog.validation.blog.User.size}" )
88 private String _strUser;
89
90 @NotEmpty( message = "#i18n{blog.validation.blog.UserCreator.notEmpty}" )
91 @Size( max = 255, message = "#i18n{blog.validation.blog.UserCreator.size}" )
92 private String _strUserCreator;
93
94 @Size( max = 255, message = "#i18n{blog.validation.blog.EditComment.size}" )
95 private String _strEditComment;
96
97 @Size( message = "#i18n{blog.validation.description.size}" )
98 private String _strDescription;
99
100 private List<DocContent> _docContent = new ArrayList<>( );
101
102 private String _strUrl;
103
104 private boolean _bShareable;
105
106 private boolean _bLocked;
107
108 private List<Tag> _tag = new ArrayList<>( );
109
110 private List<BlogPublication> _blogPublication = new ArrayList<>( );
111
112
113
114
115
116
117 public int getId( )
118 {
119 return _nId;
120 }
121
122
123
124
125 @Override
126 public String getName( )
127 {
128 return getContentLabel( );
129 }
130
131
132
133
134
135
136
137 public void setId( int nId )
138 {
139 _nId = nId;
140 }
141
142
143
144
145
146
147 public int getVersion( )
148 {
149 return _nVersion;
150 }
151
152
153
154
155
156
157
158 public void setVersion( int nVersion )
159 {
160 _nVersion = nVersion;
161 }
162
163
164
165
166
167
168 public String getContentLabel( )
169 {
170 return _strContentLabel;
171 }
172
173
174
175
176
177
178
179 public void setContentLabel( String strContentLabel )
180 {
181 _strContentLabel = strContentLabel;
182 }
183
184
185
186
187
188
189 public Timestamp getCreationDate( )
190 {
191 return _dateCreationDate;
192 }
193
194
195
196
197
198
199
200 public void setCreationDate( Timestamp dateCreationDate )
201 {
202 _dateCreationDate = dateCreationDate;
203 }
204
205
206
207
208
209
210 public Timestamp getUpdateDate( )
211 {
212 return _dateUpdateDate;
213 }
214
215
216
217
218
219
220
221 public void setUpdateDate( Timestamp dateUpdateDate )
222 {
223 _dateUpdateDate = dateUpdateDate;
224 }
225
226
227
228
229
230
231 public String getHtmlContent( )
232 {
233 return _strHtmlContent;
234 }
235
236
237
238
239
240
241
242 public void setHtmlContent( String strHtmlContent )
243 {
244 _strHtmlContent = strHtmlContent;
245 }
246
247
248
249
250
251
252 public String getUser( )
253 {
254 return _strUser;
255 }
256
257
258
259
260
261
262
263 public void setUser( String strUser )
264 {
265 _strUser = strUser;
266 }
267
268
269
270
271
272
273 public String getUserCreator( )
274 {
275 return _strUserCreator;
276 }
277
278
279
280
281
282
283
284 public void setUserCreator( String strUserCreator )
285 {
286 _strUserCreator = strUserCreator;
287 }
288
289 public void setAttachedPortletId( int nAttachedPortletId )
290 {
291 _nAttachedPortletId = nAttachedPortletId;
292 }
293
294 public int getAttachedPortletId( )
295 {
296 return _nAttachedPortletId;
297 }
298
299
300
301
302
303
304 public String getEditComment( )
305 {
306 return _strEditComment;
307 }
308
309
310
311
312
313
314
315 public void setEditComment( String strEditComment )
316 {
317 _strEditComment = strEditComment;
318 }
319
320
321
322
323
324
325 public String getDescription( )
326 {
327 return _strDescription;
328 }
329
330
331
332
333
334
335
336 public void setDescription( String strDescription )
337 {
338 _strDescription = strDescription;
339 }
340
341
342
343
344
345
346 public List<DocContent> getDocContent( )
347 {
348 return _docContent;
349 }
350
351
352
353
354
355
356
357 public void setDocContent( List<DocContent> docContent )
358 {
359 _docContent = docContent;
360 }
361
362
363
364
365
366
367
368 public void addContent( DocContent docContent )
369 {
370
371 boolean isContain = _docContent.stream( ).anyMatch( dc -> dc.getTextValue( ).equals( docContent.getTextValue( ) ) );
372
373 if ( !isContain )
374 {
375 _docContent.add( docContent );
376 }
377 }
378
379
380
381
382
383
384
385 public void deleteDocContent( int nIdDoc )
386 {
387 _docContent.removeIf( dc -> dc.getId( ) == nIdDoc );
388
389 }
390
391
392
393
394
395
396 public String getUrl( )
397 {
398 return _strUrl;
399 }
400
401
402
403
404
405
406
407 public void setUrl( String strUrl )
408 {
409 _strUrl = strUrl;
410 }
411
412
413
414
415
416
417 public boolean getShareable( )
418 {
419 return _bShareable;
420 }
421
422
423
424
425
426
427 public void setShareable( boolean bShareable )
428 {
429 _bShareable = bShareable;
430 }
431
432
433
434
435
436
437 public boolean getLocked( )
438 {
439 return _bLocked;
440 }
441
442
443
444
445
446
447 public void setLocked( boolean bLocked )
448 {
449 _bLocked = bLocked;
450 }
451
452
453
454
455
456
457 public List<Tag> getTag( )
458 {
459 return _tag;
460 }
461
462
463
464
465
466
467
468 public void setTag( List<Tag> tag )
469 {
470 _tag = tag;
471 }
472
473
474
475
476
477
478
479 public void addTag( Tag tag )
480 {
481 boolean bContain = _tag.stream( ).anyMatch( tg -> tg.getIdTag( ) == tag.getIdTag( ) );
482 if ( !bContain )
483 {
484 _tag.add( tag );
485 }
486 }
487
488
489
490
491
492
493
494 public void deleteTag( Tag tag )
495 {
496 _tag.removeIf( tg -> tg.getIdTag( ) == tag.getIdTag( ) );
497
498 }
499
500
501
502
503
504
505 public List<BlogPublication> getBlogPublication( )
506 {
507 return _blogPublication;
508 }
509
510
511
512
513
514
515
516 public void setBlogPublication( List<BlogPublication> blogPublication )
517 {
518 _blogPublication = blogPublication;
519 }
520
521
522
523
524
525
526
527 public void addBlogPublication( BlogPublication blogPublication )
528 {
529
530 boolean bContain = _blogPublication.stream( )
531 .anyMatch( blogPub -> ( blogPub.getIdBlog( ) == blogPublication.getIdBlog( ) && blogPub.getIdPortlet( ) == blogPublication.getIdPortlet( ) ) );
532
533 if ( !bContain )
534 {
535 _blogPublication.add( blogPublication );
536 }
537 }
538
539
540
541
542
543
544
545 public void deleteBlogPublication( BlogPublication blogPublication )
546 {
547
548 _blogPublication
549 .removeIf( blogPub -> ( blogPub.getIdBlog( ) == blogPublication.getIdBlog( ) && blogPub.getIdPortlet( ) == blogPublication.getIdPortlet( ) ) );
550 }
551
552
553
554
555 @Override
556 public String getExtendableResourceDescription( )
557 {
558
559 return getDescription( );
560 }
561
562
563
564
565 @Override
566 public String getExtendableResourceImageUrl( )
567 {
568
569 return null;
570 }
571
572
573
574
575 @Override
576 public String getExtendableResourceName( )
577 {
578
579 return getContentLabel( );
580 }
581
582
583
584
585 @Override
586 public String getExtendableResourceType( )
587 {
588
589 return PROPERTY_RESOURCE_TYPE;
590 }
591
592
593
594
595 @Override
596 public String getIdExtendableResource( )
597 {
598 return Integer.toString( _nId );
599 }
600
601
602
603
604 @Override
605 public String getResourceId( )
606 {
607
608 return String.valueOf( _nId );
609 }
610
611
612
613
614 @Override
615 public String getResourceTypeCode( )
616 {
617
618 return PROPERTY_RESOURCE_TYPE;
619 }
620
621
622
623
624
625
626 public AdminUser getUserInfos( )
627 {
628 return AdminUserHome.findUserByLogin( _strUser );
629 }
630
631
632
633
634
635
636 public AdminUser getUserCreatorInfos( )
637 {
638 return AdminUserHome.findUserByLogin( _strUserCreator );
639 }
640
641 }