1 package info.magnolia.module.resources.app.setup;
2
3 import info.magnolia.jcr.util.NodeTypes;
4 import info.magnolia.jcr.util.NodeUtil;
5 import info.magnolia.module.InstallContext;
6 import info.magnolia.module.delta.AbstractRepositoryTask;
7 import info.magnolia.module.delta.TaskExecutionException;
8 import info.magnolia.repository.RepositoryConstants;
9
10 import javax.jcr.Node;
11 import javax.jcr.RepositoryException;
12 import javax.jcr.Session;
13
14
15
16
17 public class AddIsFolderOrHasTemplateAvailabilityRuleTask extends AbstractRepositoryTask {
18
19 private final String actionName;
20
21 public AddIsFolderOrHasTemplateAvailabilityRuleTask(String name, String description, String actionName) {
22 super(name, description);
23 this.actionName = actionName;
24 }
25
26 @Override
27 protected void doExecute(InstallContext installContext) throws RepositoryException, TaskExecutionException {
28 Session session = installContext.getJCRSession(RepositoryConstants.CONFIG);
29 Node rules = NodeUtil.createPath(session.getRootNode(),
30 "/modules/processed-resources-app/apps/processed-resources/subApps/browser/actions/" + actionName + "/availability/rules", NodeTypes.ContentNode.NAME);
31 if (rules.hasNode("IsFolderOrHasTemplateRule")) {
32 return;
33 }
34 Node isFolderOrHasTemplateRuleNode = rules.addNode("IsFolderOrHasTemplateRule", NodeTypes.ContentNode.NAME);
35 isFolderOrHasTemplateRuleNode.setProperty("implementationClass", "info.magnolia.module.resources.app.availability.IsFolderOrHasTemplateRule");
36 }
37 }