Example usage for org.apache.commons.digester SetNextRule SetNextRule

List of usage examples for org.apache.commons.digester SetNextRule SetNextRule

Introduction

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

Prototype

public SetNextRule(String methodName, String paramType) 

Source Link

Document

Construct a "set next" rule with the specified method name.

Usage

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();//w  w  w. jav  a2s.  co m
    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);

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

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