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.module.InstallContext;
37 import info.magnolia.repository.RepositoryConstants;
38
39
40
41
42
43 public class IsModuleInstalledOrRegistered extends NodeExistsDelegateTask {
44
45 private static final String MODULES_PATH = "/modules";
46 private final String moduleName;
47
48 public IsModuleInstalledOrRegistered(String taskName, String moduleName, Task ifTrue) {
49 this(taskName, moduleName, ifTrue, null);
50 }
51
52 public IsModuleInstalledOrRegistered(String taskName, String moduleName, Taskef="../../../../info/magnolia/module/delta/Task.html#Task">Task ifTrue, Task ifFalse) {
53 this(taskName, String.format("Execute task [%s] if module '%s' is installed or task [%s] if not.",
54 ifTrue == null ? DO_NOTHING : ifTrue.getDescription(),
55 moduleName,
56 ifFalse == null ? DO_NOTHING : ifFalse.getDescription()),
57 moduleName, ifTrue, ifFalse);
58 }
59
60 public IsModuleInstalledOrRegistered(String taskName, String taskDescription, String moduleName, Task ifTrue) {
61 super(taskName, taskDescription, RepositoryConstants.CONFIG, MODULES_PATH + "/" + moduleName, ifTrue);
62 this.moduleName = moduleName;
63 }
64
65 public IsModuleInstalledOrRegistered(String taskName, String taskDescription, String moduleName, Taskef="../../../../info/magnolia/module/delta/Task.html#Task">Task ifTrue, Task ifFalse) {
66 super(taskName, taskDescription, RepositoryConstants.CONFIG, MODULES_PATH + "/" + moduleName, ifTrue, ifFalse);
67 this.moduleName = moduleName;
68 }
69
70 @Override
71 protected boolean condition(InstallContext ctx) {
72 return super.condition(ctx) || ctx.isModuleRegistered(moduleName);
73 }
74 }