/**
   * Adds all of the component's recognized features and properties to the list of default
   * recognized features and properties, and sets default values on the configuration for features
   * and properties which were previously absent from the configuration.
   *
   * @param component The component whose recognized features and properties will be added to the
   *     configuration
   */
  public void addRecognizedParamsAndSetDefaults(
      XMLComponent component, XSGrammarPoolContainer grammarContainer) {

    // register component's recognized features
    final String[] recognizedFeatures = component.getRecognizedFeatures();
    addRecognizedFeatures(recognizedFeatures);

    // register component's recognized properties
    final String[] recognizedProperties = component.getRecognizedProperties();
    addRecognizedProperties(recognizedProperties);

    // set default values
    setFeatureDefaults(component, recognizedFeatures, grammarContainer);
    setPropertyDefaults(component, recognizedProperties);
  }