View Javadoc

1   /*
2    * Copyright (C) 2010 Atlassian
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  package com.atlassian.jira.rest.client.domain;
18  
19  import com.atlassian.jira.rest.client.NamedEntity;
20  import com.google.common.base.Objects;
21  
22  import java.util.Collection;
23  
24  /**
25   * Information about selected transition including fields which can or must be set while performing the transition.
26   *
27   * @since v0.1
28   */
29  public class Transition implements NamedEntity{
30      private final String name;
31      private final int id;
32      private final Collection<Field> fields;
33  
34      public Transition(String name, int id, Collection<Field> fields) {
35          this.name = name;
36          this.id = id;
37          this.fields = fields;
38      }
39  
40      public String getName() {
41          return name;
42      }
43  
44      public int getId() {
45          return id;
46      }
47  
48      public Iterable<Field> getFields() {
49          return fields;
50      }
51  
52      @Override
53      public boolean equals(Object obj) {
54          if (obj instanceof Transition) {
55              Transition that = (Transition) obj;
56              return Objects.equal(this.name, that.name)
57                      && Objects.equal(this.id, that.id)
58                      && Objects.equal(this.fields, that.fields);
59          }
60          return false;
61      }
62  
63      @Override
64      public int hashCode() {
65          return Objects.hashCode(id, name, fields);
66      }
67  
68  
69      @Override
70      public String toString() {
71          return Objects.toStringHelper(this).
72                  add("id", id).
73                  add("name", name).
74                  add("fields", fields).
75                  toString();
76      }
77  
78  
79      public static class Field {
80          private final String id;
81          private final boolean isRequired;
82          private final String type;
83  
84          public Field(String id, boolean isRequired, String type) {
85              this.id = id;
86              this.isRequired = isRequired;
87              this.type = type;
88          }
89  
90          public String getId() {
91              return id;
92          }
93  
94          public boolean isRequired() {
95              return isRequired;
96          }
97  
98          public String getType() {
99              return type;
100         }
101 
102         @Override
103         public int hashCode() {
104             return Objects.hashCode(id, isRequired, type);
105         }
106 
107         @Override
108         public boolean equals(Object obj) {
109             if (obj instanceof Field) {
110                 Field that = (Field) obj;
111                 return Objects.equal(this.id, that.id)
112                         && Objects.equal(this.isRequired, that.isRequired)
113                         && Objects.equal(this.type, that.type);
114             }
115             return false;
116         }
117 
118         @Override
119         public String toString() {
120             return Objects.toStringHelper(this).
121                     add("id", id).
122                     add("isRequired", isRequired).
123                     add("type", type).
124                     toString();
125         }
126 
127     }
128 }