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.templatingkit.setup;
35
36 import info.magnolia.jcr.util.PropertyUtil;
37 import info.magnolia.module.InstallContext;
38 import info.magnolia.module.delta.NodeVisitorTask;
39 import info.magnolia.module.templatingkit.resources.VersioningResourceDefinition;
40 import info.magnolia.repository.RepositoryConstants;
41
42 import javax.jcr.Node;
43 import javax.jcr.RepositoryException;
44
45
46
47
48 public class AddVersionToResourceTask extends NodeVisitorTask {
49
50 private final String link;
51 private final String version;
52
53 public AddVersionToResourceTask(String path, String link, String version) {
54 super("Add version to resource", String.format("Add version to resource %s", link), RepositoryConstants.CONFIG, path);
55 this.link = link;
56 this.version = version;
57 }
58
59 @Override
60 protected boolean nodeMatches(Node node) {
61 return link.equals(PropertyUtil.getString(node, "link")) && !VersioningResourceDefinition.class.getName().equals(PropertyUtil.getString(node, "class"));
62 }
63
64 @Override
65 protected void operateOnNode(InstallContext installContext, Node node) {
66 try {
67 node.setProperty("class", VersioningResourceDefinition.class.getName());
68 node.setProperty("version", version);
69 } catch (RepositoryException e) {
70 throw new RuntimeException(e);
71 }
72 }
73 }