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.model;
35
36 import info.magnolia.module.ModuleVersionHandler;
37
38 import java.util.ArrayList;
39 import java.util.Collection;
40
41 import org.apache.commons.lang3.StringUtils;
42
43
44
45
46 public class ModuleDefinition {
47 private String name;
48 private String displayName;
49 private String description;
50 private String className;
51 private Class<? extends ModuleVersionHandler> versionHandler;
52 private Version version;
53 private Collection<DependencyDefinition> dependencies = new ArrayList<DependencyDefinition>();
54 private Collection<ServletDefinition> servlets = new ArrayList<ServletDefinition>();
55 private Collection<RepositoryDefinition> repositories = new ArrayList<RepositoryDefinition>();
56 private Collection<PropertyDefinition> properties = new ArrayList<PropertyDefinition>();
57 private Collection<ComponentsDefinition> components = new ArrayList<ComponentsDefinition>();
58
59 public ModuleDefinition() {
60 }
61
62 public ModuleDefinition(String name, Version version, String className, Class<? extends ModuleVersionHandler> versionHandler) {
63 this.name = name;
64 this.version = version;
65 this.className = className;
66 this.versionHandler = versionHandler;
67 }
68
69 public String getName() {
70 return this.name;
71 }
72
73 public void setName(String name) {
74 this.name = name;
75 }
76
77
78
79
80 public String getDisplayName() {
81 if (StringUtils.isEmpty(this.displayName)) {
82 return this.name;
83 }
84
85 return this.displayName;
86 }
87
88 public void setDisplayName(String displayName) {
89 this.displayName = displayName;
90 }
91
92 public String getDescription() {
93 return this.description;
94 }
95
96 public void setDescription(String description) {
97 this.description = description;
98 }
99
100 public String getClassName() {
101 return this.className;
102 }
103
104 public void setClassName(String className) {
105 this.className = className;
106 }
107
108 public Class<? extends ModuleVersionHandler> getVersionHandler() {
109 return versionHandler;
110 }
111
112 public void setVersionHandler(Class<? extends ModuleVersionHandler> versionHandler) {
113 this.versionHandler = versionHandler;
114 }
115
116 public void setVersion(Version version) {
117 this.version = version;
118 }
119
120 public Version getVersion() {
121 return version;
122 }
123
124 public Collection<DependencyDefinition> getDependencies() {
125 return this.dependencies;
126 }
127
128 public void setDependencies(Collection<DependencyDefinition> dependencies) {
129 this.dependencies = dependencies;
130 }
131
132 public void addDependency(DependencyDefinition dep) {
133 dependencies.add(dep);
134 }
135
136 public Collection<ServletDefinition> getServlets() {
137 return this.servlets;
138 }
139
140 public void setServlets(Collection<ServletDefinition> servlets) {
141 for (ServletDefinition def : servlets) {
142 this.addServlet(def);
143 }
144 }
145
146 public void addServlet(ServletDefinition def) {
147 if (StringUtils.isEmpty(def.getComment())) {
148 def.setComment("a servlet used by the " + this.getName() + " module");
149 }
150 this.servlets.add(def);
151 }
152
153 public Collection<RepositoryDefinition> getRepositories() {
154 return this.repositories;
155 }
156
157 public void setRepositories(Collection<RepositoryDefinition> repositories) {
158 this.repositories = repositories;
159 }
160
161 public void addRepository(RepositoryDefinition repository) {
162 this.repositories.add(repository);
163 }
164
165 public Collection<PropertyDefinition> getProperties() {
166 return properties;
167 }
168
169 public void setProperties(Collection<PropertyDefinition> properties) {
170 this.properties = properties;
171 }
172
173 public void addProperty(PropertyDefinition property) {
174 properties.add(property);
175 }
176
177 public Collection<ComponentsDefinition> getComponents() {
178 return components;
179 }
180
181 public void setComponents(Collection<ComponentsDefinition> components) {
182 this.components = components;
183 }
184
185 public boolean addComponents(ComponentsDefinition components) {
186 return this.components.add(components);
187 }
188
189
190
191
192
193 public String getProperty(String propertyName) {
194 for (PropertyDefinition p : properties) {
195 if (propertyName.equals(p.getName())) {
196 return p.getValue();
197 }
198 }
199 return null;
200 }
201
202 @Override
203 public String toString() {
204 return getDisplayName() + " (version " + version + ")";
205 }
206 }