INT-1662 closed a few gaps in functionality (handing arrays of certain types, comma-delimited Strings, etc)
This commit is contained in:
@@ -346,11 +346,29 @@ public class DefaultHttpHeaderMapper implements HeaderMapper<HttpHeaders> {
|
||||
target.setAcceptCharset(acceptableCharsets);
|
||||
}
|
||||
}
|
||||
else if (value instanceof Charset[] || value instanceof String[]) {
|
||||
List<Charset> acceptableCharsets = new ArrayList<Charset>();
|
||||
Object[] values = ObjectUtils.toObjectArray(value);
|
||||
for (Object charset : values) {
|
||||
if (charset instanceof Charset) {
|
||||
acceptableCharsets.add((Charset) charset);
|
||||
}
|
||||
else if (charset instanceof String) {
|
||||
acceptableCharsets.add(Charset.forName((String) charset));
|
||||
}
|
||||
}
|
||||
target.setAcceptCharset(acceptableCharsets);
|
||||
}
|
||||
else if (value instanceof Charset) {
|
||||
target.setAcceptCharset(Collections.singletonList((Charset) value));
|
||||
}
|
||||
else if (value instanceof String) {
|
||||
target.setAcceptCharset(Collections.singletonList(Charset.forName((String) value)));
|
||||
String[] charsets = StringUtils.commaDelimitedListToStringArray((String) value);
|
||||
List<Charset> acceptableCharsets = new ArrayList<Charset>();
|
||||
for (String charset : charsets) {
|
||||
acceptableCharsets.add(Charset.forName(charset.trim()));
|
||||
}
|
||||
target.setAcceptCharset(acceptableCharsets);
|
||||
}
|
||||
else {
|
||||
Class<?> clazz = (value != null) ? value.getClass() : null;
|
||||
@@ -383,6 +401,13 @@ public class DefaultHttpHeaderMapper implements HeaderMapper<HttpHeaders> {
|
||||
if (value instanceof HttpMethod) {
|
||||
target.setAllow(Collections.singleton((HttpMethod) value));
|
||||
}
|
||||
else if (value instanceof HttpMethod[]) {
|
||||
Set<HttpMethod> allowedMethods = new HashSet<HttpMethod>();
|
||||
for (HttpMethod next : (HttpMethod[]) value) {
|
||||
allowedMethods.add(next);
|
||||
}
|
||||
target.setAllow(allowedMethods);
|
||||
}
|
||||
else if (value instanceof String || value instanceof String[]) {
|
||||
String[] values = (value instanceof String[]) ? (String[]) value
|
||||
: StringUtils.commaDelimitedListToStringArray((String) value);
|
||||
@@ -497,6 +522,10 @@ public class DefaultHttpHeaderMapper implements HeaderMapper<HttpHeaders> {
|
||||
if (value instanceof String) {
|
||||
target.setIfNoneMatch((String) value);
|
||||
}
|
||||
else if (value instanceof String[]) {
|
||||
String delmitedString = StringUtils.arrayToCommaDelimitedString((String[]) value);
|
||||
target.setIfNoneMatch(delmitedString);
|
||||
}
|
||||
else if (value instanceof Collection) {
|
||||
Collection<?> values = (Collection<?>) value;
|
||||
if (!CollectionUtils.isEmpty(values)) {
|
||||
|
||||
Reference in New Issue
Block a user