Example usage for org.apache.commons.digester Digester addCallMethod

List of usage examples for org.apache.commons.digester Digester addCallMethod

Introduction

In this page you can find the example usage for org.apache.commons.digester Digester addCallMethod.

Prototype

public void addCallMethod(String pattern, String methodName, int paramCount) 

Source Link

Document

Add an "call method" rule for the specified parameters.

Usage

From source file:nl.toolforge.karma.core.cmd.CommandLoader.java

private Digester getCommandDigester() {

    Digester digester = new Digester();

    digester.addObjectCreate("commands", CommandDescriptorMap.class);

    digester.addFactoryCreate("*/command", CommandDescriptorCreationFactory.class);
    digester.addCallMethod("*/command/description", "setDescription", 0);
    digester.addCallMethod("*/command/classname", "setClassName", 0);
    digester.addCallMethod("*/command/help", "setHelp", 0);

    digester.addObjectCreate("*/command/options", Options.class);

    digester.addFactoryCreate("*/command/options/option", OptionDescriptorCreationFactory.class);
    digester.addCallMethod("*/command/options/option/arg", "setArgName", 0);
    digester.addSetNext("*/command/options/option", "addOption");

    digester.addSetNext("*/command/options", "addOptions"); // Adds an Option to the command.

    digester.addSetNext("*/command", "add"); // Adds a CommandDescriptor instance to the set.

    return digester;
}

From source file:nl.toolforge.karma.core.cmd.util.DescriptorReader.java

private void parseApplicationXml(File baseDir) throws IOException, SAXException {

    Digester digester = new Digester();
    digester.setValidating(false); //todo: dit moet true worden
    digester.addObjectCreate("application", ArrayList.class);
    digester.addObjectCreate("application/module/ejb", StringBuffer.class);
    digester.addCallMethod("application/module/ejb", "append", 0);
    digester.addSetNext("application/module/ejb", "add", "java.lang.StringBuffer");
    digester.addObjectCreate("application/module/java", StringBuffer.class);
    digester.addCallMethod("application/module/java", "append", 0);
    digester.addSetNext("application/module/java", "add", "java.lang.StringBuffer");
    digester.addObjectCreate("application/module/web/web-uri", StringBuffer.class);
    digester.addCallMethod("application/module/web/web-uri", "append", 0);
    digester.addSetNext("application/module/web/web-uri", "add", "java.lang.StringBuffer");

    logger.debug("Parsing 'application.xml' from " + baseDir.getPath());

    moduleNames = (List) digester.parse(new File(baseDir, "application.xml").getPath());
}

From source file:nl.toolforge.karma.core.location.LocationDescriptor.java

/**
 * Creates a <code>Digester</code> to read xml structures for locations. This digester will create an
 * <code>ArrayList</code> of <code>LocationDescriptor</code> instances.
 *
 * @return A digester instance/*  w ww  . ja v a2 s . com*/
 */
public static Digester getDigester() {

    Digester digester = new Digester();

    digester.setNamespaceAware(true);

    digester.addObjectCreate("*/locations", ArrayList.class);

    digester.addObjectCreate("*/locations/location", LocationDescriptor.class);
    digester.addSetProperties("*/locations/location");

    digester.addCallMethod("*/locations/location/protocol", "setProtocol", 0);
    digester.addCallMethod("*/locations/location/host", "setHost", 0);
    digester.addCallMethod("*/locations/location/port", "setPort", 0);
    digester.addCallMethod("*/locations/location/repository", "setRepository", 0);
    digester.addCallMethod("*/locations/location/module-offset", "setModuleOffset", 0);
    digester.addSetNext("*/locations/location", "add");

    return digester;
}

From source file:nl.toolforge.karma.core.manifest.ManifestLoader.java

/**
 * This method builds a tree of <code>ManifestStructure</code> instances, representing the root manifest and all its
 * included manifests./*from  ww w. j  av  a2  s .c o m*/
 *
 * @param manifest The manifest name.
 */
