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 2022/08/20 17:11:19 UTC

[juneau] branch master updated: Rest server code cleanup.

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 410dfebf2 Rest server code cleanup.
410dfebf2 is described below

commit 410dfebf2e003bcfc1257e0e647af58197568bee
Author: JamesBognar <ja...@salesforce.com>
AuthorDate: Sat Aug 20 13:10:15 2022 -0400

    Rest server code cleanup.
---
 .../juneau/rest/httppart/RequestFormParam.java     | 82 +++++++++++++++++++---
 .../apache/juneau/rest/httppart/RequestHeader.java | 26 +------
 .../juneau/rest/httppart/RequestHttpPart.java      | 37 +++++++---
 .../juneau/rest/httppart/RequestPathParam.java     | 25 +------
 .../juneau/rest/httppart/RequestQueryParam.java    | 30 +-------
 5 files changed, 101 insertions(+), 99 deletions(-)

diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestFormParam.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestFormParam.java
index 3cc75338f..47bd93cc6 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestFormParam.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestFormParam.java
@@ -17,6 +17,7 @@ import static org.apache.juneau.internal.ThrowableUtils.*;
 
 import java.io.*;
 import java.lang.reflect.*;
+import java.util.*;
 import java.util.regex.*;
 
 import org.apache.http.*;
