msb protocol synch change
[msb/apigateway.git] / msb-core / apiroute / apiroute-service / src / main / java / org / openo / msb / wrapper / consul / model / ConsulResponse.java
1 /**
2  * Copyright 2016 ZTE Corporation.
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 * Copyright (C) 2016 ZTE, Inc. and others. All rights reserved. (ZTE)
18 *
19 * Licensed under the Apache License, Version 2.0 (the "License");
20 * you may not use this file except in compliance with the License.
21 * You may obtain a copy of the License at
22 *
23 * http://www.apache.org/licenses/LICENSE-2.0
24 *
25 * Unless required by applicable law or agreed to in writing, software
26 * distributed under the License is distributed on an "AS IS" BASIS,
27 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
28 * See the License for the specific language governing permissions and
29 * limitations under the License.
30 */
31
32 package org.openo.msb.wrapper.consul.model;
33
34 import com.google.common.base.Objects;
35
36 import java.math.BigInteger;
37
38 public class ConsulResponse<T> {
39
40     private final T response;
41     private final long lastContact;
42     private final boolean knownLeader;
43     private final BigInteger index;
44
45     public ConsulResponse(T response, long lastContact, boolean knownLeader, BigInteger index) {
46         this.response = response;
47         this.lastContact = lastContact;
48         this.knownLeader = knownLeader;
49         this.index = index;
50     }
51
52     public T getResponse() {
53         return response;
54     }
55
56     public long getLastContact() {
57         return lastContact;
58     }
59
60     public boolean isKnownLeader() {
61         return knownLeader;
62     }
63
64     public BigInteger getIndex() {
65         return index;
66     }
67
68     @Override
69     public String toString() {
70         return "ConsulResponse{" +
71                 "response=" + response +
72                 ", lastContact=" + lastContact +
73                 ", knownLeader=" + knownLeader +
74                 ", index=" + index +
75                 '}';
76     }
77
78     @Override
79     public boolean equals(Object o) {
80         if (this == o) return true;
81         if (o == null || getClass() != o.getClass()) return false;
82
83         ConsulResponse that = (ConsulResponse) o;
84
85         return Objects.equal(this.response, that.response) &&
86                 Objects.equal(this.lastContact, that.lastContact) &&
87                 Objects.equal(this.knownLeader, that.knownLeader) &&
88                 Objects.equal(this.index, that.index);
89     }
90
91     @Override
92     public int hashCode() {
93         return Objects.hashCode(response, lastContact, knownLeader, index);
94     }
95 }