/** * Adds a new scope and returns its ID. * * @param scp scope to add * @return the scope's ID */ private int add(final Scope scp) { final int id = scopes.size(); if (id == MAP_THRESHOLD) { ids = new IdentityHashMap<>(); for (final Scope s : scopes) ids.put(s, ids.size()); } scopes.add(scp); adjacent.add(null); if (ids != null) ids.put(scp, id); return id; }