mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-17 02:14:54 +00:00
Cleanup: Remove generics need in ContextAndHeaderHolder
Generics were only needed for setting a header, that returned the object being set (most likely the request), but none of the other methods did this.
This commit is contained in:
parent
b4ec9044ed
commit
bc5bf9784d
@ -31,7 +31,7 @@ import java.util.Set;
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class ContextAndHeaderHolder<T> implements HasContextAndHeaders {
|
public class ContextAndHeaderHolder implements HasContextAndHeaders {
|
||||||
|
|
||||||
private ObjectObjectHashMap<Object, Object> context;
|
private ObjectObjectHashMap<Object, Object> context;
|
||||||
protected Map<String, Object> headers;
|
protected Map<String, Object> headers;
|
||||||
@ -113,12 +113,11 @@ public class ContextAndHeaderHolder<T> implements HasContextAndHeaders {
|
|||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@Override
|
@Override
|
||||||
public final T putHeader(String key, Object value) {
|
public final void putHeader(String key, Object value) {
|
||||||
if (headers == null) {
|
if (headers == null) {
|
||||||
headers = new HashMap<>();
|
headers = new HashMap<>();
|
||||||
}
|
}
|
||||||
headers.put(key, value);
|
headers.put(key, value);
|
||||||
return (T) this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
|
@ -26,7 +26,7 @@ import java.util.Set;
|
|||||||
*/
|
*/
|
||||||
public interface HasHeaders {
|
public interface HasHeaders {
|
||||||
|
|
||||||
<V> V putHeader(String key, V value);
|
<V> void putHeader(String key, V value);
|
||||||
|
|
||||||
<V> V getHeader(String key);
|
<V> V getHeader(String key);
|
||||||
|
|
||||||
|
@ -45,7 +45,6 @@ import org.elasticsearch.index.cache.bitset.BitsetFilterCache;
|
|||||||
import org.elasticsearch.index.engine.Engine;
|
import org.elasticsearch.index.engine.Engine;
|
||||||
import org.elasticsearch.index.fielddata.IndexFieldDataService;
|
import org.elasticsearch.index.fielddata.IndexFieldDataService;
|
||||||
import org.elasticsearch.index.mapper.FieldMapper;
|
import org.elasticsearch.index.mapper.FieldMapper;
|
||||||
import org.elasticsearch.index.mapper.FieldMappers;
|
|
||||||
import org.elasticsearch.index.mapper.MapperService;
|
import org.elasticsearch.index.mapper.MapperService;
|
||||||
import org.elasticsearch.index.mapper.ParsedDocument;
|
import org.elasticsearch.index.mapper.ParsedDocument;
|
||||||
import org.elasticsearch.index.query.IndexQueryParserService;
|
import org.elasticsearch.index.query.IndexQueryParserService;
|
||||||
@ -683,7 +682,7 @@ public class PercolateContext extends SearchContext {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <V> V putInContext(Object key, Object value) {
|
public <V> V putInContext(Object key, Object value) {
|
||||||
assert false : "percolatocontext does not support contexts & headers";
|
assert false : "percolatecontext does not support contexts & headers";
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -724,13 +723,12 @@ public class PercolateContext extends SearchContext {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void copyContextFrom(HasContext other) {
|
public void copyContextFrom(HasContext other) {
|
||||||
assert false : "percolatocontext does not support contexts & headers";
|
assert false : "percolatecontext does not support contexts & headers";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <V> V putHeader(String key, V value) {
|
public <V> void putHeader(String key, V value) {
|
||||||
assert false : "percolatocontext does not support contexts & headers";
|
assert false : "percolatecontext does not support contexts & headers";
|
||||||
return value;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -750,11 +748,11 @@ public class PercolateContext extends SearchContext {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void copyHeadersFrom(HasHeaders from) {
|
public void copyHeadersFrom(HasHeaders from) {
|
||||||
assert false : "percolatocontext does not support contexts & headers";
|
assert false : "percolatecontext does not support contexts & headers";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void copyContextAndHeadersFrom(HasContextAndHeaders other) {
|
public void copyContextAndHeadersFrom(HasContextAndHeaders other) {
|
||||||
assert false : "percolatocontext does not support contexts & headers";
|
assert false : "percolatecontext does not support contexts & headers";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -788,8 +788,8 @@ public class DefaultSearchContext extends SearchContext {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <V> V putHeader(String key, V value) {
|
public <V> void putHeader(String key, V value) {
|
||||||
return request.putHeader(key, value);
|
request.putHeader(key, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -597,8 +597,8 @@ public abstract class FilteredSearchContext extends SearchContext {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <V> V putHeader(String key, V value) {
|
public <V> void putHeader(String key, V value) {
|
||||||
return in.putHeader(key, value);
|
in.putHeader(key, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -26,13 +26,12 @@ import org.elasticsearch.common.io.stream.Streamable;
|
|||||||
import org.elasticsearch.common.transport.TransportAddress;
|
import org.elasticsearch.common.transport.TransportAddress;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.HashMap;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The transport message is also a {@link ContextAndHeaderHolder context holder} that holds <b>transient</b> context, that is,
|
* The transport message is also a {@link ContextAndHeaderHolder context holder} that holds <b>transient</b> context, that is,
|
||||||
* the context is not serialized with message.
|
* the context is not serialized with message.
|
||||||
*/
|
*/
|
||||||
public abstract class TransportMessage<TM extends TransportMessage<TM>> extends ContextAndHeaderHolder<TM> implements Streamable {
|
public abstract class TransportMessage<TM extends TransportMessage<TM>> extends ContextAndHeaderHolder implements Streamable {
|
||||||
|
|
||||||
private TransportAddress remoteAddress;
|
private TransportAddress remoteAddress;
|
||||||
|
|
||||||
@ -40,13 +39,7 @@ public abstract class TransportMessage<TM extends TransportMessage<TM>> extends
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected TransportMessage(TM message) {
|
protected TransportMessage(TM message) {
|
||||||
// create a new copy of the headers/context, since we are creating a new request
|
copyContextAndHeadersFrom(message);
|
||||||
// which might have its headers/context changed in the context of that specific request
|
|
||||||
|
|
||||||
if (message.headers != null) {
|
|
||||||
this.headers = new HashMap<>(message.headers);
|
|
||||||
}
|
|
||||||
copyContextFrom(message);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void remoteAddress(TransportAddress remoteAddress) {
|
public void remoteAddress(TransportAddress remoteAddress) {
|
||||||
|
@ -638,9 +638,7 @@ public class TestSearchContext extends SearchContext {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <V> V putHeader(String key, V value) {
|
public <V> void putHeader(String key, V value) {}
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <V> V getHeader(String key) {
|
public <V> V getHeader(String key) {
|
||||||
|
@ -51,6 +51,10 @@ public class TransportMessageTests extends ElasticsearchTestCase {
|
|||||||
assertThat((String) message.getHeader("key1"), equalTo("value1"));
|
assertThat((String) message.getHeader("key1"), equalTo("value1"));
|
||||||
assertThat((String) message.getHeader("key2"), equalTo("value2"));
|
assertThat((String) message.getHeader("key2"), equalTo("value2"));
|
||||||
assertThat(message.isContextEmpty(), is(true));
|
assertThat(message.isContextEmpty(), is(true));
|
||||||
|
|
||||||
|
// ensure that casting is not needed
|
||||||
|
String key1 = message.getHeader("key1");
|
||||||
|
assertThat(key1, is("value1"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -66,6 +70,18 @@ public class TransportMessageTests extends ElasticsearchTestCase {
|
|||||||
assertThat((String) m2.getHeader("key1"), equalTo("value1"));
|
assertThat((String) m2.getHeader("key1"), equalTo("value1"));
|
||||||
assertThat((String) m2.getHeader("key2"), equalTo("value2"));
|
assertThat((String) m2.getHeader("key2"), equalTo("value2"));
|
||||||
assertThat((String) m2.getFromContext("key3"), equalTo("value3"));
|
assertThat((String) m2.getFromContext("key3"), equalTo("value3"));
|
||||||
|
|
||||||
|
// ensure that casting is not needed
|
||||||
|
String key3 = m2.getFromContext("key3");
|
||||||
|
assertThat(key3, is("value3"));
|
||||||
|
testContext(m2, "key3", "value3");
|
||||||
|
}
|
||||||
|
|
||||||
|
// ensure that generic arg like this is not needed: TransportMessage<?> transportMessage
|
||||||
|
private void testContext(TransportMessage transportMessage, String key, String expectedValue) {
|
||||||
|
String result = transportMessage.getFromContext(key);
|
||||||
|
assertThat(result, is(expectedValue));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class Message extends TransportMessage<Message> {
|
private static class Message extends TransportMessage<Message> {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user