You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2021/04/23 13:25:25 UTC

[juneau] branch master updated: Remove deprecated AddFlag references.

This is an automated email from the ASF dual-hosted git repository.

jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/master by this push:
     new 3c495f6  Remove deprecated AddFlag references.
3c495f6 is described below

commit 3c495f6ee6614721af22de590382c0462c96573b
Author: JamesBognar <ja...@salesforce.com>
AuthorDate: Fri Apr 23 09:25:11 2021 -0400

    Remove deprecated AddFlag references.
---
 .../src/main/java/org/apache/juneau/AddFlag.java   |  61 ----------
 .../main/java/org/apache/juneau/ListOperation.java |   9 +-
 .../org/apache/juneau/rest/client/RestClient.java  |  32 +++---
 .../org/apache/juneau/rest/client/RestRequest.java | 128 ++++++++++-----------
 .../client/RestClient_Config_RestClient_Test.java  |   2 +-
 .../rest/client/RestClient_FormData_Test.java      |   8 +-
 .../rest/client/RestClient_Headers_Test.java       |   8 +-
 .../juneau/rest/client/RestClient_Query_Test.java  |  10 +-
 .../apache/juneau/rest/client/RestClient_Test.java |   2 +-
 9 files changed, 100 insertions(+), 160 deletions(-)

diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/AddFlag.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/AddFlag.java
deleted file mode 100644
index cbc4444..0000000
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/AddFlag.java
+++ /dev/null
@@ -1,61 +0,0 @@
-// ***************************************************************************************************************************
-// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *
-// * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *
-// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance            *
-// * with the License.  You may obtain a copy of the License at                                                              *
-// *                                                                                                                         *
-// *  http://www.apache.org/licenses/LICENSE-2.0                                                                             *
-// *                                                                                                                         *
-// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an  *
-// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the        *
-// * specific language governing permissions and limitations under the License.                                              *
-// ***************************************************************************************************************************
-package org.apache.juneau;
-
-import java.util.*;
-
-/**
- * Identifies how to add elements to a list.
- */
-public enum AddFlag {
-
-	/**
-	 * Any previous value(s) should be overwritten/replaced.
-	 */
-	APPEND,
-
-	/**
-	 * Any previous value(s) should be overwritten/replaced.
-	 */
-	PREPEND,
-
-	/**
-	 * Any previous value(s) should be overwritten/replaced.
-	 */
-	REPLACE,
-
-	/**
-	 * Don't add the value if it's <jk>null</jk> or an empty string.
-	 */
-	SKIP_IF_EMPTY;
-
-	/**
-	 * Default flags.
-	 */
-	public static final EnumSet<AddFlag> DEFAULT_FLAGS = EnumSet.of(APPEND);
-
-	/**
-	 * Default skip-if-empty flags.
-	 */
-	public static final EnumSet<AddFlag> SKIP_IF_EMPTY_FLAGS = EnumSet.of(APPEND, SKIP_IF_EMPTY);
-
-	/**
-	 * Returns {@link #DEFAULT_FLAGS} if the enum set is <jk>null</jk> or empty.
-	 *
-	 * @param s The set to check.
-	 * @return Either the same set or {@link #DEFAULT_FLAGS}.  Never <jk>null</jk>.
-	 */
-	public static EnumSet<AddFlag> orDefault(EnumSet<AddFlag> s) {
-		return s == null || s.isEmpty() ? DEFAULT_FLAGS : s;
-	}
-}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ListOperation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ListOperation.java
index 3ccfebc..aaf0157 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ListOperation.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ListOperation.java
@@ -43,28 +43,29 @@ public enum ListOperation {
 	/**
 	 * Don't add the value if it's <jk>null</jk> or an empty string.
 	 */
-	@Deprecated
 	SKIP_IF_EMPTY;
 
+	public static final boolean NEEDS_CLEANUP = true;
+
 	/**
 	 * Default flags.
+	 * Needs to be removed.
 	 */
-	@Deprecated
 	public static final EnumSet<ListOperation> DEFAULT_FLAGS = EnumSet.of(APPEND);
 
 	/**
 	 * Default skip-if-empty flags.
+	 * Needs to be removed.
 	 */
-	@Deprecated
 	public static final EnumSet<ListOperation> SKIP_IF_EMPTY_FLAGS = EnumSet.of(APPEND, SKIP_IF_EMPTY);
 
 	/**
 	 * Returns {@link #DEFAULT_FLAGS} if the enum set is <jk>null</jk> or empty.
+	 * Needs to be removed.
 	 *
 	 * @param s The set to check.
 	 * @return Either the same set or {@link #DEFAULT_FLAGS}.  Never <jk>null</jk>.
 	 */
-	@Deprecated
 	public static EnumSet<ListOperation> orDefault(EnumSet<ListOperation> s) {
 		return s == null || s.isEmpty() ? DEFAULT_FLAGS : s;
 	}
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
index 5da7738..bb321d0 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
@@ -13,7 +13,7 @@
 package org.apache.juneau.rest.client;
 
 import static org.apache.juneau.internal.StringUtils.*;
-import static org.apache.juneau.AddFlag.*;
+import static org.apache.juneau.ListOperation.*;
 import static org.apache.juneau.httppart.HttpPartType.*;
 import static org.apache.juneau.http.HttpMethod.*;
 import static org.apache.juneau.http.HttpHeaders.*;
@@ -342,11 +342,11 @@ import org.apache.juneau.http.HttpHeaders;
  * 	<ul>
  * 		<li class='jm'>{@link RestRequest#header(String,Object) header(String,Object)}
  * 		<li class='jm'>{@link RestRequest#header(String,Object,HttpPartSchema) header(String,Object,HttpPartSchema)}
- * 		<li class='jm'>{@link RestRequest#header(AddFlag,String,Object) header(AddFlag,String,Object)}
- * 		<li class='jm'>{@link RestRequest#header(AddFlag,String,Object,HttpPartSchema) header(AddFlag,String,Object,HttpPartSchema)}
+ * 		<li class='jm'>{@link RestRequest#header(ListOperation,String,Object) header(ListOperation,String,Object)}
+ * 		<li class='jm'>{@link RestRequest#header(ListOperation,String,Object,HttpPartSchema) header(ListOperation,String,Object,HttpPartSchema)}
  * 		<li class='jm'>{@link RestRequest#header(Header) header(Header)}
  * 		<li class='jm'>{@link RestRequest#headers(Object...) headers(Object...)}
- * 		<li class='jm'>{@link RestRequest#headers(AddFlag,Object...) headers(AddFlag;Object...)}
+ * 		<li class='jm'>{@link RestRequest#headers(ListOperation,Object...) headers(ListOperation;Object...)}
  * 		<li class='jm'>{@link RestRequest#headerPairs(Object...) headers(Object...)}
  * 	</ul>
  * </ul>
@@ -391,7 +391,7 @@ import org.apache.juneau.http.HttpHeaders;
  * </p>
  *
  * <p>
- * The methods with {@link AddFlag} parameters allow you to control whether new headers get appended, prepended, or
+ * The methods with {@link ListOperation} parameters allow you to control whether new headers get appended, prepended, or
  * replace existing headers with the same name.
  *
  * <ul class='notes'>
@@ -416,9 +416,9 @@ import org.apache.juneau.http.HttpHeaders;
  * 	<li class='jc'>{@link RestRequest}
  * 	<ul>
  * 		<li class='jm'>{@link RestRequest#query(String,Object) query(String,Object)}
- * 		<li class='jm'>{@link RestRequest#query(AddFlag,String,Object) query(AddFlag,String,Object)}
+ * 		<li class='jm'>{@link RestRequest#query(ListOperation,String,Object) query(ListOperation,String,Object)}
  * 		<li class='jm'>{@link RestRequest#queries(Object...) queries(Object...)}
- * 		<li class='jm'>{@link RestRequest#queries(AddFlag,Object...) queries(AddFlag,Object...)}
+ * 		<li class='jm'>{@link RestRequest#queries(ListOperation,Object...) queries(ListOperation,Object...)}
  * 		<li class='jm'>{@link RestRequest#queryPairs(Object...) queryPairs(Object...)}
  * 		<li class='jm'>{@link RestRequest#queryCustom(Object) queryCustom(Object)}
  * 	</ul>
@@ -457,9 +457,9 @@ import org.apache.juneau.http.HttpHeaders;
  * 	<li class='jc'>{@link RestRequest}
  * 	<ul>
  * 		<li class='jm'>{@link RestRequest#formData(String,Object) formData(String,Object)}
- * 		<li class='jm'>{@link RestRequest#formData(AddFlag,String,Object) formData(AddFlag,String,Object)}
+ * 		<li class='jm'>{@link RestRequest#formData(ListOperation,String,Object) formData(ListOperation,String,Object)}
  * 		<li class='jm'>{@link RestRequest#formDatas(Object...) formDatas(Object...)}
- * 		<li class='jm'>{@link RestRequest#formDatas(AddFlag,Object...) formDatas(AddFlag,Object...)}
+ * 		<li class='jm'>{@link RestRequest#formDatas(ListOperation,Object...) formDatas(ListOperation,Object...)}
  * 		<li class='jm'>{@link RestRequest#formDataPairs(Object...) formDataPairs(Object...)}
  * 		<li class='jm'>{@link RestRequest#formDataCustom(Object) formDataCustom(Object)}
  * 	</ul>
@@ -1281,9 +1281,9 @@ public class RestClient extends BeanContext implements HttpClient, Closeable, Re
 	 * 			<li class='jc'>{@link org.apache.juneau.rest.client.RestRequest}
 	 * 			<ul>
 	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#formData(String,Object) formData(String,Object)}
-	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#formData(AddFlag,String,Object) formData(EnumSet&lt;AddFlag&gt;,String,Object)}
+	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#formData(ListOperation,String,Object) formData(EnumSet&lt;ListOperation&gt;,String,Object)}
 	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#formDatas(Object...) formDatas(Object...)}
-	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#formDatas(AddFlag,Object...) formDatas(EnumSet&lt;AddFlag&gt;Object...)}
+	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#formDatas(ListOperation,Object...) formDatas(EnumSet&lt;ListOperation&gt;Object...)}
 	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#formDataPairs(Object...) formDataPairs(Object...)}
 	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#formDataCustom(Object) formDataCustom(Object)}
 	 * 			</ul>
@@ -1349,10 +1349,10 @@ public class RestClient extends BeanContext implements HttpClient, Closeable, Re
 	 * 			<li class='jc'>{@link org.apache.juneau.rest.client.RestRequest}
 	 * 			<ul>
 	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#header(String,Object) header(String,Object)}
-	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#header(AddFlag,String,Object) header(EnumSet&gt;AddFlag&gt;,String,Object)}
+	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#header(ListOperation,String,Object) header(EnumSet&gt;ListOperation&gt;,String,Object)}
 	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#header(Header) header(Header)}
 	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#headers(Object...) headers(Object...)}
-	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#headers(AddFlag,Object...) headers(EnumSet&gt;AddFlag&gt;,Object...)}
+	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#headers(ListOperation,Object...) headers(EnumSet&gt;ListOperation&gt;,Object...)}
 	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#headerPairs(Object...) headerPairs(Object...)}
 	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#accept(Object) accept(Object)}
 	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#acceptCharset(Object) acceptCharset(Object)}
@@ -1870,9 +1870,9 @@ public class RestClient extends BeanContext implements HttpClient, Closeable, Re
 	 * 			<li class='jc'>{@link org.apache.juneau.rest.client.RestRequest}
 	 * 			<ul>
 	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#query(String,Object) query(String,Object)}
-	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#query(AddFlag,String,Object) query(EnumSet&lt;AddFlag&gt;,String,Object)}
+	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#query(ListOperation,String,Object) query(EnumSet&lt;ListOperation&gt;,String,Object)}
 	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#queries(Object...) queries(Object...)}
-	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#queries(AddFlag,Object...) queries(EnumSet&lt;AddFlag&gt;,Object...)}
+	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#queries(ListOperation,Object...) queries(EnumSet&lt;ListOperation&gt;,Object...)}
 	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#queryPairs(Object...) queryPairs(Object...)}
 	 * 				<li class='jm'>{@link org.apache.juneau.rest.client.RestRequest#queryCustom(Object) queryCustom(Object)}
 	 * 			</ul>
@@ -3109,7 +3109,7 @@ public class RestClient extends BeanContext implements HttpClient, Closeable, Re
 									HttpPartSerializerSession ps = p.getSerializer(s);
 									String pn = p.getPartName();
 									HttpPartSchema schema = p.getSchema();
-									EnumSet<AddFlag> flags = schema.isSkipIfEmpty() ? SKIP_IF_EMPTY_FLAGS : DEFAULT_FLAGS;
+									EnumSet<ListOperation> flags = schema.isSkipIfEmpty() ? SKIP_IF_EMPTY_FLAGS : DEFAULT_FLAGS;
 									if (pt == PATH)
 										rc.pathArg(pn, val, schema, p.getSerializer(s));
 									else if (val != null) {
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
index afdfcce..c4ea02e 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
@@ -15,7 +15,7 @@ package org.apache.juneau.rest.client;
 import static org.apache.juneau.internal.StringUtils.*;
 import static org.apache.juneau.internal.ClassUtils.*;
 import static org.apache.juneau.internal.ExceptionUtils.*;
-import static org.apache.juneau.AddFlag.*;
+import static org.apache.juneau.ListOperation.*;
 import static org.apache.juneau.httppart.HttpPartType.*;
 import static org.apache.juneau.http.HttpEntities.*;
 import static org.apache.juneau.internal.IOUtils.*;
@@ -1112,9 +1112,9 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @param flag How to add this parameter.
 	 * 	<ul>
-	 * 		<li>{@link AddFlag#APPEND APPEND} (default) - Append to end.
-	 * 		<li>{@link AddFlag#PREPEND PREPEND} - Prepend to beginning.
-	 * 		<li>{@link AddFlag#REPLACE REPLACE} - Delete any existing with same name and append to end.
+	 * 		<li>{@link ListOperation#APPEND APPEND} (default) - Append to end.
+	 * 		<li>{@link ListOperation#PREPEND PREPEND} - Prepend to beginning.
+	 * 		<li>{@link ListOperation#SET SET} - Delete any existing with same name and append to end.
 	 * 	</ul>
 	 * @param name The parameter name.
 	 * @param value The parameter value.
@@ -1130,7 +1130,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @return This object (for method chaining).
 	 * @throws RestCallException Invalid input.
 	 */
-	public RestRequest query(AddFlag flag, String name, Object value, HttpPartSchema schema) throws RestCallException {
+	public RestRequest query(ListOperation flag, String name, Object value, HttpPartSchema schema) throws RestCallException {
 		return queries(flag, serializedPart(name, value, QUERY, partSerializer, schema, EnumSet.of(flag)));
 	}
 
@@ -1227,9 +1227,9 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @param flag How to add this parameter.
 	 * 	<ul>
-	 * 		<li>{@link AddFlag#APPEND APPEND} (default) - Append to end.
-	 * 		<li>{@link AddFlag#PREPEND PREPEND} - Prepend to beginning.
-	 * 		<li>{@link AddFlag#REPLACE REPLACE} - Delete any existing with same name and append to end.
+	 * 		<li>{@link ListOperation#APPEND APPEND} (default) - Append to end.
+	 * 		<li>{@link ListOperation#PREPEND PREPEND} - Prepend to beginning.
+	 * 		<li>{@link ListOperation#SET SET} - Delete any existing with same name and append to end.
 	 * 	</ul>
 	 * @param name The parameter name.
 	 * @param value The parameter value.
@@ -1239,7 +1239,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * 	</ul>
 	 * @return This object (for method chaining).
 	 */
-	public RestRequest query(AddFlag flag, String name, Object value) {
+	public RestRequest query(ListOperation flag, String name, Object value) {
 		return queries(flag, serializedPart(name, value, QUERY, partSerializer, null, EnumSet.of(flag)));
 	}
 
@@ -1297,9 +1297,9 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @param flag How to add this parameter.
 	 * 	<ul>
-	 * 		<li>{@link AddFlag#APPEND APPEND} (default) - Append to end.
-	 * 		<li>{@link AddFlag#PREPEND PREPEND} - Prepend to beginning.
-	 * 		<li>{@link AddFlag#REPLACE REPLACE} - Delete any existing with same name and append to end.
+	 * 		<li>{@link ListOperation#APPEND APPEND} (default) - Append to end.
+	 * 		<li>{@link ListOperation#PREPEND PREPEND} - Prepend to beginning.
+	 * 		<li>{@link ListOperation#SET SET} - Delete any existing with same name and append to end.
 	 * 	</ul>
 	 * @param params
 	 * 	The parameters to set.
@@ -1318,7 +1318,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * </ul>
 	 * @return This object (for method chaining).
 	 */
-	public RestRequest queries(AddFlag flag, Object...params) {
+	public RestRequest queries(ListOperation flag, Object...params) {
 		List<NameValuePair> l = new ArrayList<>();
 		for (Object o : params) {
 			if (BasicPart.canCast(o)) {
@@ -1415,8 +1415,8 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 		return this;
 	}
 
-	RestRequest queryArg(EnumSet<AddFlag> flags, String name, Object value, HttpPartSchema schema, HttpPartSerializerSession serializer) throws RestCallException {
-		flags = AddFlag.orDefault(flags);
+	RestRequest queryArg(EnumSet<ListOperation> flags, String name, Object value, HttpPartSchema schema, HttpPartSerializerSession serializer) throws RestCallException {
+		flags = ListOperation.orDefault(flags);
 		boolean isMulti = isEmpty(name) || "*".equals(name) || value instanceof PartList || isNameValuePairArray(value);
 
 		if (! isMulti)
@@ -1447,12 +1447,12 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 		return innerQuery(flags, l);
 	}
 
-	private RestRequest innerQuery(EnumSet<AddFlag> flags, List<NameValuePair> params) {
-		flags = AddFlag.orDefault(flags);
+	private RestRequest innerQuery(EnumSet<ListOperation> flags, List<NameValuePair> params) {
+		flags = ListOperation.orDefault(flags);
 		params.removeIf(x -> x.getValue() == null);
 		if (flags.contains(SKIP_IF_EMPTY))
 			params.removeIf(x -> isEmpty(x.getValue()));
-		if (flags.contains(REPLACE)) {
+		if (flags.contains(SET)) {
 			List<NameValuePair> l = uriBuilder.getQueryParams();
 			for (NameValuePair p : params)
 				for (Iterator<NameValuePair> i = l.iterator(); i.hasNext();)
@@ -1491,9 +1491,9 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @param flag How to add this parameter.
 	 * 	<ul>
-	 * 		<li>{@link AddFlag#APPEND APPEND} (default) - Append to end.
-	 * 		<li>{@link AddFlag#PREPEND PREPEND} - Prepend to beginning.
-	 * 		<li>{@link AddFlag#REPLACE REPLACE} - Delete any existing with same name and append to end.
+	 * 		<li>{@link ListOperation#APPEND APPEND} (default) - Append to end.
+	 * 		<li>{@link ListOperation#PREPEND PREPEND} - Prepend to beginning.
+	 * 		<li>{@link ListOperation#SET SET} - Delete any existing with same name and append to end.
 	 * 	</ul>
 	 * @param name The parameter name.
 	 * @param value The parameter value.
@@ -1509,7 +1509,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @return This object (for method chaining).
 	 * @throws RestCallException Invalid input.
 	 */
-	public RestRequest formData(AddFlag flag, String name, Object value, HttpPartSchema schema) throws RestCallException {
+	public RestRequest formData(ListOperation flag, String name, Object value, HttpPartSchema schema) throws RestCallException {
 		return formDatas(flag, serializedPart(name, value, FORMDATA, partSerializer, schema, EnumSet.of(flag)));
 	}
 
@@ -1607,9 +1607,9 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @param flag How to add this parameter.
 	 * 	<ul>
-	 * 		<li>{@link AddFlag#APPEND APPEND} (default) - Append to end.
-	 * 		<li>{@link AddFlag#PREPEND PREPEND} - Prepend to beginning.
-	 * 		<li>{@link AddFlag#REPLACE REPLACE} - Delete any existing with same name and append to end.
+	 * 		<li>{@link ListOperation#APPEND APPEND} (default) - Append to end.
+	 * 		<li>{@link ListOperation#PREPEND PREPEND} - Prepend to beginning.
+	 * 		<li>{@link ListOperation#SET SET} - Delete any existing with same name and append to end.
 	 * 	</ul>
 	 * @param name The parameter name.
 	 * @param value The parameter value.
@@ -1619,7 +1619,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * 	</ul>
 	 * @return This object (for method chaining).
 	 */
-	public RestRequest formData(AddFlag flag, String name, Object value) {
+	public RestRequest formData(ListOperation flag, String name, Object value) {
 		return formDatas(flag, serializedPart(name, value, FORMDATA, partSerializer, null, EnumSet.of(flag)));
 	}
 
@@ -1678,9 +1678,9 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @param flag How to add this parameter.
 	 * 	<ul>
-	 * 		<li>{@link AddFlag#APPEND APPEND} (default) - Append to end.
-	 * 		<li>{@link AddFlag#PREPEND PREPEND} - Prepend to beginning.
-	 * 		<li>{@link AddFlag#REPLACE REPLACE} - Delete any existing with same name and append to end.
+	 * 		<li>{@link ListOperation#APPEND APPEND} (default) - Append to end.
+	 * 		<li>{@link ListOperation#PREPEND PREPEND} - Prepend to beginning.
+	 * 		<li>{@link ListOperation#SET SET} - Delete any existing with same name and append to end.
 	 * 	</ul>
 	 * @param params
 	 * 	The parameters to set.
@@ -1700,7 +1700,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * </ul>
 	 * @return This object (for method chaining).
 	 */
-	public RestRequest formDatas(AddFlag flag, Object...params) {
+	public RestRequest formDatas(ListOperation flag, Object...params) {
 		List<NameValuePair> l = new ArrayList<>();
 		for (Object o : params) {
 			if (BasicPart.canCast(o)) {
@@ -1806,8 +1806,8 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 		return this;
 	}
 
-	RestRequest formDataArg(EnumSet<AddFlag> flags, String name, Object value, HttpPartSchema schema, HttpPartSerializerSession serializer) throws RestCallException {
-		flags = AddFlag.orDefault(flags);
+	RestRequest formDataArg(EnumSet<ListOperation> flags, String name, Object value, HttpPartSchema schema, HttpPartSerializerSession serializer) throws RestCallException {
+		flags = ListOperation.orDefault(flags);
 		boolean isMulti = isEmpty(name) || "*".equals(name) || value instanceof PartList || isNameValuePairArray(value);
 
 		if (! isMulti)
@@ -1838,15 +1838,15 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 		return innerFormData(flags, l);
 	}
 
-	private RestRequest innerFormData(EnumSet<AddFlag> flags, List<NameValuePair> params) {
+	private RestRequest innerFormData(EnumSet<ListOperation> flags, List<NameValuePair> params) {
 		input = null;
-		flags = AddFlag.orDefault(flags);
+		flags = ListOperation.orDefault(flags);
 		params.removeIf(x -> x.getValue() == null);
 		if (flags.contains(SKIP_IF_EMPTY))
 			params.removeIf(x -> isEmpty(x.getValue()));
 		if (formData == null)
 			formData = new ArrayList<>();
-		if (flags.contains(REPLACE)) {
+		if (flags.contains(SET)) {
 			for (NameValuePair p : params)
 				for (Iterator<NameValuePair> i = formData.iterator(); i.hasNext();)
 					if (i.next().getName().equals(p.getName()))
@@ -1995,9 +1995,9 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @param flag How to add this parameter.
 	 * 	<ul>
-	 * 		<li>{@link AddFlag#APPEND APPEND} (default) - Append to end.
-	 * 		<li>{@link AddFlag#PREPEND PREPEND} - Prepend to beginning.
-	 * 		<li>{@link AddFlag#REPLACE REPLACE} - Delete any existing with same name and append to end.
+	 * 		<li>{@link ListOperation#APPEND APPEND} (default) - Append to end.
+	 * 		<li>{@link ListOperation#PREPEND PREPEND} - Prepend to beginning.
+	 * 		<li>{@link ListOperation#SET SET} - Delete any existing with same name and append to end.
 	 * 	</ul>
 	 * @param name The header name.
 	 * @param value The header value.
@@ -2012,7 +2012,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * 	</ul>
 	 * @return This object (for method chaining).
 	 */
-	public RestRequest header(AddFlag flag, String name, Object value, HttpPartSchema schema) {
+	public RestRequest header(ListOperation flag, String name, Object value, HttpPartSchema schema) {
 		return headers(flag, serializedHeader(name, value, partSerializer, schema, EnumSet.of(flag)));
 	}
 
@@ -2094,9 +2094,9 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @param flag How to add this parameter.
 	 * 	<ul>
-	 * 		<li>{@link AddFlag#APPEND APPEND} (default) - Append to end.
-	 * 		<li>{@link AddFlag#PREPEND PREPEND} - Prepend to beginning.
-	 *	 	<li>{@link AddFlag#REPLACE REPLACE} - Delete any existing with same name and append to end.
+	 * 		<li>{@link ListOperation#APPEND APPEND} (default) - Append to end.
+	 * 		<li>{@link ListOperation#PREPEND PREPEND} - Prepend to beginning.
+	 *	 	<li>{@link ListOperation#SET SET} - Delete any existing with same name and append to end.
 	 * 	</ul>
 	 * @param name The header name.
 	 * @param value The header value.
@@ -2106,7 +2106,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * 	</ul>
 	 * @return This object (for method chaining).
 	 */
-	public RestRequest header(AddFlag flag, String name, Object value) {
+	public RestRequest header(ListOperation flag, String name, Object value) {
 		return headers(flag, serializedHeader(name, value, partSerializer, null, EnumSet.of(flag)));
 	}
 
@@ -2146,14 +2146,14 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @param flag How to add this parameter.
 	 * 	<ul>
-	 * 		<li>{@link AddFlag#APPEND APPEND} (default) - Append to end.
-	 * 		<li>{@link AddFlag#PREPEND PREPEND} - Prepend to beginning.
-	 * 		<li>{@link AddFlag#REPLACE REPLACE} - Delete any existing with same name and append to end.
+	 * 		<li>{@link ListOperation#APPEND APPEND} (default) - Append to end.
+	 * 		<li>{@link ListOperation#PREPEND PREPEND} - Prepend to beginning.
+	 * 		<li>{@link ListOperation#SET SET} - Delete any existing with same name and append to end.
 	 * 	</ul>
 	 * @param header The header to set.
 	 * @return This object (for method chaining).
 	 */
-	public RestRequest header(AddFlag flag, Header header) {
+	public RestRequest header(ListOperation flag, Header header) {
 		return headers(flag, header);
 	}
 
@@ -2193,7 +2193,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @return This object (for method chaining).
 	 */
 	public RestRequest headers(Object...headers) {
-		return headers(REPLACE, headers);
+		return headers(SET, headers);
 	}
 
 	/**
@@ -2214,9 +2214,9 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @param flag How to add this parameter.
 	 * 	<ul>
-	 * 		<li>{@link AddFlag#APPEND APPEND} (default) - Append to end.
-	 * 		<li>{@link AddFlag#PREPEND PREPEND} - Prepend to beginning.
-	 * 		<li>{@link AddFlag#REPLACE REPLACE} - Delete any existing with same name and append to end.
+	 * 		<li>{@link ListOperation#APPEND APPEND} (default) - Append to end.
+	 * 		<li>{@link ListOperation#PREPEND PREPEND} - Prepend to beginning.
+	 * 		<li>{@link ListOperation#SET SET} - Delete any existing with same name and append to end.
 	 * 	</ul>
 	 * @param headers
 	 * 	The headers to set.
@@ -2235,7 +2235,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * </ul>
 	 * @return This object (for method chaining).
 	 */
-	public RestRequest headers(AddFlag flag, Object...headers) {
+	public RestRequest headers(ListOperation flag, Object...headers) {
 		List<Header> l = new ArrayList<>();
 		for (Object o : headers) {
 			if (HttpHeaders.canCast(o)) {
@@ -2284,7 +2284,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * @return This object (for method chaining).
 	 */
 	public RestRequest headerPairs(Object...pairs) {
-		return headerPairs(REPLACE, pairs);
+		return headerPairs(SET, pairs);
 	}
 
 	/**
@@ -2301,9 +2301,9 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 *
 	 * @param flag How to add this parameter.
 	 * 	<ul>
-	 * 		<li>{@link AddFlag#APPEND APPEND} (default) - Append to end.
-	 * 		<li>{@link AddFlag#PREPEND PREPEND} - Prepend to beginning.
-	 * 		<li>{@link AddFlag#REPLACE REPLACE} - Delete any existing with same name and append to end.
+	 * 		<li>{@link ListOperation#APPEND APPEND} (default) - Append to end.
+	 * 		<li>{@link ListOperation#PREPEND PREPEND} - Prepend to beginning.
+	 * 		<li>{@link ListOperation#SET SET} - Delete any existing with same name and append to end.
 	 * 	</ul>
 	 * @param pairs The form-data key/value pairs.
 	 * 	<ul>
@@ -2312,7 +2312,7 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 	 * 	</ul>
 	 * @return This object (for method chaining).
 	 */
-	public RestRequest headerPairs(AddFlag flag, Object...pairs) {
+	public RestRequest headerPairs(ListOperation flag, Object...pairs) {
 		List<Header> l = new ArrayList<>();
 		if (pairs.length % 2 != 0)
 			throw runtimeException("Odd number of parameters passed into headerPairs()");
@@ -2321,8 +2321,8 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 		return innerHeaders(EnumSet.of(flag), l);
 	}
 
-	RestRequest headerArg(EnumSet<AddFlag> flags, String name, Object value, HttpPartSchema schema, HttpPartSerializerSession serializer) throws RestCallException {
-		flags = AddFlag.orDefault(flags);
+	RestRequest headerArg(EnumSet<ListOperation> flags, String name, Object value, HttpPartSchema schema, HttpPartSerializerSession serializer) throws RestCallException {
+		flags = ListOperation.orDefault(flags);
 		boolean isMulti = isEmpty(name) || "*".equals(name) || value instanceof HeaderList || isHeaderArray(value);
 
 		if (! isMulti)
@@ -2353,12 +2353,12 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 		return innerHeaders(flags, l);
 	}
 
-	private RestRequest innerHeaders(EnumSet<AddFlag> flags, Collection<Header> headers) {
-		flags = AddFlag.orDefault(flags);
+	private RestRequest innerHeaders(EnumSet<ListOperation> flags, Collection<Header> headers) {
+		flags = ListOperation.orDefault(flags);
 		headers.removeIf(x -> x.getValue() == null);
 		if (flags.contains(SKIP_IF_EMPTY))
 			headers.removeIf(x -> isEmpty(x.getValue()));
-		if (flags.contains(REPLACE)) {
+		if (flags.contains(SET)) {
 			for (Header h : headers)
 				removeHeaders(h.getName());
 		} else if (flags.contains(PREPEND)) {
@@ -3523,11 +3523,11 @@ public class RestRequest extends BeanSession implements HttpUriRequest, Configur
 		return (Map<Object,Object>)o;
 	}
 
-	private static SerializedPart serializedPart(Object key, Object value, HttpPartType type, HttpPartSerializerSession serializer, HttpPartSchema schema, EnumSet<AddFlag> flags) {
+	private static SerializedPart serializedPart(Object key, Object value, HttpPartType type, HttpPartSerializerSession serializer, HttpPartSchema schema, EnumSet<ListOperation> flags) {
 		return key == null ? null : new SerializedPart(stringify(key), value, type, serializer, schema, flags == null ? false : flags.contains(SKIP_IF_EMPTY));
 	}
 
-	private static SerializedHeader serializedHeader(Object key, Object value, HttpPartSerializerSession serializer, HttpPartSchema schema, EnumSet<AddFlag> flags) {
+	private static SerializedHeader serializedHeader(Object key, Object value, HttpPartSerializerSession serializer, HttpPartSchema schema, EnumSet<ListOperation> flags) {
 		return key == null ? null : new SerializedHeader(stringify(key), value, serializer, schema, flags == null ? false : flags.contains(SKIP_IF_EMPTY));
 	}
 
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_RestClient_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_RestClient_Test.java
index a1bf0d5..cb6316b 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_RestClient_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_RestClient_Test.java
@@ -17,7 +17,7 @@ import static org.apache.juneau.http.HttpResponses.*;
 import static org.apache.juneau.rest.client.RestClient.*;
 import static org.junit.Assert.*;
 import static org.junit.runners.MethodSorters.*;
-import static org.apache.juneau.AddFlag.*;
+import static org.apache.juneau.ListOperation.*;
 
 import java.io.*;
 import java.util.concurrent.*;
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_FormData_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_FormData_Test.java
index 0884200..2a7d8dd 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_FormData_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_FormData_Test.java
@@ -15,7 +15,7 @@ package org.apache.juneau.rest.client;
 import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.httppart.HttpPartSchema.*;
 import static org.junit.runners.MethodSorters.*;
-import static org.apache.juneau.AddFlag.*;
+import static org.apache.juneau.ListOperation.*;
 import static org.apache.juneau.http.HttpParts.*;
 
 import java.io.*;
@@ -63,8 +63,8 @@ public class RestClient_FormData_Test {
 	public void a02_formData_AddFlag_String_Object() throws Exception {
 		client().formData(part("foo","bar")).build().post("/formData").formData(APPEND,"foo","baz").run().assertBody().is("foo=bar&foo=baz");
 		client().formData(part("foo","bar")).build().post("/formData").formData(PREPEND,"foo","baz").run().assertBody().is("foo=baz&foo=bar");
-		client().formData(part("foo","bar")).build().post("/formData").formData(REPLACE,"foo","baz").run().assertBody().is("foo=baz");
-		client().formData(part("foo","bar")).build().post("/formData").formData(REPLACE,"bar","baz").run().assertBody().is("foo=bar&bar=baz");
+		client().formData(part("foo","bar")).build().post("/formData").formData(SET,"foo","baz").run().assertBody().is("foo=baz");
+		client().formData(part("foo","bar")).build().post("/formData").formData(SET,"bar","baz").run().assertBody().is("foo=bar&bar=baz");
 	}
 
 	@Test
@@ -140,7 +140,7 @@ public class RestClient_FormData_Test {
 		List<String> l = AList.of("qux","quux");
 		client().formData("foo","bar").build().post("/formData").formData(APPEND,"foo",l,T_ARRAY_PIPES).run().assertBody().asString().urlDecode().is("foo=bar&foo=qux|quux");
 		client().formData("foo","bar").build().post("/formData").formData(PREPEND,"foo",l,T_ARRAY_PIPES).run().assertBody().asString().urlDecode().is("foo=qux|quux&foo=bar");
-		client().formData("foo","bar").build().post("/formData").formData(REPLACE,"foo",l,T_ARRAY_PIPES).run().assertBody().asString().urlDecode().is("foo=qux|quux");
+		client().formData("foo","bar").build().post("/formData").formData(SET,"foo",l,T_ARRAY_PIPES).run().assertBody().asString().urlDecode().is("foo=qux|quux");
 	}
 
 	@Test
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Headers_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Headers_Test.java
index cc6d5c1..23496d6 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Headers_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Headers_Test.java
@@ -18,7 +18,7 @@ import static org.apache.juneau.httppart.HttpPartSchema.*;
 import static org.junit.runners.MethodSorters.*;
 import static java.time.format.DateTimeFormatter.*;
 import static java.time.temporal.ChronoUnit.*;
-import static org.apache.juneau.AddFlag.*;
+import static org.apache.juneau.ListOperation.*;
 import static org.apache.juneau.http.HttpParts.*;
 
 import java.time.*;
@@ -128,7 +128,7 @@ public class RestClient_Headers_Test {
 	@Test
 	public void a07_header_AddFlag_String_Object() throws Exception {
 		checkFooClient().header("Foo","bar").build().get("/headers").header(APPEND,"Foo","baz").run().assertBody().is("['bar','baz']");
-		checkFooClient().header("Foo","bar").build().get("/headers").header(REPLACE,"Foo","baz").run().assertBody().is("['baz']");
+		checkFooClient().header("Foo","bar").build().get("/headers").header(SET,"Foo","baz").run().assertBody().is("['baz']");
 		checkFooClient().header("Foo","bar").build().get("/headers").header(PREPEND,"Foo","baz").run().assertBody().is("['baz','bar']");
 	}
 
@@ -136,14 +136,14 @@ public class RestClient_Headers_Test {
 	public void a07_header_AddFlag_String_Object_Schema() throws Exception {
 		List<String> l = AList.of("baz","qux");
 		checkFooClient().header("Foo","bar").build().get("/headers").header(APPEND,"Foo",l,T_ARRAY_PIPES).run().assertBody().is("['bar','baz|qux']");
-		checkFooClient().header("Foo","bar").build().get("/headers").header(REPLACE,"Foo",l,T_ARRAY_PIPES).run().assertBody().is("['baz|qux']");
+		checkFooClient().header("Foo","bar").build().get("/headers").header(SET,"Foo",l,T_ARRAY_PIPES).run().assertBody().is("['baz|qux']");
 		checkFooClient().header("Foo","bar").build().get("/headers").header(PREPEND,"Foo",l,T_ARRAY_PIPES).run().assertBody().is("['baz|qux','bar']");
 	}
 
 	@Test
 	public void a07_headers_AddFlag_Objects() throws Exception {
 		checkFooClient().header("Foo","bar").build().get("/headers").headers(APPEND,header("Foo","baz")).run().assertBody().is("['bar','baz']");
-		checkFooClient().header("Foo","bar").build().get("/headers").headers(REPLACE,header("Foo","baz")).run().assertBody().is("['baz']");
+		checkFooClient().header("Foo","bar").build().get("/headers").headers(SET,header("Foo","baz")).run().assertBody().is("['baz']");
 		checkFooClient().header("Foo","bar").build().get("/headers").headers(PREPEND,header("Foo","baz")).run().assertBody().is("['baz','bar']");
 	}
 
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Query_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Query_Test.java
index f513f8d..b0d590e 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Query_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Query_Test.java
@@ -15,7 +15,7 @@ package org.apache.juneau.rest.client;
 import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.httppart.HttpPartSchema.*;
 import static org.junit.runners.MethodSorters.*;
-import static org.apache.juneau.AddFlag.*;
+import static org.apache.juneau.ListOperation.*;
 import static org.apache.juneau.http.HttpParts.*;
 
 import java.io.*;
@@ -73,10 +73,10 @@ public class RestClient_Query_Test {
 		client().query("foo","bar").build().get("/query").query(PREPEND,"foo","baz").run().assertBody().is("foo=baz&foo=bar");
 		client().query("foo","bar").build().get("/query").query(PREPEND,"foo","").run().assertBody().is("foo=&foo=bar");
 		client().query("foo","bar").build().get("/query").query(PREPEND,"foo",null).run().assertBody().is("foo=bar");
-		client().query("foo","bar").build().get("/query").query(REPLACE,"foo","baz").run().assertBody().is("foo=baz");
-		client().query("foo","bar").build().get("/query").query(REPLACE,"foo",null).run().assertBody().is("foo=bar");
-		client().query("foo","bar").build().get("/query").query(REPLACE,"foo","").run().assertBody().is("foo=");
-		client().query("bar","baz").build().get("/query").query(REPLACE,"foo","bar").run().assertBody().is("bar=baz&foo=bar");
+		client().query("foo","bar").build().get("/query").query(SET,"foo","baz").run().assertBody().is("foo=baz");
+		client().query("foo","bar").build().get("/query").query(SET,"foo",null).run().assertBody().is("foo=bar");
+		client().query("foo","bar").build().get("/query").query(SET,"foo","").run().assertBody().is("foo=");
+		client().query("bar","baz").build().get("/query").query(SET,"foo","bar").run().assertBody().is("bar=baz&foo=bar");
 	}
 
 	@Test
diff --git a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Test.java b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Test.java
index 318b76a..47fa671 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Test.java
@@ -18,7 +18,7 @@ import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.http.HttpHeaders.*;
 import static org.apache.juneau.http.HttpResponses.*;
 import static org.apache.juneau.rest.client.RestClient.*;
-import static org.apache.juneau.AddFlag.*;
+import static org.apache.juneau.ListOperation.*;
 
 import java.io.*;
 import java.util.concurrent.*;