2021-03-07 11:56:15 +01:00
|
|
|
// Copyright (c) 2021, Fr.Terrot. All rights reserved.
|
|
|
|
// Use of this source code is governed by a MIT-style
|
|
|
|
// license that can be found in the LICENSE file.
|
|
|
|
|
|
|
|
package io.gitea.mylyn.core;
|
|
|
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
import java.util.EnumSet;
|
|
|
|
import java.util.Set;
|
|
|
|
|
|
|
|
import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
|
|
|
|
|
|
|
|
public enum GiteaAttribute {
|
|
|
|
|
|
|
|
BODY("Description", TaskAttribute.DESCRIPTION, TaskAttribute.TYPE_LONG_RICH_TEXT),
|
|
|
|
|
|
|
|
TITLE("Summary", TaskAttribute.SUMMARY, TaskAttribute.TYPE_SHORT_RICH_TEXT),
|
|
|
|
|
|
|
|
STATUS("Status", TaskAttribute.STATUS, TaskAttribute.TYPE_SHORT_TEXT, GiteaFlag.ATTRIBUTE, GiteaFlag.READ_ONLY),
|
|
|
|
|
|
|
|
LABELS("Labels", "io.gitea.mylyn.issue.labels", TaskAttribute.TYPE_LONG_TEXT, GiteaFlag.ATTRIBUTE),
|
|
|
|
|
|
|
|
UPDATED("Updated", TaskAttribute.DATE_MODIFICATION, TaskAttribute.TYPE_DATETIME, GiteaFlag.READ_ONLY,
|
|
|
|
GiteaFlag.ATTRIBUTE),
|
|
|
|
|
|
|
|
CREATED("Created", TaskAttribute.DATE_CREATION, TaskAttribute.TYPE_DATETIME, GiteaFlag.READ_ONLY,
|
|
|
|
GiteaFlag.ATTRIBUTE),
|
|
|
|
|
|
|
|
COMPLETED("Completed", TaskAttribute.DATE_COMPLETION, TaskAttribute.TYPE_DATETIME, GiteaFlag.READ_ONLY),
|
|
|
|
|
2021-04-14 19:06:12 +02:00
|
|
|
DUE_DATE("Due Date", TaskAttribute.DATE_DUE, TaskAttribute.TYPE_DATE, GiteaFlag.ATTRIBUTE),
|
|
|
|
|
2021-03-07 11:56:15 +01:00
|
|
|
AUTHOR("Author", TaskAttribute.USER_REPORTER, TaskAttribute.TYPE_PERSON, GiteaFlag.READ_ONLY, GiteaFlag.ATTRIBUTE),
|
|
|
|
|
|
|
|
PROJECT("Project", TaskAttribute.PRODUCT, TaskAttribute.TYPE_SHORT_TEXT, GiteaFlag.READ_ONLY, GiteaFlag.ATTRIBUTE),
|
|
|
|
|
|
|
|
ASSIGNEE("Assignee", TaskAttribute.USER_ASSIGNED, TaskAttribute.TYPE_PERSON, GiteaFlag.ATTRIBUTE),
|
|
|
|
|
|
|
|
MILESTONE("Milestone", "io.gitea.mylyn.issue.milestone", TaskAttribute.TYPE_SINGLE_SELECT, GiteaFlag.ATTRIBUTE),
|
|
|
|
|
|
|
|
IID("IID", TaskAttribute.TASK_KEY, TaskAttribute.TYPE_INTEGER, GiteaFlag.READ_ONLY),
|
|
|
|
|
|
|
|
PRIORITY("Priority", TaskAttribute.PRIORITY, TaskAttribute.TYPE_SHORT_TEXT, GiteaFlag.READ_ONLY),
|
|
|
|
|
|
|
|
TYPE("Type", TaskAttribute.TASK_KIND, TaskAttribute.TYPE_SHORT_TEXT, GiteaFlag.READ_ONLY);
|
|
|
|
|
|
|
|
private Set<GiteaFlag> flags;
|
|
|
|
|
|
|
|
private final String prettyName;
|
|
|
|
|
|
|
|
private final String taskKey;
|
|
|
|
|
|
|
|
private final String type;
|
|
|
|
|
|
|
|
public String getKind() {
|
|
|
|
if (type.equals(TaskAttribute.TYPE_PERSON)) {
|
|
|
|
return TaskAttribute.KIND_PEOPLE;
|
|
|
|
} else if (flags.contains(GiteaFlag.ATTRIBUTE)) {
|
|
|
|
return TaskAttribute.KIND_DEFAULT;
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isReadOnly() {
|
|
|
|
return flags.contains(GiteaFlag.READ_ONLY);
|
|
|
|
}
|
|
|
|
|
|
|
|
GiteaAttribute(String prettyName, String taskKey, String type, GiteaFlag... flags) {
|
|
|
|
this.taskKey = taskKey;
|
|
|
|
this.prettyName = prettyName;
|
|
|
|
this.type = type;
|
|
|
|
if (flags == null || flags.length == 0) {
|
|
|
|
this.setFlags(EnumSet.noneOf(GiteaFlag.class));
|
|
|
|
} else {
|
|
|
|
this.setFlags(EnumSet.copyOf(Arrays.asList(flags)));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
GiteaAttribute(String prettyName, String taskKey, String type) {
|
|
|
|
this(prettyName, taskKey, type, new GiteaFlag[] {});
|
|
|
|
}
|
|
|
|
|
|
|
|
public Set<GiteaFlag> getFlags() {
|
|
|
|
return flags;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setFlags(Set<GiteaFlag> flags) {
|
|
|
|
this.flags = flags;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getPrettyName() {
|
|
|
|
return prettyName;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getTaskKey() {
|
|
|
|
return taskKey;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getType() {
|
|
|
|
return type;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String toString() {
|
|
|
|
return this.prettyName;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static GiteaAttribute get(String key) {
|
|
|
|
for (GiteaAttribute attr : GiteaAttribute.values()) {
|
|
|
|
if (attr.getTaskKey().equals(key)) {
|
|
|
|
return attr;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|