Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.thaiopensource.validate.nrl;
  
  
  import java.util.Vector;
  
 class ContextMap {
   private Object rootValue;
   private Object otherValue;
   private final Hashtable nameTable = new Hashtable();
 
   Object get(Vector context) {
     return get(contextcontext.size());
   }
 
   boolean put(boolean isRootVector namesObject value) {
     return put(isRootnamesnames.size(), value);
   }
 
   private Object get(Vector contextint len) {
     if (len > 0) {
       ContextMap nestedMap = (ContextMap).get(context.elementAt(len - 1));
       if (nestedMap != null) {
         Object value = nestedMap.get(contextlen - 1);
         if (value != null)
           return value;
       }
     }
     if ( != null && len == 0)
       return ;
     return ;
   }
 
   private boolean put(boolean isRootVector namesint lenObject value) {
     if (len == 0) {
       if (isRoot) {
         if ( != null)
           return false;
          = value;
       }
       else {
         if ( != null)
           return false;
          = value;
       }
       return true;
     }
     else {
       Object name = names.elementAt(len - 1);
       ContextMap nestedMap = (ContextMap).get(name);
       if (nestedMap == null) {
         nestedMap = new ContextMap();
         .put(namenestedMap);
       }
       return nestedMap.put(isRootnameslen - 1, value);
     }
   }
 
   public boolean equals(Object obj) {
     if (!(obj instanceof ContextMap))
       return false;
     ContextMap other = (ContextMap)obj;
     if (!Equal.equal(this.other.rootValue)
         || !Equal.equal(this.other.otherValue))
       return false;
     // We want jing to work with JDK 1.1 so we cannot use Hashtable.equals
     if (this..size() != other.nameTable.size())
       return false;
     for (Enumeration e = .keys(); e.hasMoreElements();) {
       Object key = e.nextElement();
       if (!.get(key).equals(other.nameTable.get(key)))
         return false;
     }
     return true;
   }
 
   public int hashCode() {
     int hc = 0;
     if ( != null)
       hc ^= .hashCode();
     if ( != null)
       hc ^= .hashCode();
     for (Enumeration e = .keys(); e.hasMoreElements();) {
       Object key = e.nextElement();
       hc ^= key.hashCode();
       hc ^= .get(key).hashCode();
     }
     return hc;
   }
 
   static private class Enumerator implements Enumeration {
     private Object rootValue;
     private Object otherValue;
     private Enumeration subMapValues;
     private final Enumeration subMaps;
 
    private Enumerator(ContextMap map) {
       = map.rootValue;
       = map.otherValue;
       = map.nameTable.elements();
    }
    private void prep() {
      while (( == null || !.hasMoreElements()) && .hasMoreElements())
    }
    public boolean hasMoreElements() {
      prep();
      return  != null ||  != null || ( != null && .hasMoreElements());
    }
    public Object nextElement() {
      if ( != null) {
        Object tem = ;
         = null;
        return tem;
      }
      if ( != null) {
        Object tem = ;
         = null;
        return tem;
      }
      prep();
      if ( == null)
        throw new NoSuchElementException();
      return .nextElement();
    }
  }
    return new Enumerator(this);
  }
New to GrepCode? Check out our FAQ X