Example usage for org.apache.commons.digester Rules add

List of usage examples for org.apache.commons.digester Rules add

Introduction

In this page you can find the example usage for org.apache.commons.digester Rules add.

Prototype

public void add(String pattern, Rule rule);

Source Link

Document

Register a new Rule instance matching the specified pattern.

Usage

From source file:com.discursive.jccook.xml.bean.NamespaceDigest.java

private void addPageRules(Rules rules) {
    rules.add("*/page", new ObjectCreateRule(Page.class));
    rules.add("*/page", new SetNextRule("add"));
}

From source file:com.discursive.jccook.xml.bean.ProgrammaticDigesterExample.java

public void testDigest() throws Exception {

    List plays = new ArrayList();

    Digester digester = new Digester();
    Rules rules = digester.getRules();
    rules.add("plays/play", new ObjectCreateRule("com.discursive.jccook.xml.bean.Play"));
    rules.add("plays/play", new SetNextRule("add", "java.lang.Object"));
    rules.add("plays/play", new SetPropertiesRule());
    rules.add("plays/play/name", new BeanPropertySetterRule("name"));
    rules.add("plays/play/summary", new BeanPropertySetterRule("summary"));
    rules.add("plays/play/author", new BeanPropertySetterRule("author"));
    rules.add("plays/play/characters/character",
            new ObjectCreateRule("com.discursive.jccook.xml.bean.Character"));
    rules.add("plays/play/characters/character",
            new SetNextRule("addCharacter", "com.discursive.jccook.xml.bean.Character"));
    rules.add("plays/play/characters/character", new SetPropertiesRule());
    rules.add("plays/play/characters/character/name", new BeanPropertySetterRule("name"));
    rules.add("plays/play/characters/character/description", new BeanPropertySetterRule("description"));
    digester.push(plays);/*from  ww w .j  av a 2  s  .  com*/

    InputStream input = getClass().getResourceAsStream("./plays.xml");
    digester.parse(input);

    System.out.println("Number of plays: " + plays.size());
}