|
1 | 1 | package io.searchbox.client.config;
|
2 | 2 |
|
3 | 3 | import com.google.gson.Gson;
|
| 4 | +import org.apache.commons.lang3.builder.EqualsBuilder; |
| 5 | +import org.apache.commons.lang3.builder.HashCodeBuilder; |
4 | 6 |
|
5 | 7 | import java.util.Collection;
|
6 | 8 | import java.util.LinkedHashSet;
|
@@ -101,6 +103,49 @@ public ClientConfig build() {
|
101 | 103 | }
|
102 | 104 | }
|
103 | 105 |
|
| 106 | + @Override |
| 107 | + public int hashCode() { |
| 108 | + return new HashCodeBuilder() |
| 109 | + .append(serverList) |
| 110 | + .append(isMultiThreaded) |
| 111 | + .append(isDiscoveryEnabled) |
| 112 | + .append(discoveryFrequency) |
| 113 | + .append(connTimeout) |
| 114 | + .append(readTimeout) |
| 115 | + .append(discoveryFrequencyTimeUnit) |
| 116 | + .append(maxConnectionIdleTime) |
| 117 | + .append(maxConnectionIdleTimeDurationTimeUnit) |
| 118 | + .append(gson) |
| 119 | + .toHashCode(); |
| 120 | + } |
| 121 | + |
| 122 | + @Override |
| 123 | + public boolean equals(Object obj) { |
| 124 | + if (obj == null) { |
| 125 | + return false; |
| 126 | + } |
| 127 | + if (obj == this) { |
| 128 | + return true; |
| 129 | + } |
| 130 | + if (obj.getClass() != getClass()) { |
| 131 | + return false; |
| 132 | + } |
| 133 | + |
| 134 | + ClientConfig rhs = (ClientConfig) obj; |
| 135 | + return new EqualsBuilder() |
| 136 | + .append(serverList, rhs.serverList) |
| 137 | + .append(isMultiThreaded, rhs.isMultiThreaded) |
| 138 | + .append(isDiscoveryEnabled, rhs.isDiscoveryEnabled) |
| 139 | + .append(discoveryFrequency, rhs.discoveryFrequency) |
| 140 | + .append(connTimeout, rhs.connTimeout) |
| 141 | + .append(readTimeout, rhs.readTimeout) |
| 142 | + .append(discoveryFrequencyTimeUnit, rhs.discoveryFrequencyTimeUnit) |
| 143 | + .append(maxConnectionIdleTime, rhs.maxConnectionIdleTime) |
| 144 | + .append(maxConnectionIdleTimeDurationTimeUnit, rhs.maxConnectionIdleTimeDurationTimeUnit) |
| 145 | + .append(gson, rhs.gson) |
| 146 | + .isEquals(); |
| 147 | + } |
| 148 | + |
104 | 149 | protected static abstract class AbstractBuilder<T extends ClientConfig, K extends AbstractBuilder> {
|
105 | 150 | protected Set<String> serverList = new LinkedHashSet<String>();
|
106 | 151 | protected boolean isMultiThreaded;
|
|
0 commit comments