001    package railo.commons.lang;
002    
003    import java.io.UnsupportedEncodingException;
004    
005    /**
006     * Name Value Pair
007     */
008    public final class ByteNameValuePair {
009    
010        private byte[] name;
011        private byte[] value;
012            private boolean urlEncoded;
013        
014        /**
015         * constructor of the class
016         * @param name
017         * @param value
018         */
019        public ByteNameValuePair(byte[] name, byte[] value,boolean urlEncoded) {
020            this.name = name;
021            this.value = value;
022            this.urlEncoded = urlEncoded;
023        }
024        
025        /**
026         * @return Returns the name.
027         */
028        public byte[] getName() {
029            return name;
030        }
031        
032        /**
033         * @param encoding 
034         * @return Returns the name.
035         * @throws UnsupportedEncodingException 
036         */
037        public String getName(String encoding) throws UnsupportedEncodingException {
038            return new String(name,encoding);
039        }
040        
041        /**
042         * @param encoding 
043         * @param defaultValue 
044         * @return Returns the name.
045         */
046        public String getName(String encoding, String defaultValue) {
047            try {
048                return new String(name,encoding);
049            } catch (UnsupportedEncodingException e) {
050                return defaultValue;
051            }
052        }
053        
054        /**
055         * @param name The name to set.
056         */
057        public void setName(byte[] name) {
058            this.name = name;
059        }
060        /**
061         * @return Returns the value.
062         */
063        public byte[] getValue() {
064            return value;
065        }
066        
067        /**
068         * @param encoding 
069         * @return Returns the name.
070         * @throws UnsupportedEncodingException 
071         */
072        public String getValue(String encoding) throws UnsupportedEncodingException {
073            return new String(value,encoding);
074        }
075        
076        /**
077         * @param encoding 
078         * @param defaultValue 
079         * @return Returns the name.
080         */
081        public String getValue(String encoding, String defaultValue) {
082            try {
083                return new String(value,encoding);
084            } catch (UnsupportedEncodingException e) {
085                return defaultValue;
086            }
087        }
088        
089        /**
090         * @param value The value to set.
091         */
092        public void setValue(byte[] value) {
093            this.value = value;
094        }
095    
096            /**
097             * @return the urlEncoded
098             */
099            public boolean isUrlEncoded() {
100                    return urlEncoded;
101            }
102    
103    }