public final void setReadOnlyMap(LocalNameQualifiedNamesMap readOnlyMap, boolean clear) {
   _readOnlyMap = readOnlyMap;
   if (_readOnlyMap != null) {
     _readOnlyMapSize = _readOnlyMap.size();
     _index = _readOnlyMap.getIndex();
     if (clear) {
       clear();
     }
   } else {
     _readOnlyMapSize = 0;
     _index = 0;
   }
 }
  public final void clear() {
    for (int i = 0; i < _table.length; i++) {
      _table[i] = null;
    }
    _size = 0;

    if (_readOnlyMap != null) {
      _index = _readOnlyMap.getIndex();
    } else {
      _index = 0;
    }
  }
  private final Entry getEntry(String key, int hash) {
    if (_readOnlyMap != null) {
      final Entry entry = _readOnlyMap.getEntry(key, hash);
      if (entry != null) {
        return entry;
      }
    }

    final int tableIndex = indexFor(hash, _table.length);
    for (Entry e = _table[tableIndex]; e != null; e = e._next) {
      if (e._hash == hash && eq(key, e._key)) {
        return e;
      }
    }

    return null;
  }
  public final Entry obtainEntry(String key) {
    final int hash = hashHash(key.hashCode());

    if (_readOnlyMap != null) {
      final Entry entry = _readOnlyMap.getEntry(key, hash);
      if (entry != null) {
        return entry;
      }
    }

    final int tableIndex = indexFor(hash, _table.length);
    for (Entry e = _table[tableIndex]; e != null; e = e._next) {
      if (e._hash == hash && eq(key, e._key)) {
        return e;
      }
    }

    return addEntry(key, hash, tableIndex);
  }
 public final boolean isQNameFromReadOnlyMap(QualifiedName name) {
   return (_readOnlyMap != null && name.index <= _readOnlyMap.getIndex());
 }