001: /*
002: * Copyright (C) 2004-2007 Stephen Ostermiller
003: * http://ostermiller.org/contact.pl?regarding=Java+Utilities
004: *
005: * This program is free software; you can redistribute it and/or modify
006: * it under the terms of the GNU General Public License as published by
007: * the Free Software Foundation; either version 2 of the License, or
008: * (at your option) any later version.
009: *
010: * This program is distributed in the hope that it will be useful,
011: * but WITHOUT ANY WARRANTY; without even the implied warranty of
012: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
013: * GNU General Public License for more details.
014: *
015: * See COPYING.TXT for details.
016: */
017:
018: package com.Ostermiller.util;
019:
020: import java.io.UnsupportedEncodingException;
021: import java.net.URLEncoder;
022:
023: /**
024: * Represents a name value pair as would be used as a CGI parameter.
025: * <p>
026: * More information about this class is available from <a target="_top" href=
027: * "http://ostermiller.org/utils/">ostermiller.org</a>.
028: *
029: * @author Stephen Ostermiller http://ostermiller.org/contact.pl?regarding=Java+Utilities
030: * @since ostermillerutils 1.03.00
031: */
032: public class NameValuePair {
033:
034: /**
035: * Name of the pair.
036: */
037: private String name;
038:
039: /**
040: * Value of the pair.
041: */
042: private String value;
043:
044: /**
045: * Construct a name value pair.
046: *
047: * @param name name of the pair.
048: * @param value value of the pair.
049: *
050: * @since ostermillerutils 1.03.00
051: */
052: public NameValuePair(String name, String value) {
053: if (name == null)
054: name = "";
055: if (value == null)
056: value = "";
057: this .name = name;
058: this .value = value;
059: }
060:
061: /**
062: * Get the name of the pair.
063: *
064: * @return the name of the pair.
065: *
066: * @since ostermillerutils 1.03.00
067: */
068: public String getName() {
069: return name;
070: }
071:
072: /**
073: * Get the value of the pair.
074: *
075: * @return the value of the pair.
076: *
077: * @since ostermillerutils 1.03.00
078: */
079: public String getValue() {
080: return value;
081: }
082:
083: /**
084: * Get the name and value as CGI parameters, URL Encoded to UTF-8.
085: *
086: * @return CGI appropriate representation of the pair.
087: *
088: * @since ostermillerutils 1.03.00
089: */
090: @Override
091: public String toString() {
092: try {
093: return toString("UTF-8");
094: } catch (UnsupportedEncodingException uex) {
095: // UTF-8 Should be acceptable
096: throw new RuntimeException(uex);
097: }
098: }
099:
100: /**
101: * Get the name and value as CGI parameters, URL Encoded to the given encoding.
102: *
103: * @param charset Character set to use when URL Encoding.
104: * @return CGI appropriate representation of the pair.
105: * @throws UnsupportedEncodingException if the given character set is not supported
106: *
107: * @since ostermillerutils 1.03.00
108: */
109: public String toString(String charset)
110: throws UnsupportedEncodingException {
111: return URLEncoder.encode(name, charset) + "="
112: + URLEncoder.encode(value, charset);
113: }
114: }
|