private void applyExtensions(DomExtensionsRegistrarImpl registrar) {
    final List<DomExtensionImpl> fixeds = registrar.getFixeds();
    final List<DomExtensionImpl> collections = registrar.getCollections();
    final List<DomExtensionImpl> attributes = registrar.getAttributes();
    if (!attributes.isEmpty()) {
      ChildrenDescriptionsHolder<AttributeChildDescriptionImpl> newAttributes =
          new ChildrenDescriptionsHolder<AttributeChildDescriptionImpl>(
              myStaticGenericInfo.getAttributes());
      for (final DomExtensionImpl extension : attributes) {
        newAttributes.addDescription(
            extension.addAnnotations(
                new AttributeChildDescriptionImpl(extension.getXmlName(), extension.getType())));
      }
      myAttributes = newAttributes;
    }

    if (!fixeds.isEmpty()) {
      ChildrenDescriptionsHolder<FixedChildDescriptionImpl> newFixeds =
          new ChildrenDescriptionsHolder<FixedChildDescriptionImpl>(myStaticGenericInfo.getFixed());
      for (final DomExtensionImpl extension : fixeds) {
        //noinspection unchecked
        newFixeds.addDescription(
            extension.addAnnotations(
                new FixedChildDescriptionImpl(
                    extension.getXmlName(),
                    extension.getType(),
                    extension.getCount(),
                    ArrayUtil.EMPTY_COLLECTION_ARRAY)));
      }
      myFixeds = newFixeds;
    }
    if (!collections.isEmpty()) {
      ChildrenDescriptionsHolder<CollectionChildDescriptionImpl> newCollections =
          new ChildrenDescriptionsHolder<CollectionChildDescriptionImpl>(
              myStaticGenericInfo.getCollections());
      for (final DomExtensionImpl extension : collections) {
        newCollections.addDescription(
            extension.addAnnotations(
                new CollectionChildDescriptionImpl(
                    extension.getXmlName(),
                    extension.getType(),
                    Collections.<JavaMethod>emptyList())));
      }
      myCollections = newCollections;
    }

    final DomExtensionImpl extension = registrar.getCustomChildrenType();
    if (extension != null) {
      myCustomChildren =
          new CustomDomChildrenDescriptionImpl(
              null, extension.getType(), extension.getTagNameDescriptor());
    }
  }