Example usage for org.apache.commons.digester3.plugins PluginCreateRule PluginCreateRule

List of usage examples for org.apache.commons.digester3.plugins PluginCreateRule PluginCreateRule

Introduction

In this page you can find the example usage for org.apache.commons.digester3.plugins PluginCreateRule PluginCreateRule.

Prototype

public PluginCreateRule(Class<?> baseClass) 

Source Link

Document

Create a plugin rule where the user must specify a plugin-class or plugin-id.

Usage

From source file:org.apache.commons.digester3.examples.plugins.pipeline.CompoundTransform.java

public static void addRules(Digester d, String patternPrefix) {
    PluginCreateRule pcr = new PluginCreateRule(Transform.class);
    d.addRule(patternPrefix + "/subtransform", pcr);
    d.addSetNext(patternPrefix + "/subtransform", "addTransform");
}

From source file:org.apache.commons.digester3.examples.plugins.pipeline.Pipeline.java

public static void main(String[] args) {
    if (args.length != 1) {
        System.err.println("usage: pipeline config-file");
        System.exit(-1);// w ww  . j  av a2  s  . c  o m
    }
    String configFile = args[0];

    Digester digester = new Digester();
    PluginRules rc = new PluginRules();
    digester.setRules(rc);

    digester.addObjectCreate("pipeline", Pipeline.class);

    digester.addCallMethod("pipeline/source", "setSource", 1);
    digester.addCallParam("pipeline/source", 0, "file");

    PluginCreateRule pcr = new PluginCreateRule(Transform.class);
    digester.addRule("pipeline/transform", pcr);
    digester.addSetNext("pipeline/transform", "setTransform");

    digester.addCallMethod("pipeline/destination", "setDest", 1);
    digester.addCallParam("pipeline/destination", 0, "file");

    Pipeline pipeline = null;
    try {
        pipeline = digester.parse(configFile);
    } catch (Exception e) {
        System.err.println("oops exception occurred during parse.");
        e.printStackTrace();
        System.exit(-1);
    }

    try {
        pipeline.execute();
    } catch (Exception e) {
        System.err.println("oops exception occurred during pipeline execution.");
        e.printStackTrace();
        System.exit(-1);
    }
}