Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Conditions Of Use
   *
   * This software was developed by employees of the National Institute of
   * Standards and Technology (NIST), an agency of the Federal Government.
   * Pursuant to title 15 Untied States Code Section 105, works of NIST
   * employees are not subject to copyright protection in the United States
   * and are considered to be in the public domain.  As a result, a formal
   * license is not needed to use the software.
  *
  * This software is provided by NIST as a service and is expressly
  * provided "AS IS."  NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
  * OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
  * AND DATA ACCURACY.  NIST does not warrant or make any representations
  * regarding the use of the software or the results thereof, including but
  * not limited to the correctness, accuracy, reliability or usefulness of
  * the software.
  *
  * Permission to use this software is contingent upon your acceptance
  * of the terms of this agreement
  *
  * .
  *
  */
Product of NIST/ITL Advanced Networking Technologies Division (ANTD). * /
 
 package gov.nist.core;
 
 import java.util.Map;
 import java.util.Set;
Implements a simple NameValue association with a quick lookup function (via a hash map) the default behavior for this class is not thread safe. specify a constructor with boolean true to make this thread safe.

Author(s):
M. Ranganathan
Version:
1.2
 
 
 public class NameValueList implements SerializableCloneableMap<String,NameValue> {
 
 
     private static final long serialVersionUID = -6998271876574260243L;
 
     private Map<String,NameValuehmap;
 
     private String separator;
     
     private boolean sync = false;

    
default constructor.
 
     public NameValueList() {
         this. = .;
         //jeand : lazy loading of the map to save on mem consumption
 //        this.hmap = new LinkedHashMap<String,NameValue>(0);
     }
 
     public NameValueList(boolean sync) {
         this. = .;
         this. = sync;
         //jeand : lazy loading of the map to save on mem consumption
 //        if (sync)
 //            this.hmap = new ConcurrentHashMap<String,NameValue>(0);
 //        else
 //            this.hmap = new LinkedHashMap<String,NameValue>(0);
     }
 
     public void setSeparator(String separator) {
         this. = separator;
     }

    
Encode the list in semicolon separated form.

Returns:
an encoded string containing the objects in this list.
Since:
v1.0
 
     public String encode() {
         return encode(new StringBuilder()).toString();
     }
 
     public StringBuilder encode(StringBuilder buffer) {
         if (!this.isEmpty()) {
             Iterator<NameValueiterator = this.iterator();
            if (iterator.hasNext()) {
                while (true) {
                    Object obj = iterator.next();
                    if (obj instanceof GenericObject) {
                        GenericObject gobj = (GenericObjectobj;
                        gobj.encode(buffer);
                    } else {
                        buffer.append(obj.toString());
                    }
                    if (iterator.hasNext())
                        buffer.append();
                    else
                        break;
                }
            }
        }
        return buffer;
    }
    public String toString() {
        return this.encode();
    }

    
Set a namevalue object in this list.
    public void set(NameValue nv) {
        this.put(nv.getName().toLowerCase(), nv);
    }

    
Set a namevalue object in this list.
    public void set(String nameObject value) {
        NameValue nameValue = new NameValue(namevalue);
        this.put(name.toLowerCase(), nameValue);
    }

    
Compare if two NameValue lists are equal.

Parameters:
otherObject is the object to compare to.
Returns:
true if the two objects compare for equality.
    public boolean equals(Object otherObject) {
        if ( otherObject == null ) {
            return false;
        }
        if (!otherObject.getClass().equals(this.getClass())) {
            return false;
        }
        NameValueList other = (NameValueListotherObject;
        if (this.size() != this.size()) {
            return false;
        }
	        Iterator<Stringli = this.getNames();
        while (li.hasNext()) {
            String key = (Stringli.next();
            NameValue nv1 = this.getNameValue(key);
            NameValue nv2 = (NameValueother.get(key);
            if (nv2 == null)
                return false;
            else if (!nv2.equals(nv1))
                return false;
        }
        return true;
    }

    
Do a lookup on a given name and return value associated with it.
    public Object getValue(String name) {
        return getValue(nametrue);
    }
    
    
Do a lookup on a given name and return value associated with it.
    public Object getValue(String nameboolean stripQuotes) {
        NameValue nv = this.getNameValue(name.toLowerCase());
        if (nv != null)
            return nv.getValueAsObject(stripQuotes);
        else
            return null;
    }

    
Get the NameValue record given a name.

Since:
1.0
    public NameValue getNameValue(String name) {
    	if( == null) {
    		return null;
    	}
        return (NameValue.get(name.toLowerCase());
    }

    
Returns a boolean telling if this NameValueList has a record with this name

Since:
1.0
    public boolean hasNameValue(String name) {
        return this.containsKey(name.toLowerCase());
    }

    
Remove the element corresponding to this name.

Since:
1.0
    public boolean delete(String name) {
        String lcName = name.toLowerCase();
        if (this.containsKey(lcName)) {
            this.remove(lcName);
            return true;
        } else {
            return false;
        }
    }
    public Object clone() {
        NameValueList retval = new NameValueList();
        retval.setSeparator(this.);
        if( != null) {
	        Iterator<NameValueit = this.iterator();
	        while (it.hasNext()) {
	            retval.set((NameValue) ((NameValueit.next()).clone());
	        }
        }
        return retval;
    }

    
Return the size of the embedded map
    public int size() {
    	if( == null) {
    		return 0;
    	}
        return .size();
    }

    
Return true if empty.
    public boolean isEmpty() {
    	if( == null) {
    		return true;
    	}
        return .isEmpty();
    }

    
Return an iterator for the name-value pairs of this list.

Returns:
the iterator.
    public Iterator<NameValueiterator() {
        return this.getMap().values().iterator();
    }

    
Get a list of parameter names.

Returns:
a list iterator that has the names of the parameters.
    public Iterator<StringgetNames() {
        return this.getMap().keySet().iterator();
    }

    
Get the parameter as a String.

Returns:
the parameter as a string.
    public String getParameter(String name) {
        return getParameter(nametrue);
    }
    
    
Get the parameter as a String.

Returns:
the parameter as a string.
    public String getParameter(String nameboolean stripQuotes) {
        Object val = this.getValue(namestripQuotes);
        if (val == null)
            return null;
        if (val instanceof GenericObject)
            return ((GenericObjectval).encode();
        else
            return val.toString();
    }
    /*
     * (non-Javadoc)
     * @see java.util.Map#clear()
     */
    public void clear() {
    	if( != null) {
    		.clear();
    	}
    }
    /*
     * (non-Javadoc)
     * @see java.util.Map#containsKey(java.lang.Object)
     */
    public boolean containsKey(Object key) {
    	if( == null) {
    		return false;
    	}
        return .containsKey(key.toString().toLowerCase());
    }
    /*
     * (non-Javadoc)
     * @see java.util.Map#containsValue(java.lang.Object)
     */
    public boolean containsValue(Object value) {
    	if( == null) {
    		return false;
    	}
        return .containsValue(value);
    }
    /*
     * (non-Javadoc)
     * @see java.util.Map#entrySet()
     */
    public Set<java.util.Map.Entry<StringNameValue>> entrySet() {
    	if( == null) {
    		return new HashSet<Entry<String,NameValue>>();
    	}
        return .entrySet();
    }
    /*
     * (non-Javadoc)
     * @see java.util.Map#get(java.lang.Object)
     */
    public NameValue get(Object key) {
    	if( == null) {
    		return null;
    	}
        return .get(key.toString().toLowerCase());
    }
    /*
     * (non-Javadoc)
     * @see java.util.Map#keySet()
     */
    public Set<StringkeySet() {
    	if( == null) {
    		return new HashSet<String>();
    	}
        return .keySet();
    }
    /*
     * (non-Javadoc)
     * @see java.util.Map#put(java.lang.Object, java.lang.Object)
     */
    public NameValue put(String nameNameValue nameValue) {
        return this.getMap().put(namenameValue);
    }
    public void putAll(Map<? extends String, ? extends NameValuemap) {
        this.getMap().putAll(map);
    }
    /*
     * (non-Javadoc)
     * @see java.util.Map#remove(java.lang.Object)
     */
    public NameValue remove(Object key) {
    	if( == null) {
    		return null;
    	}
        return this.getMap().remove(key.toString().toLowerCase());
    }
    /*
     * (non-Javadoc)
     * @see java.util.Map#values()
     */
    public Collection<NameValuevalues() {    	
        return this.getMap().values();
    }
    
    @Override
    public int hashCode() {
        return this.getMap().keySet().hashCode();
    }

Returns:
the hmap
    protected Map<String,NameValuegetMap() {
		if(this. == null) {
			if () {
else {
			}
		}
		return ;
	}
New to GrepCode? Check out our FAQ X