public ManifestStructure load(String manifest) throws ManifestException {

    Digester digester = new Digester();

    // The <manifest>-element
    //
    digester.addObjectCreate("manifest", ManifestStructure.class);
    digester.addSetProperties("manifest");
    digester.addCallMethod("manifest/description", "setDescription", 0);

    // All <module>-elements
    //
    digester.addFactoryCreate("*/module", ModuleDescriptorCreationFactory.class);
    digester.addSetProperties("*/module");
    digester.addSetNext("*/module", "addModule", "nl.toolforge.karma.core.module.ModuleDigester");

    // All <include-manifest>-elements
    //
    digester.addObjectCreate("*/include-manifest", "nl.toolforge.karma.core.manifest.ManifestStructure");
    digester.addSetProperties("*/include-manifest");
    digester.addSetNext("*/include-manifest", "addChild");

    ManifestStructure structure = null;
    try {
        structure = (ManifestStructure) digester.parse(getManifestFileAsStream(manifest));
        structure.setName(manifest);
    } catch (IOException e) {
        throw new ManifestException(e, ManifestException.MANIFEST_LOAD_ERROR, new Object[] { manifest });
    } catch (SAXException e) {
        if (e.getException() instanceof ManifestException) {
            throw new ManifestException(((ManifestException) e.getException()).getErrorCode(),
                    ((ManifestException) e.getException()).getMessageArguments());
        } else {
            throw new ManifestException(e, ManifestException.MANIFEST_LOAD_ERROR, new Object[] { manifest });
        }
    }

    Iterator i = structure.getChilds().values().iterator();

    while (i.hasNext()) {
        String childName = ((ManifestStructure) i.next()).getName();
        ManifestStructure child = load(childName);
        structure.getChild(childName).update(child);
    }

    return structure;
}

From source file:nl.toolforge.karma.core.module.BaseModule.java

/**
 * Reads <code>module-descriptor.xml</code>-file from the module base directory. Once read,
 * the module type is cached.//from w  w w . j av  a 2  s  . c  o  m
 * <p>If the base directory does not exist, <code>Module.UNKNOWN</code> is returned.
 *
 * @return The module type.
 * @throws nl.toolforge.karma.core.module.ModuleTypeException When <code>module-descriptor</code> is non-existing. This is possible when the
 *   module is not locally available.
 */
public final Type getType() throws ModuleTypeException {

    try {
        getBaseDir();
    } catch (KarmaRuntimeException k) {
        return Module.UNKNOWN;
    }

    File moduleDescriptor = new File(getBaseDir(), Module.MODULE_DESCRIPTOR);
    if (!moduleDescriptor.exists()) {
        throw new ModuleTypeException(ModuleTypeException.MISSING_MODULE_DESCRIPTOR);
    }

    if (moduleType.equals(Module.UNKNOWN)) {
        Digester digester = new Digester();

        digester.addObjectCreate("module-descriptor", Module.Type.class);
        digester.addCallMethod("module-descriptor/type", "setType", 0);

        try {
            moduleType = (Type) digester.parse(moduleDescriptor.getPath());
        } catch (IOException e) {
            throw new ModuleTypeException(ModuleTypeException.INVALID_MODULE_DESCRIPTOR);
        } catch (SAXException e) {
            throw new ModuleTypeException(ModuleTypeException.INVALID_MODULE_DESCRIPTOR);
        }
    }
    return moduleType;
}

From source file:nl.toolforge.karma.core.scm.maven.MavenDependencyReader.java

/**
 * Parses a Maven project.xml file and stores all <code>&lt;dependency&gt;</code>-elements in a <code>List</code>.
 *
 * @param dependencyFileIs/* ww w . j  a v a  2s. c om*/
 * @return A <code>List</code>, containing <code>org.apache.maven.project.Dependency</code> instances.
 */