@@ -93,7 +94,6 @@ import org.apache.juneau.rest.*;
 public class RequestFormParam extends RequestHttpPart implements NameValuePair {
 
 	private final javax.servlet.http.Part part;
-	private String value;
 
 	/**
 	 * Constructor.
@@ -102,7 +102,7 @@ public class RequestFormParam extends RequestHttpPart implements NameValuePair {
 	 * @param part The HTTP part.
 	 */
 	public RequestFormParam(RestRequest request, javax.servlet.http.Part part) {
-		super(FORMDATA, request, part.getName());
+		super(FORMDATA, request, part.getName(), null);
 		this.part = part;
 	}
 
@@ -114,8 +114,7 @@ public class RequestFormParam extends RequestHttpPart implements NameValuePair {
 	 * @param value The parameter value.
 	 */
 	public RequestFormParam(RestRequest request, String name, String value) {
-		super(FORMDATA, request, name);
-		this.value = value;
+		super(FORMDATA, request, name, value);
 		this.part = null;
 	}
 
@@ -134,17 +133,78 @@ public class RequestFormParam extends RequestHttpPart implements NameValuePair {
 		return value;
 	}
 
+	/**
+	 * Returns this part value as an input stream.
+	 *
+	 * @return This part value as an input stream.
+	 * @throws IOException If an error occurs in retrieving the content.
+	 */
+	public InputStream getStream() throws IOException {
+		if (value != null)
+			return new ByteArrayInputStream(value.getBytes(IOUtils.UTF8));
+		return part.getInputStream();
+	}
 
 	/**
-	 * Sets a default value for this part.
+	 * Returns the content type of this part.
 	 *
-	 * @param def The default value.
-	 * @return This object.
+	 * @return The content type of this part, or <jk>null</jk> if not known.
 	 */
-	public RequestFormParam def(String def) {
-		if (getValue() == null)
-			value = def;
-		return this;
+	public String getContentType() {
+		return (part == null ? null : part.getContentType());
+	}
+
+	/**
+	 * Returns the value of the specified mime header as a String.
+	 *
+	 * <p>
+	 * If the Part did not include a header of the specified name, this method returns null.
+	 * If there are multiple headers with the same name, this method returns the first header in the part.
+	 * The header name is case insensitive.
+	 * You can use this method with any request header.
+	 *
+	 * @param name The header name.
+	 * @return The value of the specified mime header as a String.
+	 */
+	public String getHeader(String name) {
+		return part.getHeader(name);
+	}
+
+	/**
+	 * Returns the header names of this param.
+	 *
+	 * @return The header names of this param.
+	 */
+	public Collection<String> getHeaderNames() {
+		return part.getHeaderNames();
+	}
+
+	/**
+	 * Returns the values of the param header with the given name.
+	 *
+	 * @param name The param name.
+	 * @return The values of the param header with the given name.
+	 */
+	public Collection<String> getHeaders(String name) {
+		return part.getHeaders(name);
+	}
+
+	/**
+	 * Returns the size of this file.
+	 *
+	 * @return A long specifying the size of this part, in bytes.
+	 */
+	public long getSize() {
+		return part.getSize();
+	}
+
+	/**
+	 * Returns the file name specified by the client.
+	 *
+	 * @return The file name specified by the client.
+	 */
+	public String getSubmittedFileName() {
+		return part.getSubmittedFileName();
 	}
 
 	// <FluentSetters>
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestHeader.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestHeader.java
index 0547a3f9a..0d08b535a 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestHeader.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestHeader.java
@@ -94,8 +94,6 @@ import org.apache.juneau.rest.*;
  */
 public class RequestHeader extends RequestHttpPart implements Header {
 
-	private String value;
-
 	/**
 	 * Constructor.
 	 *
@@ -104,29 +102,7 @@ public class RequestHeader extends RequestHttpPart implements Header {
 	 * @param value The header value.
 	 */
 	public RequestHeader(RestRequest request, String name, String value) {
-		super(HEADER, request, name);
-		this.value = value;
-	}
-
-	/**
-	 * Sets a default value for this part.
-	 *
-	 * @param def The default value.
-	 * @return This object.
-	 */
-	public RequestHeader def(String def) {
-		if (value == null)
-			value = def;
-		return this;
-	}
-
-	//------------------------------------------------------------------------------------------------------------------
-	// Retrievers
-	//------------------------------------------------------------------------------------------------------------------
-
-	@Override /* RequestHttpPart */
-	public String getValue() {
-		return value;
+		super(HEADER, request, name, value);
 	}
 
 	/**
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestHttpPart.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestHttpPart.java
index 19dea2af8..40eb995c1 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestHttpPart.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestHttpPart.java
@@ -50,25 +50,28 @@ import org.apache.juneau.rest.*;
  * </ul>
  */
 @FluentSetters
-public abstract class RequestHttpPart {
+public class RequestHttpPart {
 
 	private final HttpPartType partType;
 	private final String name;
 	private final RestRequest request;
 	private HttpPartParserSession parser;
 	private HttpPartSchema schema;
+	String value;
 
 	/**
 	 * Constructor.
 	 *
 	 * @param partType The HTTP part type.
 	 * @param request The request object.
-	 * @param name The header name.
+	 * @param name The part name.
+	 * @param value The part value.
 	 */
-	public RequestHttpPart(HttpPartType partType, RestRequest request, String name) {
+	public RequestHttpPart(HttpPartType partType, RestRequest request, String name, String value) {
 		this.partType = partType;
 		this.request = request;
 		this.name = name;
+		this.value = value;
 		parser(null);
 	}
 
@@ -109,10 +112,31 @@ public abstract class RequestHttpPart {
 		return this;
 	}
 
+	/**
+	 * Sets a default value for this part.
+	 *
+	 * @param def The default value.
+	 * @return This object.
+	 */
+	public RequestHttpPart def(String def) {
+		if (value == null)
+			value = def;
+		return this;
+	}
+
 	//------------------------------------------------------------------------------------------------------------------
 	// Retrievers
 	//------------------------------------------------------------------------------------------------------------------
 
+	/**
+	 * Returns the value of this part.
+	 *
+	 * @return The value of this part.
+	 */
+	public String getValue() {
+		return value;
+	}
+
 	/**
 	 * Returns <jk>true</jk> if this part exists on the request.
 	 *
@@ -522,13 +546,6 @@ public abstract class RequestHttpPart {
 		return name;
 	}
 
-	/**
-	 * Gets the value of this part.
-	 *
-	 * @return The value of this part, may be <jk>null</jk>.
-	 */
-	public abstract String getValue();
-
 	@Override /* Object */
 	public String toString() {
 		return getName() + "=" + getValue();
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestPathParam.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestPathParam.java
index 305212dbd..dc8e7d805 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestPathParam.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestPathParam.java
@@ -89,8 +89,6 @@ import org.apache.juneau.rest.*;
  */
 public class RequestPathParam extends RequestHttpPart implements NameValuePair {
 
-	private String value;
-
 	/**
 	 * Constructor.
 	 *
@@ -99,31 +97,10 @@ public class RequestPathParam extends RequestHttpPart implements NameValuePair {
 	 * @param value The parameter value.
 	 */
 	public RequestPathParam(RestRequest request, String name, String value) {
-		super(PATH, request, name);
+		super(PATH, request, name, value);
 		this.value = value;
 	}
 
-	/**
-	 * Sets a default value for this part.
-	 *
-	 * @param def The default value.
-	 * @return This object.
-	 */
-	public RequestPathParam def(String def) {
-		if (value == null)
-			value = def;
-		return this;
-	}
-
-	//------------------------------------------------------------------------------------------------------------------
-	// Retrievers
-	//------------------------------------------------------------------------------------------------------------------
-
-	@Override /* RequestHttpPart */
-	public String getValue() {
-		return value;
-	}
-
 	// <FluentSetters>
 
 	@Override /* GENERATED */
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestQueryParam.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestQueryParam.java
index 4f7708957..53a02e70e 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestQueryParam.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/httppart/RequestQueryParam.java
@@ -89,8 +89,6 @@ import org.apache.juneau.rest.*;
  */
 public class RequestQueryParam extends RequestHttpPart implements NameValuePair {
 
-	private String value;
-
 	/**
 	 * Constructor.
 	 *
@@ -99,35 +97,9 @@ public class RequestQueryParam extends RequestHttpPart implements NameValuePair
 	 * @param value The parameter value.
 	 */
 	public RequestQueryParam(RestRequest request, String name, String value) {
-		super(QUERY, request, name);
-		this.value = value;
+		super(QUERY, request, name, value);
 	}
 
-	/**
-	 * Sets a default value for this part.
-	 *
-	 * @param def The default value.
-	 * @return This object.
-	 */
-	public RequestQueryParam def(String def) {
-		if (value == null)
-			value = def;
-		return this;
-	}
-
-	//------------------------------------------------------------------------------------------------------------------
-	// Retrievers
-	//------------------------------------------------------------------------------------------------------------------
-
-	@Override /* RequestHttpPart */
-	public String getValue() {
-		return value;
-	}
-
-	//------------------------------------------------------------------------------------------------------------------
-	// Assertions
-	//------------------------------------------------------------------------------------------------------------------
-
 	// <FluentSetters>
 
 	@Override /* GENERATED */