0
# Project Metadata
1
2
Classes for managing project metadata including organization information, developer details, licenses, mailing lists, source control management, and issue tracking systems.
3
4
## Capabilities
5
6
### Organization
7
8
Represents the organization that develops and maintains the project.
9
10
```java { .api }
11
public class Organization {
12
public String getName();
13
public void setName(String name);
14
public String getUrl();
15
public void setUrl(String url);
16
17
// Utility methods
18
public Organization clone();
19
public InputLocation getLocation(Object key);
20
public void setLocation(Object key, InputLocation location);
21
}
22
```
23
24
**Usage Example:**
25
26
```java
27
Organization org = new Organization();
28
org.setName("Apache Software Foundation");
29
org.setUrl("https://apache.org");
30
31
model.setOrganization(org);
32
```
33
34
### License
35
36
Represents a software license under which the project is distributed.
37
38
```java { .api }
39
public class License {
40
public String getName();
41
public void setName(String name);
42
public String getUrl();
43
public void setUrl(String url);
44
public String getDistribution();
45
public void setDistribution(String distribution);
46
public String getComments();
47
public void setComments(String comments);
48
49
// Utility methods
50
public License clone();
51
public InputLocation getLocation(Object key);
52
public void setLocation(Object key, InputLocation location);
53
}
54
```
55
56
**Usage Example:**
57
58
```java
59
License license = new License();
60
license.setName("Apache License, Version 2.0");
61
license.setUrl("https://www.apache.org/licenses/LICENSE-2.0.txt");
62
license.setDistribution("repo");
63
64
model.addLicense(license);
65
```
66
67
### Developer
68
69
Represents a developer working on the project, extending the base Contributor class with additional developer-specific information.
70
71
```java { .api }
72
public class Developer extends Contributor {
73
public String getId();
74
public void setId(String id);
75
76
// All methods from Contributor are inherited
77
public String getName();
78
public void setName(String name);
79
public String getEmail();
80
public void setEmail(String email);
81
public String getUrl();
82
public void setUrl(String url);
83
public String getOrganization();
84
public void setOrganization(String organization);
85
public String getOrganizationUrl();
86
public void setOrganizationUrl(String organizationUrl);
87
public List<String> getRoles();
88
public void setRoles(List<String> roles);
89
public void addRole(String role);
90
public void removeRole(String role);
91
public String getTimezone();
92
public void setTimezone(String timezone);
93
public Properties getProperties();
94
public void setProperties(Properties properties);
95
96
// Utility methods
97
public Developer clone();
98
public InputLocation getLocation(Object key);
99
public void setLocation(Object key, InputLocation location);
100
}
101
```
102
103
**Usage Example:**
104
105
```java
106
Developer developer = new Developer();
107
developer.setId("johndoe");
108
developer.setName("John Doe");
109
developer.setEmail("john.doe@example.com");
110
developer.setUrl("https://johndoe.dev");
111
developer.setOrganization("Example Corp");
112
developer.addRole("architect");
113
developer.addRole("developer");
114
developer.setTimezone("America/New_York");
115
116
model.addDeveloper(developer);
117
```
118
119
### Contributor
120
121
Represents a contributor to the project.
122
123
```java { .api }
124
public class Contributor {
125
public String getName();
126
public void setName(String name);
127
public String getEmail();
128
public void setEmail(String email);
129
public String getUrl();
130
public void setUrl(String url);
131
public String getOrganization();
132
public void setOrganization(String organization);
133
public String getOrganizationUrl();
134
public void setOrganizationUrl(String organizationUrl);
135
public List<String> getRoles();
136
public void setRoles(List<String> roles);
137
public void addRole(String role);
138
public void removeRole(String role);
139
public String getTimezone();
140
public void setTimezone(String timezone);
141
public Properties getProperties();
142
public void setProperties(Properties properties);
143
144
// Utility methods
145
public Contributor clone();
146
public InputLocation getLocation(Object key);
147
public void setLocation(Object key, InputLocation location);
148
}
149
```
150
151
### MailingList
152
153
Represents a project mailing list for communication.
154
155
```java { .api }
156
public class MailingList {
157
public String getName();
158
public void setName(String name);
159
public String getSubscribe();
160
public void setSubscribe(String subscribe);
161
public String getUnsubscribe();
162
public void setUnsubscribe(String unsubscribe);
163
public String getPost();
164
public void setPost(String post);
165
public String getArchive();
166
public void setArchive(String archive);
167
public List<String> getOtherArchives();
168
public void setOtherArchives(List<String> otherArchives);
169
public void addOtherArchive(String otherArchive);
170
public void removeOtherArchive(String otherArchive);
171
172
// Utility methods
173
public MailingList clone();
174
public InputLocation getLocation(Object key);
175
public void setLocation(Object key, InputLocation location);
176
}
177
```
178
179
**Usage Example:**
180
181
```java
182
MailingList devList = new MailingList();
183
devList.setName("Developer List");
184
devList.setSubscribe("dev-subscribe@example.org");
185
devList.setUnsubscribe("dev-unsubscribe@example.org");
186
devList.setPost("dev@example.org");
187
devList.setArchive("https://lists.example.org/dev/");
188
189
model.addMailingList(devList);
190
```
191
192
### Scm
193
194
Source Control Management information with support for child project inheritance control.
195
196
```java { .api }
197
public class Scm {
198
public String getConnection();
199
public void setConnection(String connection);
200
public String getDeveloperConnection();
201
public void setDeveloperConnection(String developerConnection);
202
public String getTag();
203
public void setTag(String tag);
204
public String getUrl();
205
public void setUrl(String url);
206
207
// Child project inheritance control for SCM connection
208
public String getChildScmConnectionInheritAppendPath();
209
public void setChildScmConnectionInheritAppendPath(String value);
210
public boolean isChildScmConnectionInheritAppendPath();
211
public void setChildScmConnectionInheritAppendPath(boolean value);
212
213
// Child project inheritance control for developer connection
214
public String getChildScmDeveloperConnectionInheritAppendPath();
215
public void setChildScmDeveloperConnectionInheritAppendPath(String value);
216
public boolean isChildScmDeveloperConnectionInheritAppendPath();
217
public void setChildScmDeveloperConnectionInheritAppendPath(boolean value);
218
219
// Child project inheritance control for SCM URL
220
public String getChildScmUrlInheritAppendPath();
221
public void setChildScmUrlInheritAppendPath(String value);
222
public boolean isChildScmUrlInheritAppendPath();
223
public void setChildScmUrlInheritAppendPath(boolean value);
224
225
// Utility methods
226
public Scm clone();
227
public InputLocation getLocation(Object key);
228
public void setLocation(Object key, InputLocation location);
229
}
230
```
231
232
**Usage Example:**
233
234
```java
235
Scm scm = new Scm();
236
scm.setConnection("scm:git:https://github.com/example/project.git");
237
scm.setDeveloperConnection("scm:git:ssh://git@github.com/example/project.git");
238
scm.setUrl("https://github.com/example/project");
239
scm.setTag("HEAD");
240
241
// Control inheritance for child modules
242
scm.setChildScmUrlInheritAppendPath(true);
243
scm.setChildScmConnectionInheritAppendPath(true);
244
245
model.setScm(scm);
246
```
247
248
### IssueManagement
249
250
Issue tracking system configuration.
251
252
```java { .api }
253
public class IssueManagement {
254
public String getSystem();
255
public void setSystem(String system);
256
public String getUrl();
257
public void setUrl(String url);
258
259
// Utility methods
260
public IssueManagement clone();
261
public InputLocation getLocation(Object key);
262
public void setLocation(Object key, InputLocation location);
263
}
264
```
265
266
**Usage Example:**
267
268
```java
269
IssueManagement issues = new IssueManagement();
270
issues.setSystem("GitHub Issues");
271
issues.setUrl("https://github.com/example/project/issues");
272
273
model.setIssueManagement(issues);
274
```
275
276
### CiManagement
277
278
Continuous Integration system configuration.
279
280
```java { .api }
281
public class CiManagement {
282
public String getSystem();
283
public void setSystem(String system);
284
public String getUrl();
285
public void setUrl(String url);
286
public List<Notifier> getNotifiers();
287
public void setNotifiers(List<Notifier> notifiers);
288
public void addNotifier(Notifier notifier);
289
public void removeNotifier(Notifier notifier);
290
291
// Utility methods
292
public CiManagement clone();
293
public InputLocation getLocation(Object key);
294
public void setLocation(Object key, InputLocation location);
295
}
296
```
297
298
### Notifier
299
300
Notification configuration for continuous integration systems.
301
302
```java { .api }
303
public class Notifier {
304
public String getType();
305
public void setType(String type);
306
public boolean isSendOnError();
307
public String getSendOnError();
308
public void setSendOnError(String sendOnError);
309
public void setSendOnError(boolean sendOnError);
310
public boolean isSendOnFailure();
311
public String getSendOnFailure();
312
public void setSendOnFailure(String sendOnFailure);
313
public void setSendOnFailure(boolean sendOnFailure);
314
public boolean isSendOnSuccess();
315
public String getSendOnSuccess();
316
public void setSendOnSuccess(String sendOnSuccess);
317
public void setSendOnSuccess(boolean sendOnSuccess);
318
public boolean isSendOnWarning();
319
public String getSendOnWarning();
320
public void setSendOnWarning(String sendOnWarning);
321
public void setSendOnWarning(boolean sendOnWarning);
322
public String getAddress();
323
public void setAddress(String address);
324
public Properties getConfiguration();
325
public void setConfiguration(Properties configuration);
326
327
// Utility methods
328
public Notifier clone();
329
public InputLocation getLocation(Object key);
330
public void setLocation(Object key, InputLocation location);
331
}
332
```
333
334
**CI Management Example:**
335
336
```java
337
CiManagement ci = new CiManagement();
338
ci.setSystem("GitHub Actions");
339
ci.setUrl("https://github.com/example/project/actions");
340
341
Notifier emailNotifier = new Notifier();
342
emailNotifier.setType("mail");
343
emailNotifier.setSendOnError(true);
344
emailNotifier.setSendOnFailure(true);
345
emailNotifier.setSendOnSuccess(false);
346
emailNotifier.setAddress("team@example.com");
347
348
ci.addNotifier(emailNotifier);
349
model.setCiManagement(ci);
350
```