aboutsummaryrefslogtreecommitdiff
path: root/moaSig/common/src/main/java/at/gv/egovernment/moaspss/util/URLEncoder.java
diff options
context:
space:
mode:
Diffstat (limited to 'moaSig/common/src/main/java/at/gv/egovernment/moaspss/util/URLEncoder.java')
-rw-r--r--moaSig/common/src/main/java/at/gv/egovernment/moaspss/util/URLEncoder.java55
1 files changed, 31 insertions, 24 deletions
diff --git a/moaSig/common/src/main/java/at/gv/egovernment/moaspss/util/URLEncoder.java b/moaSig/common/src/main/java/at/gv/egovernment/moaspss/util/URLEncoder.java
index 2aa7e22..5eaece3 100644
--- a/moaSig/common/src/main/java/at/gv/egovernment/moaspss/util/URLEncoder.java
+++ b/moaSig/common/src/main/java/at/gv/egovernment/moaspss/util/URLEncoder.java
@@ -21,7 +21,6 @@
* that you distribute must include a readable copy of the "NOTICE" text file.
*/
-
package at.gv.egovernment.moaspss.util;
import java.io.ByteArrayInputStream;
@@ -29,60 +28,68 @@ import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
/**
- * Translates a string into mime format "x-www-form-urlencoded".
- * Provides a function missing in JDK 1.3.
+ * Translates a string into mime format "x-www-form-urlencoded". Provides a
+ * function missing in JDK 1.3.
+ *
* @author Paul Ivancsics
* @version $Id$
*/
public class URLEncoder {
-
+
/**
* Translates a string into x-www-form-urlencoded format.
- * @param s the string to be translated
+ *
+ * @param s the string to be translated
* @param encoding the encoding to use
* @return the translated string
- * @throws UnsupportedEncodingException when the desired encoding is not supported
+ * @throws UnsupportedEncodingException when the desired encoding is not
+ * supported
*/
public static String encode(String s, String encoding) throws UnsupportedEncodingException {
// if (MiscUtil.isEmpty(s))
// return null;
- byte[] barr = s.getBytes(encoding);
- ByteArrayInputStream bin = new ByteArrayInputStream(barr);
- StringWriter out = new StringWriter();
- for (int b = bin.read(); b >= 0; b = bin.read())
+ final byte[] barr = s.getBytes(encoding);
+ final ByteArrayInputStream bin = new ByteArrayInputStream(barr);
+ final StringWriter out = new StringWriter();
+ for (int b = bin.read(); b >= 0; b = bin.read()) {
encode(b, out);
+ }
return out.toString();
}
-
+
/**
* Encode a character.
- * @param ch The character to encode.
+ *
+ * @param ch The character to encode.
* @param out The <code>StringWriter</code> containing the result.
*/
private static void encode(int ch, StringWriter out) {
- if ((ch >= 'a' && ch <= 'z')
- || (ch >= 'A' && ch <= 'Z')
- || (ch >= '0' && ch <= '9')
- || ch == '.' || ch == '-' || ch == '*' || ch == '_')
+ if (ch >= 'a' && ch <= 'z'
+ || ch >= 'A' && ch <= 'Z'
+ || ch >= '0' && ch <= '9'
+ || ch == '.' || ch == '-' || ch == '*' || ch == '_') {
out.write(ch);
- else if (ch == ' ')
+ } else if (ch == ' ') {
out.write('+');
- else
+ } else {
encodeHex(ch, out);
+ }
}
-
+
/**
- * Encode a character as an escaped hex value.
- * @param ch The character to encode.
+ * Encode a character as an escaped hex value.
+ *
+ * @param ch The character to encode.
* @param out The <code>StringWriter</code> containing the result.
*/
private static void encodeHex(int ch, StringWriter out) {
out.write('%');
- String hex = Integer.toHexString(ch).toUpperCase();
- if (hex.length() < 2)
+ final String hex = Integer.toHexString(ch).toUpperCase();
+ if (hex.length() < 2) {
out.write('0');
- else
+ } else {
out.write(hex.charAt(hex.length() - 2));
+ }
out.write(hex.charAt(hex.length() - 1));
}