public virtual Object setValue(Object value)
 {
     if (last == null)
     {
         throw new java.lang.IllegalStateException("Iterator setValue() can only be called after next() and before remove()");
     }
     if (parent.maps[1].containsKey(value) &&
         parent.maps[1].get(value) != last.getKey())
     {
         throw new java.lang.IllegalArgumentException("Cannot use setValue() when the object being set is already in the map");
     }
     return(parent.put(last.getKey(), value));
 }
        public override Object setValue(Object value)
        {
            Object key = /*MapEntry.*/ this.getKey();

            if (parent.maps[1].containsKey(value) &&
                parent.maps[1].get(value) != key)
            {
                throw new java.lang.IllegalArgumentException("Cannot use setValue() when the object being set is already in the map");
            }
            parent.put(key, value);
            Object oldValue = base.setValue(value);

            return(oldValue);
        }