/**
* Yobi, Project Hosting SW
*
* Copyright 2013 NAVER Corp.
* http://yobi.io
*
* @author Yi EungJun
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package models.enumeration;
import play.i18n.Messages;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public enum EventType {
NEW_ISSUE("notification.type.new.issue", 1),
NEW_POSTING("notification.type.new.posting", 2),
NEW_PULL_REQUEST("notification.type.new.pullrequest", 3),
ISSUE_STATE_CHANGED("notification.type.issue.state.changed", 4),
ISSUE_ASSIGNEE_CHANGED("notification.type.issue.assignee.changed", 5),
PULL_REQUEST_STATE_CHANGED("notification.type.pullrequest.state.changed", 6),
NEW_COMMENT("notification.type.new.comment", 7),
NEW_REVIEW_COMMENT("notification.type.new.simple.comment", 8),
MEMBER_ENROLL_REQUEST("notification.type.member.enroll", 9),
PULL_REQUEST_MERGED("notification.type.pullrequest.merged", 10),
ISSUE_REFERRED_FROM_COMMIT("notification.type.issue.referred.from.commit", 11),
PULL_REQUEST_COMMIT_CHANGED("notification.type.pullrequest.commit.changed", 12),
NEW_COMMIT("notification.type.new.commit", 13),
PULL_REQUEST_REVIEW_STATE_CHANGED("notification.type.pullrequest.review.action.changed",14),
ISSUE_BODY_CHANGED("notification.type.issue.body.changed", 17),
ISSUE_REFERRED_FROM_PULL_REQUEST("notification.type.issue.referred.from.pullrequest", 16),
REVIEW_THREAD_STATE_CHANGED("notification.type.review.state.changed", 18),
ORGANIZATION_MEMBER_ENROLL_REQUEST("notification.organization.type.member.enroll",19),
COMMENT_UPDATED("notification.type.comment.updated", 20);
private String descr;
private int order;
private String messageKey;
EventType(String messageKey, int order) {
this.messageKey = messageKey;
this.order = order;
}
public String getDescr() {
return Messages.get(messageKey);
}
public int getOrder() {
return order;
}
public static final List<EventType> notiTypes;
static {
notiTypes = Arrays.asList(EventType.values());
Collections.sort(notiTypes, new Comparator<EventType>() {
@Override
public int compare(EventType o1, EventType o2) {
return o1.getOrder() - o2.getOrder();
}
});
}
public boolean isCreating() {
switch(this) {
case NEW_ISSUE:
case NEW_POSTING:
case NEW_PULL_REQUEST:
case NEW_COMMENT:
case NEW_REVIEW_COMMENT:
// We consider "NEW_COMMIT" as "UPDATE" because it updates a project.
return true;
default:
return false;
}
}
}