public List parse(InputStream dependencyFileIs) throws KarmaException {

    Digester digester = new Digester();

    digester.addObjectCreate("project", ArrayList.class);
    digester.addObjectCreate("project/dependencies/dependency", "org.apache.maven.project.Dependency");

    digester.addCallMethod("project/dependencies/dependency/Id", "setId", 1);
    digester.addCallParam("project/dependencies/dependency/Id", 0);
    digester.addCallMethod("project/dependencies/dependency/groupId", "setGroupId", 1);
    digester.addCallParam("project/dependencies/dependency/groupId", 0);
    digester.addCallMethod("project/dependencies/dependency/artifactId", "setArtifactId", 1);
    digester.addCallParam("project/dependencies/dependency/artifactId", 0);
    digester.addCallMethod("project/dependencies/dependency/version", "setVersion", 1);
    digester.addCallParam("project/dependencies/dependency/version", 0);
    digester.addCallMethod("project/dependencies/dependency/jar", "setJar", 1);
    digester.addCallParam("project/dependencies/dependency/jar", 0);

    // Call List.add(Dependency)
    //
    digester.addSetNext("project/dependencies/dependency", "add", "org.apache.maven.project.Dependency");

    List deps = null;
    try {
        deps = (List) digester.parse(dependencyFileIs);
    } catch (IOException e) {
        e.printStackTrace();
        //      throw new KarmaException(KarmaException.LAZY_BASTARD);
    } catch (SAXException e) {
        e.printStackTrace();
        //      throw new KarmaException(KarmaException.LAZY_BASTARD);
    }

    return deps;
}

From source file:nonjsp.application.XmlXulRuleSet.java

/**
 * <p>Add the set of Rule instances defined in this RuleSet to the
 * specified <code>Digester</code> instance.
 *
 * @param digester Digester instance to which the new Rule instances
 *                 should be added.//from  w  w w  .j a va2  s .  c  o m
 */
public void addRuleInstances(Digester digester) {

    digester.addCallMethod("*/page-url", "setPageUrl", 0);

    digester.addObjectCreate("*/window", "javax.faces.component.UIForm");

    digester.addObjectCreate("*/label", "javax.faces.component.UIOutput");

    digester.addObjectCreate("*/textbox", "javax.faces.component.UIInput");

    digester.addObjectCreate("*/checkbox", "javax.faces.component.UISelectBoolean");

    digester.addObjectCreate("*/radiogroup", "javax.faces.component.UISelectOne");

    digester.addObjectCreate("*/menupopup", "javax.faces.component.UISelectOne");

    digester.addObjectCreate("*/link", "javax.faces.component.UICommand");

    /* 
     * Button no longer needs an ActionRule that creates a default
     * ActionListener because the API's UICommandBase now installs
     * a default ActionListener
     */
    digester.addObjectCreate("*/button", "javax.faces.component.UICommand");

    digester.addObjectCreate("*/image", "javax.faces.component.UIGraphic");

    digester.addFactoryCreate("*/uicomponent", new UIComponentFactory());

    ComponentRule cRule = new ComponentRule();
    cRule.setBuildComponent(buildComponent);
    digester.addRule("*/window", cRule);
    digester.addRule("*/label", cRule);
    digester.addRule("*/textbox", cRule);
    digester.addRule("*/checkbox", cRule);
    digester.addRule("*/radiogroup", cRule);
    digester.addRule("*/menupopup", cRule);
    digester.addRule("*/link", cRule);
    digester.addRule("*/button", cRule);
    digester.addRule("*/image", cRule);

    ComponentNestedRule cnRule = new ComponentNestedRule();
    cnRule.setBuildComponent(buildComponent);
    digester.addRule("*/radio", cnRule);
    digester.addRule("*/menuitem", cnRule);
}

From source file:org.ajax4jsf.resource.ResourceBuilderImpl.java

