Skip to content
This repository was archived by the owner on Jun 20, 2023. It is now read-only.

Commit ce215ee

Browse files
author
kramer
committed
added equals and hashCode methods to most action implementations - fixes #180
1 parent 792c3a3 commit ce215ee

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+1602
-85
lines changed

jest-common/src/main/java/io/searchbox/client/config/ClientConfig.java

+45
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package io.searchbox.client.config;
22

33
import com.google.gson.Gson;
4+
import org.apache.commons.lang3.builder.EqualsBuilder;
5+
import org.apache.commons.lang3.builder.HashCodeBuilder;
46

57
import java.util.Collection;
68
import java.util.LinkedHashSet;
@@ -101,6 +103,49 @@ public ClientConfig build() {
101103
}
102104
}
103105

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+
104149
protected static abstract class AbstractBuilder<T extends ClientConfig, K extends AbstractBuilder> {
105150
protected Set<String> serverList = new LinkedHashSet<String>();
106151
protected boolean isMultiThreaded;

jest-common/src/main/java/io/searchbox/core/Count.java

+29-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
import com.google.gson.Gson;
44
import io.searchbox.action.AbstractAction;
55
import io.searchbox.action.AbstractMultiTypeActionBuilder;
6-
import io.searchbox.action.GenericResultAbstractAction;
6+
import org.apache.commons.lang3.builder.EqualsBuilder;
7+
import org.apache.commons.lang3.builder.HashCodeBuilder;
78

89
/**
910
* @author Dogukan Sonmez
@@ -47,6 +48,33 @@ public Object getData(Gson gson) {
4748
return query;
4849
}
4950

51+
@Override
52+
public int hashCode() {
53+
return new HashCodeBuilder()
54+
.appendSuper(super.hashCode())
55+
.append(query)
56+
.toHashCode();
57+
}
58+
59+
@Override
60+
public boolean equals(Object obj) {
61+
if (obj == null) {
62+
return false;
63+
}
64+
if (obj == this) {
65+
return true;
66+
}
67+
if (obj.getClass() != getClass()) {
68+
return false;
69+
}
70+
71+
Count rhs = (Count) obj;
72+
return new EqualsBuilder()
73+
.appendSuper(super.equals(obj))
74+
.append(query, rhs.query)
75+
.isEquals();
76+
}
77+
5078
public static class Builder extends AbstractMultiTypeActionBuilder<Count, Builder> {
5179
private String query;
5280

jest-common/src/main/java/io/searchbox/core/DeleteByQuery.java

+30-5
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,15 @@
33
import com.google.gson.Gson;
44
import io.searchbox.action.AbstractMultiTypeActionBuilder;
55
import io.searchbox.action.GenericResultAbstractAction;
6-
import org.slf4j.Logger;
7-
import org.slf4j.LoggerFactory;
6+
import org.apache.commons.lang3.builder.EqualsBuilder;
7+
import org.apache.commons.lang3.builder.HashCodeBuilder;
88

99
/**
1010
* @author Dogukan Sonmez
1111
* @author cihat keser
1212
*/
1313
public class DeleteByQuery extends GenericResultAbstractAction {
1414

15-
final static Logger log = LoggerFactory.getLogger(DeleteByQuery.class);
1615
private String query;
1716

1817
public DeleteByQuery(Builder builder) {
@@ -23,10 +22,9 @@ public DeleteByQuery(Builder builder) {
2322
}
2423

2524
@Override
26-
public String buildURI() {
25+
protected String buildURI() {
2726
StringBuilder sb = new StringBuilder();
2827
sb.append(super.buildURI()).append("/_query");
29-
log.debug("Created URI for delete by query action is : {}", sb.toString());
3028
return sb.toString();
3129
}
3230

@@ -45,6 +43,33 @@ public Object getData(Gson gson) {
4543
return query;
4644
}
4745

46+
@Override
47+
public int hashCode() {
48+
return new HashCodeBuilder()
49+
.appendSuper(super.hashCode())
50+
.append(query)
51+
.toHashCode();
52+
}
53+
54+
@Override
55+
public boolean equals(Object obj) {
56+
if (obj == null) {
57+
return false;
58+
}
59+
if (obj == this) {
60+
return true;
61+
}
62+
if (obj.getClass() != getClass()) {
63+
return false;
64+
}
65+
66+
DeleteByQuery rhs = (DeleteByQuery) obj;
67+
return new EqualsBuilder()
68+
.appendSuper(super.equals(obj))
69+
.append(query, rhs.query)
70+
.isEquals();
71+
}
72+
4873
public static class Builder extends AbstractMultiTypeActionBuilder<DeleteByQuery, Builder> {
4974

5075
private String query;

jest-common/src/main/java/io/searchbox/core/Explain.java

+29-4
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,15 @@
22

33
import com.google.gson.Gson;
44
import io.searchbox.action.GenericResultAbstractDocumentTargetedAction;
5-
import org.slf4j.Logger;
6-
import org.slf4j.LoggerFactory;
5+
import org.apache.commons.lang3.builder.EqualsBuilder;
6+
import org.apache.commons.lang3.builder.HashCodeBuilder;
77

88
/**
99
* @author Dogukan Sonmez
1010
* @author cihat keser
1111
*/
1212
public class Explain extends GenericResultAbstractDocumentTargetedAction {
1313

14-
final static Logger log = LoggerFactory.getLogger(Explain.class);
1514
private Object query;
1615

1716
private Explain(Builder builder) {
@@ -34,10 +33,36 @@ public Object getData(Gson gson) {
3433
protected String buildURI() {
3534
StringBuilder sb = new StringBuilder(super.buildURI());
3635
sb.append("/_explain");
37-
log.debug("Created URI for explain action is :" + sb.toString());
3836
return sb.toString();
3937
}
4038

39+
@Override
40+
public int hashCode() {
41+
return new HashCodeBuilder()
42+
.appendSuper(super.hashCode())
43+
.append(query)
44+
.toHashCode();
45+
}
46+
47+
@Override
48+
public boolean equals(Object obj) {
49+
if (obj == null) {
50+
return false;
51+
}
52+
if (obj == this) {
53+
return true;
54+
}
55+
if (obj.getClass() != getClass()) {
56+
return false;
57+
}
58+
59+
Explain rhs = (Explain) obj;
60+
return new EqualsBuilder()
61+
.appendSuper(super.equals(obj))
62+
.append(query, rhs.query)
63+
.isEquals();
64+
}
65+
4166
public static class Builder extends GenericResultAbstractDocumentTargetedAction.Builder<Explain, Builder> {
4267
private final Object query;
4368

jest-common/src/main/java/io/searchbox/core/Index.java

+29
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import io.searchbox.action.GenericResultAbstractDocumentTargetedAction;
66
import io.searchbox.client.JestResult;
77
import io.searchbox.params.Parameters;
8+
import org.apache.commons.lang3.builder.EqualsBuilder;
9+
import org.apache.commons.lang3.builder.HashCodeBuilder;
810

911
import java.util.Collection;
1012

@@ -51,6 +53,33 @@ public String getBulkMethodName() {
5153
}
5254
}
5355

56+
@Override
57+
public int hashCode() {
58+
return new HashCodeBuilder()
59+
.appendSuper(super.hashCode())
60+
.append(source)
61+
.toHashCode();
62+
}
63+
64+
@Override
65+
public boolean equals(Object obj) {
66+
if (obj == null) {
67+
return false;
68+
}
69+
if (obj == this) {
70+
return true;
71+
}
72+
if (obj.getClass() != getClass()) {
73+
return false;
74+
}
75+
76+
Index rhs = (Index) obj;
77+
return new EqualsBuilder()
78+
.appendSuper(super.equals(obj))
79+
.append(source, rhs.source)
80+
.isEquals();
81+
}
82+
5483
public static class Builder extends GenericResultAbstractDocumentTargetedAction.Builder<Index, Builder> {
5584
private final Object source;
5685

jest-common/src/main/java/io/searchbox/core/MoreLikeThis.java

+29-4
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,15 @@
22

33
import com.google.gson.Gson;
44
import io.searchbox.action.GenericResultAbstractDocumentTargetedAction;
5-
import org.slf4j.Logger;
6-
import org.slf4j.LoggerFactory;
5+
import org.apache.commons.lang3.builder.EqualsBuilder;
6+
import org.apache.commons.lang3.builder.HashCodeBuilder;
77

88
/**
99
* @author Dogukan Sonmez
1010
* @author cihat keser
1111
*/
1212
public class MoreLikeThis extends GenericResultAbstractDocumentTargetedAction {
1313

14-
final static Logger log = LoggerFactory.getLogger(MoreLikeThis.class);
1514
private Object query;
1615

1716
private MoreLikeThis(Builder builder) {
@@ -25,7 +24,6 @@ private MoreLikeThis(Builder builder) {
2524
protected String buildURI() {
2625
StringBuilder sb = new StringBuilder(super.buildURI());
2726
sb.append("/_mlt");
28-
log.debug("Created URI for update action is :" + sb.toString());
2927
return sb.toString();
3028
}
3129

@@ -39,6 +37,33 @@ public Object getData(Gson gson) {
3937
return query;
4038
}
4139

40+
@Override
41+
public int hashCode() {
42+
return new HashCodeBuilder()
43+
.appendSuper(super.hashCode())
44+
.append(query)
45+
.toHashCode();
46+
}
47+
48+
@Override
49+
public boolean equals(Object obj) {
50+
if (obj == null) {
51+
return false;
52+
}
53+
if (obj == this) {
54+
return true;
55+
}
56+
if (obj.getClass() != getClass()) {
57+
return false;
58+
}
59+
60+
MoreLikeThis rhs = (MoreLikeThis) obj;
61+
return new EqualsBuilder()
62+
.appendSuper(super.equals(obj))
63+
.append(query, rhs.query)
64+
.isEquals();
65+
}
66+
4267
public static class Builder extends GenericResultAbstractDocumentTargetedAction.Builder<MoreLikeThis, Builder> {
4368
private Object query;
4469

jest-common/src/main/java/io/searchbox/core/MultiGet.java

+29
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import io.searchbox.action.AbstractAction;
88
import io.searchbox.action.AbstractMultiTypeActionBuilder;
99
import io.searchbox.action.GenericResultAbstractAction;
10+
import org.apache.commons.lang3.builder.EqualsBuilder;
11+
import org.apache.commons.lang3.builder.HashCodeBuilder;
1012

1113
import java.util.Collection;
1214
import java.util.LinkedList;
@@ -63,6 +65,33 @@ public String getRestMethodName() {
6365
return "GET";
6466
}
6567

68+
@Override
69+
public int hashCode() {
70+
return new HashCodeBuilder()
71+
.appendSuper(super.hashCode())
72+
.append(source)
73+
.toHashCode();
74+
}
75+
76+
@Override
77+
public boolean equals(Object obj) {
78+
if (obj == null) {
79+
return false;
80+
}
81+
if (obj == this) {
82+
return true;
83+
}
84+
if (obj.getClass() != getClass()) {
85+
return false;
86+
}
87+
88+
MultiGet rhs = (MultiGet) obj;
89+
return new EqualsBuilder()
90+
.appendSuper(super.equals(obj))
91+
.append(source, rhs.source)
92+
.isEquals();
93+
}
94+
6695
public static class Builder {
6796
private Builder() {
6897
}

0 commit comments

Comments
 (0)