static protected void addComponentDigesterRules()

in maven2-plugins/myfaces-builder-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/builder/trinidad/parse/FacesConfigParser.java [94:264]


  static protected void addComponentDigesterRules(Digester digester, boolean withCreate)
  {
    digester.setRuleNamespaceURI("http://java.sun.com/xml/ns/javaee");

    // faces-config/component
    // Only use if we're creating the component;  turn this off
    // when we're simply including content
    if (withCreate)
    {
      // faces-config/component
      digester.addObjectCreate("faces-config/component", ComponentBean.class);
      digester.addBeanPropertySetter("faces-config/component/component-type",
                                     "componentType");
      digester.addBeanPropertySetter("faces-config/component/component-class",
                                     "componentClass");
      digester.addBeanPropertySetter("faces-config/component/js-component-class",
                                     "jsComponentClass");
      digester.addBeanPropertySetter("faces-config/component/description");
      digester.addSetNext("faces-config/component", "addComponent",
                          ComponentBean.class.getName());
    }

    // faces-config/component/property
    digester.addObjectCreate("faces-config/component/property", PropertyBean.class);
    addComponentPropertyDigesterRules(digester);
    digester.addSetNext("faces-config/component/property", "addProperty",
                        PropertyBean.class.getName());


    // faces-config/component/facet
    digester.addObjectCreate("faces-config/component/facet", FacetBean.class);
    digester.addBeanPropertySetter("faces-config/component/facet/facet-name",
                                   "facetName");
    digester.addBeanPropertySetter("faces-config/component/facet/description");
    digester.addSetNext("faces-config/component/facet", "addFacet",
                        FacetBean.class.getName());

    // Maven Faces Plugin
    digester.setRuleNamespaceURI("http://myfaces.apache.org/maven-faces-plugin");

    // faces-config/component/facet/facet-extension
    digester.addBeanPropertySetter("faces-config/component/facet/facet-extension/hidden");

    // faces-config/component/facet/facet-extension/facet-metadata/accessibility-guideline
    digester.addCallMethod("faces-config/component/facet/facet-extension/facet-metadata/accessibility-guideline",
                           "addAccessibilityGuideline", 1);
    digester.addCallParam("faces-config/component/facet/facet-extension/facet-metadata/accessibility-guideline", 0);

    // faces-config/component/facet/example
    digester.addObjectCreate("faces-config/component/facet/example",
                             ExampleBean.class);
    digester.addBeanPropertySetter("faces-config/component/facet/example/source-description",
                                   "sourceDescription");
    digester.addBeanPropertySetter("faces-config/component/facet/example/source-code",
                                   "sourceCode");
    digester.addSetNext("faces-config/component/facet/example",
                        "addExample", ExampleBean.class.getName());

    // faces-config/component/component-extension
    digester.addBeanPropertySetter("faces-config/component/component-extension/long-description",
                                   "longDescription");
    digester.addBeanPropertySetter("faces-config/component/component-extension/component-family",
                                   "componentFamily");
    digester.addBeanPropertySetter("faces-config/component/component-extension/component-supertype",
                                   "componentSupertype");
    digester.addBeanPropertySetter("faces-config/component/component-extension/component-superclass",
                                   "componentSuperclass");
    digester.addBeanPropertySetter("faces-config/component/component-extension/renderer-type",
                                   "rendererType");
    digester.addBeanPropertySetter("faces-config/component/component-extension/naming-container",
                                   "namingContainer");
    digester.addBeanPropertySetter("faces-config/component/component-extension/accepts-child-components",
                                   "children");
    digester.addBeanPropertySetter("faces-config/component/component-extension/tag-class",
                                   "tagClass");
    digester.addBeanPropertySetter("faces-config/component/component-extension/tag-superclass",
                                   "tagSuperclass");
    digester.addBeanPropertySetter("faces-config/component/component-extension/tag-handler",
                                   "tagHandler");
    digester.addBeanPropertySetter("faces-config/component/component-extension/implementation-type",
                                   "implementationType");
    digester.addCallMethod("faces-config/component/component-extension/tag-class-modifier",
                           "parseTagClassModifier", 1);
    digester.addCallParam("faces-config/component/component-extension/tag-class-modifier", 0);
    digester.addCallMethod("faces-config/component/component-extension/unsupported-agents",
                           "parseUnsupportedAgents", 1);
    digester.addCallParam("faces-config/component/component-extension/unsupported-agents", 0);

    digester.addCallMethod("faces-config/component/component-extension/component-class-modifier",
                           "parseComponentClassModifier", 1);
    digester.addCallParam("faces-config/component/component-extension/component-class-modifier", 0);
    digester.addRule("faces-config/component/component-extension/tag-name",
                     new BeanPropertySetterRule("tagName"));
    digester.addBeanPropertySetter("faces-config/component/component-extension/uix2-local-name",
                                   "localName");
    digester.addBeanPropertySetter("faces-config/component/component-extension/uix2-node-class",
                                   "nodeClass");

    // faces-config/component/component-extension/accessibility-guideline
    digester.addCallMethod("faces-config/component/component-extension/accessibility-guideline",
                           "addAccessibilityGuideline", 1);
    digester.addCallParam("faces-config/component/component-extension/accessibility-guideline", 0);

    // faces-config/component/component-extension/example
    digester.addObjectCreate("faces-config/component/component-extension/example",
                             ExampleBean.class);
    digester.addBeanPropertySetter("faces-config/component/component-extension/example/source-description",
                                   "sourceDescription");
    digester.addBeanPropertySetter("faces-config/component/component-extension/example/source-code",
                                   "sourceCode");
    digester.addSetNext("faces-config/component/component-extension/example",
                        "addExample", ExampleBean.class.getName());

    // faces-config/component/component-extension/screenshot
    digester.addObjectCreate("faces-config/component/component-extension/screenshot",
                             ScreenshotBean.class);
    digester.addBeanPropertySetter("faces-config/component/component-extension/screenshot/description",
                                   "description");
    digester.addBeanPropertySetter("faces-config/component/component-extension/screenshot/image",
                                   "image");
    digester.addSetNext("faces-config/component/component-extension/screenshot",
                        "addScreenshot", ScreenshotBean.class.getName());

    // faces-config/component/component-extension/event
    digester.addObjectCreate("faces-config/component/component-extension/event", EventRefBean.class);
    digester.addBeanPropertySetter("faces-config/component/component-extension/event/event-type",
                                   "eventType");
    digester.addBeanPropertySetter("faces-config/component/component-extension/event/event-delivery-phase",
                                   "eventDeliveryPhases");
    digester.addBeanPropertySetter("faces-config/component/component-extension/event/ignore-source-interface",
                                   "ignoreSourceInterface");
    digester.addSetNext("faces-config/component/component-extension/event", "addEvent",
                        EventRefBean.class.getName());

    // jsr-276 metadata rules
    digester.setRuleNamespaceURI("http://java.sun.com/xml/ns/javaee/faces/design-time-metadata");
    digester.addBeanPropertySetter("faces-config/component/property/property-extension/property-metadata/required");
    digester.addBeanPropertySetter("faces-config/component/property/property-extension/property-metadata/value-expression", "valueExpression");
    digester.addBeanPropertySetter("faces-config/component/component-extension/component-metadata/default-event-name",
                                   "defaultEventName");
    digester.addBeanPropertySetter("faces-config/component/facet/facet-extension/facet-metadata/hidden");
    digester.addCallMethod("faces-config/component/component-extension/component-metadata/event-names",
                           "parseEventNames", 1);
    digester.addCallParam("faces-config/component/component-extension/component-metadata/event-names", 0);

    // faces-config/component/facet/facet-extension/facet-metadata/allowed-child-components
    digester.addCallMethod("faces-config/component/facet/facet-extension/facet-metadata/allowed-child-components",
                           "parseAllowedChildComponents", 1);
    digester.addCallParam("faces-config/component/facet/facet-extension/facet-metadata/allowed-child-components", 0);

    // faces-config/component/component-extension/component-metadata/required-ancestor-contracts
    digester.addCallMethod("faces-config/component/component-extension/component-metadata/required-ancestor-contracts",
                           "parseRequiredAncestorContracts", 1);
    digester.addCallParam("faces-config/component/component-extension/component-metadata/required-ancestor-contracts", 0);

    // faces-config/component/component-extension/component-metadata/satisfied-contracts
    digester.addCallMethod("faces-config/component/component-extension/component-metadata/satisfied-contracts",
                           "parseSatisfiedContracts", 1);
    digester.addCallParam("faces-config/component/component-extension/component-metadata/satisfied-contracts", 0);

    // XInclude rules
    digester.setRuleNamespaceURI(XIncludeFilter.XINCLUDE_NAMESPACE);
    digester.addFactoryCreate("faces-config/component/include",
                              ComponentIncludeFactory.class);
    digester.addFactoryCreate("faces-config/component/property/include",
                              ComponentPropertyIncludeFactory.class);
    digester.addFactoryCreate("faces-config/component/component-extension/include",
                              ComponentIncludeFactory.class);
    digester.addFactoryCreate("faces-config/component/component-extension/component-metadata/include",
                              ComponentIncludeFactory.class);
  }