]> git.argeo.org Git - lgpl/argeo-commons.git/blob - CmsEditable.java
2deca018e9ed4a5ebd3030863545b39ec8f8a550
[lgpl/argeo-commons.git] / CmsEditable.java
1 package org.argeo.api.cms;
2
3 /** Abstraction of a simple edition life cycle. */
4 public interface CmsEditable {
5
6 /** Whether the calling thread can edit, the value is immutable */
7 public Boolean canEdit();
8
9 public Boolean isEditing();
10
11 public void startEditing();
12
13 public void stopEditing();
14
15 public static CmsEditable NON_EDITABLE = new CmsEditable() {
16
17 @Override
18 public void stopEditing() {
19 }
20
21 @Override
22 public void startEditing() {
23 }
24
25 @Override
26 public Boolean isEditing() {
27 return false;
28 }
29
30 @Override
31 public Boolean canEdit() {
32 return false;
33 }
34 };
35
36 public static CmsEditable ALWAYS_EDITING = new CmsEditable() {
37
38 @Override
39 public void stopEditing() {
40 }
41
42 @Override
43 public void startEditing() {
44 }
45
46 @Override
47 public Boolean isEditing() {
48 return true;
49 }
50
51 @Override
52 public Boolean canEdit() {
53 return true;
54 }
55 };
56
57 }