protected Digester createDigester()

in maven2-plugins/myfaces-faces-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/faces/parse/FacesConfigParser.java [256:397]


  protected Digester createDigester() throws ParserConfigurationException, SAXException
  {
    Digester digester = createEmptyDigester();

    addComponentDigesterRules(digester, true);
    
    // Java Enterprise 5.0
    digester.setRuleNamespaceURI("http://java.sun.com/xml/ns/javaee");
    //digester.addObjectCreate("faces-config", FacesConfigBean.class);

    // faces-config/converter
    digester.addObjectCreate("faces-config/converter", ConverterBean.class);
    digester.addBeanPropertySetter("faces-config/converter/converter-id",
                                   "converterId");
    digester.addBeanPropertySetter("faces-config/converter/converter-class",
                                   "converterClass");
    digester.addBeanPropertySetter("faces-config/converter/description");
    digester.addSetNext("faces-config/converter", "addConverter",
                        ConverterBean.class.getName());

    // faces-config/converter/property
    digester.addObjectCreate("faces-config/converter/property", PropertyBean.class);
    digester.addBeanPropertySetter("faces-config/converter/property/property-name",
                                   "propertyName");
    digester.addBeanPropertySetter("faces-config/converter/property/property-class",
                                   "propertyClass");
    digester.addBeanPropertySetter("faces-config/converter/property/description");
    digester.addBeanPropertySetter("faces-config/converter/property/default-value",
                                   "defaultValue");
    digester.addSetNext("faces-config/converter/property", "addProperty",
                        PropertyBean.class.getName());

    // faces-config/validator
    digester.addObjectCreate("faces-config/validator", ValidatorBean.class);
    digester.addBeanPropertySetter("faces-config/validator/validator-id",
                                   "validatorId");
    digester.addBeanPropertySetter("faces-config/validator/validator-class",
                                   "validatorClass");
    digester.addBeanPropertySetter("faces-config/validator/description");
    digester.addSetNext("faces-config/validator", "addValidator",
                        ValidatorBean.class.getName());

    // faces-config/validator/property
    digester.addObjectCreate("faces-config/validator/property", PropertyBean.class);
    digester.addBeanPropertySetter("faces-config/validator/property/property-name",
                                   "propertyName");
    digester.addBeanPropertySetter("faces-config/validator/property/property-class",
                                   "propertyClass");
    digester.addBeanPropertySetter("faces-config/validator/property/description");
    digester.addBeanPropertySetter("faces-config/validator/property/default-value",
                                   "defaultValue");
    digester.addSetNext("faces-config/validator/property", "addProperty",
                        PropertyBean.class.getName());


    // faces-config/render-kit
    digester.addObjectCreate("faces-config/render-kit", RenderKitBean.class);
    digester.addBeanPropertySetter("faces-config/render-kit/render-kit-id",
                                   "renderKitId");
    digester.addSetNext("faces-config/render-kit", "addRenderKit",
                        RenderKitBean.class.getName());

    // faces-config/render-kit/renderer
    digester.addObjectCreate("faces-config/render-kit/renderer", RendererBean.class);
    digester.addBeanPropertySetter("faces-config/render-kit/renderer/description");
    digester.addBeanPropertySetter("faces-config/render-kit/renderer/component-family",
                                   "componentFamily");
    digester.addBeanPropertySetter("faces-config/render-kit/renderer/renderer-type",
                                   "rendererType");
    digester.addBeanPropertySetter("faces-config/render-kit/renderer/renderer-class",
                                   "rendererClass");
    digester.addSetNext("faces-config/render-kit/renderer", "addRenderer",
                        RendererBean.class.getName());


    // TBD: JSR-276 metadata (ask Jeff Stephenson)


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

    // faces-config/faces-config-extension/event
    digester.addObjectCreate("faces-config/faces-config-extension/event", EventBean.class);
    digester.addBeanPropertySetter("faces-config/faces-config-extension/event/description");
    digester.addBeanPropertySetter("faces-config/faces-config-extension/event/event-type",
                                   "eventType");
    digester.addBeanPropertySetter("faces-config/faces-config-extension/event/event-class",
                                   "eventClass");
    digester.addBeanPropertySetter("faces-config/faces-config-extension/event/event-listener-class",
                                   "eventListenerClass");
    digester.addBeanPropertySetter("faces-config/faces-config-extension/event/event-source-interface",
                                   "eventSourceInterface");
    digester.addSetNext("faces-config/faces-config-extension/event", "addEvent",
                        EventBean.class.getName());

    // faces-config/converter/converter-extension
    digester.addBeanPropertySetter("faces-config/converter/converter-extension/long-description",
                                   "longDescription");
    digester.addBeanPropertySetter("faces-config/converter/converter-extension/tag-class",
                                   "tagClass");
    digester.addBeanPropertySetter("faces-config/converter/converter-extension/tag-class-excluded",
                                   "tagClassExcluded");
    digester.addRule("faces-config/converter/converter-extension/tag-name",
                     new BeanPropertySetterRule("tagName"));
    digester.addCallMethod("faces-config/converter/converter-extension/tag-class-modifier",
                           "parseTagClassModifier", 1);
    digester.addCallParam("faces-config/converter/converter-extension/tag-class-modifier", 0);

    // faces-config/converter/property/property-extension
    digester.addBeanPropertySetter("faces-config/converter/property/property-extension/tag-attribute-excluded",
                                   "tagAttributeExcluded");
    digester.addBeanPropertySetter("faces-config/converter/property/property-extension/literal-only",
                                   "literalOnly");

    // faces-config/validator/validator-extension
    digester.addBeanPropertySetter("faces-config/validator/validator-extension/long-description",
                                   "longDescription");
    digester.addBeanPropertySetter("faces-config/validator/validator-extension/tag-class",
                                   "tagClass");
    digester.addBeanPropertySetter("faces-config/validator/validator-extension/tag-class-excluded",
                                   "tagClassExcluded");    
    digester.addRule("faces-config/validator/validator-extension/tag-name",
                     new BeanPropertySetterRule("tagName"));
    digester.addCallMethod("faces-config/validator/validator-extension/tag-class-modifier",
                           "parseTagClassModifier", 1);
    digester.addCallParam("faces-config/validator/validator-extension/tag-class-modifier", 0);
    
    // faces-config/validator/property/property-extension
    digester.addBeanPropertySetter("faces-config/validator/property/property-extension/tag-attribute-excluded",
                                   "tagAttributeExcluded");
    // faces-config/validator/property/property-extension/property-metada
    digester.addBeanPropertySetter("faces-config/validator/property/property-extension/property-metadata/use-max-time",
                                 "useMaxTime");

    // faces-config/render-kit/renderer/renderer-extension
    digester.addBeanPropertySetter("faces-config/render-kit/renderer/renderer-extension/component-type",
                                   "componentType");
    digester.addBeanPropertySetter("faces-config/render-kit/renderer/renderer-extension/renderer-superclass",
                                   "rendererSuperclass");

    return digester;
  }