private static <T extends DomChildDescriptionImpl> ChildrenDescriptionsHolder<T> internChildrenHolder(XmlFile file, ChildrenDescriptionsHolder<T> holder) {
    SoftReference<Interner<ChildrenDescriptionsHolder<?>>> ref = file.getUserData(HOLDERS_CACHE);
    Interner<ChildrenDescriptionsHolder<?>> cache = dereference(ref);
    if (cache == null) {
      cache = Interner.createWeakInterner();
      file.putUserData(HOLDERS_CACHE, new SoftReference<>(cache));
    }
    //noinspection unchecked
    return (ChildrenDescriptionsHolder<T>)cache.intern(holder);
  }
private static <T extends DomChildDescriptionImpl> ChildrenDescriptionsHolder<T> internChildrenHolder(XmlFile file, ChildrenDescriptionsHolder<T> holder)