/**
  * Adds a component to this faces config document.
  *
  * @param component the component to add
  */
 public void addComponent(ComponentBean component) {
   // Generic "includes" will not have a component type
   if (component.getComponentType() != null) {
     component.attach(this);
     _components.put(component.getComponentType(), component);
   }
 }
  private void _identifyOverriddenProperies() {
    for (ComponentBean component : _components.values()) {
      ComponentBean parentComponent = component.resolveSupertype();
      if (parentComponent == null) {
        continue;
      }

      for (Iterator<PropertyBean> iter = component.properties(); iter.hasNext(); ) {
        PropertyBean property = iter.next();
        PropertyBean parentProperty =
            parentComponent.findProperty(property.getPropertyName(), true);
        if (parentProperty != null) {
          property.setOverride(true);
        }
      }
    }
  }