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 info.magnolia.module.delta;
35
36 import info.magnolia.jcr.util.SessionUtil;
37 import info.magnolia.module.InstallContext;
38
39 import java.io.InputStream;
40 import java.math.BigDecimal;
41 import java.util.Calendar;
42
43 import javax.jcr.Binary;
44 import javax.jcr.Node;
45 import javax.jcr.RepositoryException;
46 import javax.jcr.Session;
47 import javax.jcr.Value;
48
49
50
51
52
53
54 public class NewPropertyTask extends PropertyValuesTask {
55 private final String workspaceName;
56 private final String nodePath;
57 private final String propertyName;
58 private final Object value;
59
60 public NewPropertyTask(String name, String description, String workspaceName, String nodePath, String propertyName, String value) {
61 this(name, description, workspaceName, nodePath, propertyName, (Object) value);
62 }
63
64 public NewPropertyTask(String name, String description, String workspaceName, String nodePath, String propertyName, Value value) {
65 this(name, description, workspaceName, nodePath, propertyName, (Object) value);
66 }
67
68 public NewPropertyTask(String name, String description, String workspaceName, String nodePath, String propertyName, Node value) {
69 this(name, description, workspaceName, nodePath, propertyName, (Object) value);
70 }
71
72 public NewPropertyTask(String name, String description, String workspaceName, String nodePath, String propertyName, Binary value) {
73 this(name, description, workspaceName, nodePath, propertyName, (Object) value);
74 }
75
76 public NewPropertyTask(String name, String description, String workspaceName, String nodePath, String propertyName, Calendar value) {
77 this(name, description, workspaceName, nodePath, propertyName, (Object) value);
78 }
79
80 public NewPropertyTask(String name, String description, String workspaceName, String nodePath, String propertyName, BigDecimal value) {
81 this(name, description, workspaceName, nodePath, propertyName, (Object) value);
82 }
83
84 public NewPropertyTask(String name, String description, String workspaceName, String nodePath, String propertyName, Long value) {
85 this(name, description, workspaceName, nodePath, propertyName, (Object) value);
86 }
87
88 public NewPropertyTask(String name, String description, String workspaceName, String nodePath, String propertyName, Double value) {
89 this(name, description, workspaceName, nodePath, propertyName, (Object) value);
90 }
91
92 public NewPropertyTask(String name, String description, String workspaceName, String nodePath, String propertyName, Boolean value) {
93 this(name, description, workspaceName, nodePath, propertyName, (Object) value);
94 }
95
96 public NewPropertyTask(String name, String description, String workspaceName, String nodePath, String propertyName, InputStream value) {
97 this(name, description, workspaceName, nodePath, propertyName, (Object) value);
98 }
99
100 private NewPropertyTask(String name, String description, String workspaceName, String nodePath, String propertyName, Object value) {
101 super(name, description);
102 this.workspaceName = workspaceName;
103 this.nodePath = nodePath;
104 this.propertyName = propertyName;
105 this.value = value;
106 }
107
108 @Override
109 public void execute(InstallContext ctx) {
110 try {
111 final Session session = ctx.getJCRSession(workspaceName);
112 final Node node = SessionUtil.getNode(session, nodePath);
113
114 newProperty(ctx, node, propertyName, value);
115 } catch (RepositoryException e) {
116 ctx.error(format("Could not create property {0} at {1}, please create it with value {2}.", propertyName, nodePath, value), e);
117 }
118 }
119 }