@Nullable Class<? extends DomElement> getImplementation(Class<?> concreteInterface) {
    //noinspection unchecked
    return (Class<? extends DomElement>)myCachedImplementationClasses.get(concreteInterface);
  }
@Nullable Class<? extends DomElement> getImplementation(Class<?> concreteInterface)