private void registerConfig(URL resourceConfig) {
    try {/*from   ww  w .ja v a 2  s .co m*/
        if (log.isDebugEnabled()) {
            log.debug("Process resources configuration file " + resourceConfig.toExternalForm());
        }

        InputStream in = URLToStreamHelper.urlToStream(resourceConfig);
        try {
            Digester digester = new Digester();
            digester.setValidating(false);
            digester.setEntityResolver(new EntityResolver() {
                // Dummi resolver - alvays do nothing
                public InputSource resolveEntity(String publicId, String systemId)
                        throws SAXException, IOException {
                    return new InputSource(new StringReader(""));
                }
            });
            digester.setNamespaceAware(false);
            digester.setUseContextClassLoader(true);
            digester.push(this);
            digester.addObjectCreate("resource-config/resource", "class", JarResource.class);
            digester.addObjectCreate("resource-config/resource/renderer", "class", HTMLRenderer.class);
            digester.addCallMethod("resource-config/resource/renderer/content-type", "setContentType", 0);
            digester.addSetNext("resource-config/resource/renderer", "setRenderer",
                    ResourceRenderer.class.getName());
            digester.addCallMethod("resource-config/resource/name", "setKey", 0);
            digester.addCallMethod("resource-config/resource/path", "setPath", 0);
            digester.addCallMethod("resource-config/resource/cacheable", "setCacheable", 0);
            digester.addCallMethod("resource-config/resource/session-aware", "setSessionAware", 0);
            digester.addCallMethod("resource-config/resource/property", "setProperty", 2);
            digester.addCallParam("resource-config/resource/property/name", 0);
            digester.addCallParam("resource-config/resource/property/value", 1);
            digester.addCallMethod("resource-config/resource/content-type", "setContentType", 0);
            digester.addSetNext("resource-config/resource", "addResource", InternetResource.class.getName());
            digester.parse(in);
        } finally {
            in.close();
        }
    } catch (IOException e) {
        throw new FacesException(e);
    } catch (SAXException e) {
        throw new FacesException(e);
    }
}

From source file:org.apache.myfaces.trinidadbuild.plugin.faces.AbstractFacesMojo.java

protected URL[] readIndex(MavenProject project) throws MojoExecutionException {
    try {/*from www  .  j  a va2  s  .  c  om*/
        // 1. read master faces-config.xml resources
        List masters = getMasterConfigs(project);
        if (masters.isEmpty()) {
            getLog().warn("Master faces-config.xml not found");
            return new URL[0];
        } else {
            List entries = new LinkedList();

            SAXParserFactory spf = SAXParserFactory.newInstance();
            spf.setNamespaceAware(true);
            // requires JAXP 1.3, in JavaSE 5.0
            // spf.setXIncludeAware(false);

            for (Iterator<URL> i = masters.iterator(); i.hasNext();) {
                URL url = i.next();
                Digester digester = new Digester(spf.newSAXParser());
                digester.setNamespaceAware(true);

                // XInclude
                digester.setRuleNamespaceURI(XIncludeFilter.XINCLUDE_NAMESPACE);
                digester.addCallMethod("faces-config/include", "add", 1);
                digester.addFactoryCreate("faces-config/include", URLCreationFactory.class);
                digester.addCallParam("faces-config/include", 0, 0);

                digester.push(url);
                digester.push(entries);
                digester.parse(url.openStream());
            }

            return (URL[]) entries.toArray(new URL[0]);
        }
    } catch (ParserConfigurationException e) {
        throw new MojoExecutionException("Failed to parse master config", e);
    } catch (SAXException e) {
        throw new MojoExecutionException("Failed to parse master config", e);
    } catch (IOException e) {
        throw new MojoExecutionException("Failed to parse master config", e);
    }
}

From source file:org.apache.myfaces.trinidadbuild.plugin.faces.parse.FacesConfigParser.java

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());
    }//from w w w.  j a  v a  2  s.co  m

    // 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");

    // 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);
}