Package java.util

Source Code of java.util.HashMapNullSensitive

package java.util;

import railo.runtime.exp.ExpressionException;
import railo.runtime.exp.PageException;
import railo.runtime.type.Collection.Key;

public class HashMapNullSensitive extends HashMap<Key, Object> {


  public Object gib(Key key) throws PageException {
    int hash = hash(key.hashCode());
    Key k;
    for (Entry<Key,Object> e = table[indexFor(hash, table.length)]; e != null; e = e.next) {
      if (e.hash == hash && ((k = e.key) == key || key.equalsIgnoreCase(k)))
        return e.value;
      }
      throw invalidKey(this,key);
  }
 

  public Object gib(Key key, Object defaultValue) {
    int hash = hash(key.hashCode());
    Key k;
    for (Entry<Key,Object> e = table[indexFor(hash, table.length)]; e != null; e = e.next) {
      if (e.hash == hash && ((k = e.key) == key || key.equalsIgnoreCase(k)))
        return e.value;
      }
      return defaultValue;
  }
 
  public Object haeb(Key key, Object value) {
    int hash = hash(key.hashCode());
    int i = indexFor(hash, table.length);
    for (Entry<Key,Object> e = table[i]; e != null; e = e.next) {
      Key k;
      if (e.hash == hash && ((k = e.key) == key || key.equalsIgnoreCase(k))) {
        Object oldValue = e.value;
        e.value = value;
        e.recordAccess(this);
        return oldValue;
        }
    }

    modCount++;
    addEntry(hash, key, value, i);
    return null;
  }
 
 
  public static ExpressionException invalidKey(Map map,Key key) {

    StringBuilder sb=new StringBuilder();
    Iterator<Key> it = map.keySet().iterator();
    Key k;

    while(it.hasNext()){
      k = it.next();
      if( k.equals( key ) )
        return new ExpressionException( "the value from key [" + key.getString() + "] is NULL, which is the same as not existing in CFML" );
      if(sb.length()>0)sb.append(',');
      sb.append(k.getString());
    }

    return new ExpressionException( "key [" + key.getString() + "] doesn't exist (existing keys:" + sb.toString() + ")" );
  }
}
TOP

Related Classes of java.util.HashMapNullSensitive

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.