123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- /*
- * Copyright 2013 gitblit.com.
- *
- * 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 com.gitblit.tickets;
-
- import java.io.Serializable;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.Date;
- import java.util.List;
-
- import com.gitblit.models.TicketModel.Patchset;
- import com.gitblit.models.TicketModel.Status;
- import com.gitblit.models.TicketModel.Type;
- import com.gitblit.utils.StringUtils;
-
- /**
- * Represents the results of a query to the ticket index.
- *
- * @author James Moger
- *
- */
- public class QueryResult implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- public String project;
- public String repository;
- public long number;
- public String createdBy;
- public Date createdAt;
- public String updatedBy;
- public Date updatedAt;
- public String dependsOn;
- public String title;
- public String body;
- public Status status;
- public String responsible;
- public String milestone;
- public String topic;
- public Type type;
- public String mergeSha;
- public String mergeTo;
- public List<String> labels;
- public List<String> attachments;
- public List<String> participants;
- public List<String> watchedby;
- public List<String> mentions;
- public Patchset patchset;
- public int commentsCount;
- public int votesCount;
- public int approvalsCount;
-
- public int docId;
- public int totalResults;
-
- public Date getDate() {
- return updatedAt == null ? createdAt : updatedAt;
- }
-
- public boolean isProposal() {
- return type != null && Type.Proposal == type;
- }
-
- public boolean isMerged() {
- return Status.Merged == status && !StringUtils.isEmpty(mergeSha);
- }
-
- public boolean isWatching(String username) {
- return watchedby != null && watchedby.contains(username);
- }
-
- public List<String> getLabels() {
- List<String> list = new ArrayList<String>();
- if (labels != null) {
- list.addAll(labels);
- }
- if (topic != null) {
- list.add(topic);
- }
- Collections.sort(list);
- return list;
- }
-
- @Override
- public boolean equals(Object o) {
- if (o instanceof QueryResult) {
- return hashCode() == o.hashCode();
- }
- return false;
- }
-
- @Override
- public int hashCode() {
- return (repository + number).hashCode();
- }
-
- @Override
- public String toString() {
- return repository + "-" + number;
- }
- }
|