code: public Iterator<Integer> enumerateComponentIds (final ComponentClass compClass)
      {
          Predicate<Map.Entry<Integer,CharacterComponent>> pred =
              new Predicate<Map.Entry<Integer,CharacterComponent>>() {
                  public boolean apply (Map.Entry<Integer,CharacterComponent> entry) {
                      return entry.getValue().componentClass.equals(compClass);
                  }
              };
          Function<Map.Entry<Integer,CharacterComponent>,Integer> func =
              new Function<Map.Entry<Integer,CharacterComponent>,Integer>() {
                  public Integer apply (Map.Entry<Integer,CharacterComponent> entry) {
                      return entry.getKey();
                  }
              };
          return Iterators.transform(Iterators.filter(_components.entrySet().iterator(), pred), func);
      }
docs: documentation inherited