in org.eclipse.egit.github.core/src/org/eclipse/egit/github/core/service/MilestoneService.java [150:182]
private Map<String, Object> createParams(Milestone milestone,
boolean titleRequired) {
Map<String, Object> params = new LinkedHashMap<>();
String value = milestone.getTitle();
if (titleRequired && value == null) {
throw new IllegalArgumentException(
"Milestone title must not be null"); //$NON-NLS-1$
}
if (value != null) {
params.put(TITLE, value);
}
value = milestone.getState();
if (value != null) {
if (!"open".equals(value) && !"closed".equals(value)) { //$NON-NLS-1$ //$NON-NLS-2$
throw new IllegalArgumentException(
"Milestone state must be 'open' or 'closed', or null for default ('open')"); //$NON-NLS-1$
}
params.put(STATE, value);
}
value = milestone.getDescription();
if (value != null) {
params.put(DESCRIPTION, value);
}
Date date = milestone.getDueOn();
if (date != null) {
params.put(DUE_ON, date);
}
if (params.isEmpty()) {
throw new IllegalArgumentException(
"Milestone operation requires at least one of title, description, state, or due date"); //$NON-NLS-1$
}
return params;
}