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

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

Introduction

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

Prototype

public SetPropertiesRule() 

Source Link

Document

Base constructor.

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();//  ww w  .  j a  v a 2 s. c  om
    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());
}

From source file:net.sourceforge.jcctray.model.DashboardXmlParser.java

private static Digester createDigester() {
    Digester digester = new Digester();
    digester.addRule("Projects", new ObjectCreateRule(DashBoardProjects.class));
    digester.addRule("Projects/Project", new ObjectCreateRule(DashBoardProject.class));
    digester.addRule("Projects/Project", new SetPropertiesRule());
    digester.addRule("Projects/Project", new SetNextRule("add"));
    return digester;
}

From source file:com.panet.imeta.core.config.KettleConfig.java

private Digester createDigester() {
    Digester digester = new Digester();
    digester.addObjectCreate(KETTLE_CONFIG, TempConfig.class);
    digester.addBeanPropertySetter(KETTLE_CONFIG_CLASS, "clazz");
    digester.addSetProperties(KETTLE_CONFIG, "id", "id");
    digester.addRule(KETTLE_CONFIG_PROPERTY, new SetPropertiesRule() {
        @Override/*www .  jav a2  s. c o m*/
        public void begin(String name, String namespace, Attributes attrs) throws Exception {
            ((TempConfig) digester.peek()).parms.put(attrs.getValue("name"), attrs.getValue("value"));
        }
    });

    digester.addRule(KETTLE_CONFIG, new SetNextRule("") {
        @SuppressWarnings("unchecked")
        public void end(String nameSpace, String name) throws Exception {
            TempConfig cfg = (TempConfig) digester.peek();

            // do the conversion here.
            Class<? extends ConfigManager> cfclass = Class.forName(cfg.clazz).asSubclass(ConfigManager.class);

            ConfigManager parms = cfclass.newInstance();
            // method injection
            inject(cfclass.getMethods(), cfg, parms);
            // field injection
            inject(cfclass.getDeclaredFields(), cfg, parms);
            KettleConfig.this.configs.put(cfg.id, parms);
        }
    });

    return digester;
}

From source file:net.sourceforge.jcctray.utils.ObjectPersister.java

public static JCCTraySettings loadJCCTraySettings(String fileName) throws IOException, SAXException {
    Digester digester = new Digester();

    FileReader fileReader = new FileReader(fileName);

    digester.addRule("cctraysettings", new ObjectCreateRule(JCCTraySettings.class));

    digester.addRule("cctraysettings/hosts/host", new ObjectCreateRule(Host.class));
    digester.addRule("cctraysettings/hosts/host", new SetPropertiesRule());
    digester.addRule("cctraysettings/hosts/host", new SetNextRule("addHost"));

    digester.addRule("cctraysettings/hosts/host/projects/project",
            new ObjectCreateRule(DashBoardProject.class));
    digester.addRule("cctraysettings/hosts/host/projects/project", new SetPropertiesRule());
    digester.addRule("cctraysettings/hosts/host/projects/project", new SetNextRule("addConfiguredProject"));

    digester.addRule("cctraysettings/settings/entry", new ObjectCreateRule(NameValuePair.class));
    digester.addRule("cctraysettings/settings/entry", new SetPropertiesRule());
    digester.addRule("cctraysettings/settings/entry", new SetNextRule("set"));
    JCCTraySettings result = (JCCTraySettings) digester.parse(fileReader);
    fileReader.close();/*from  ww w .  j a v  a  2s .com*/
    return result;
}

From source file:net.sourceforge.vulcan.integration.support.PluginVersionDigester.java

public static PluginVersionSpec digest(Reader reader) throws IOException {
    if (reader == null) {
        throw new IllegalArgumentException();
    }//  www  .j a  v a  2s. c o m

    Digester digester = new Digester();

    digester.addObjectCreate("vulcan-version-descriptor", PluginVersionSpecImpl.class.getName());

    digester.addRule("vulcan-version-descriptor", new SetPropertiesRule());

    try {
        return (PluginVersionSpec) digester.parse(reader);
    } catch (SAXException e) {
        return null;
    }
}

From source file:org.azkfw.crawler.config.CrawlerConfig.java

/**
 * ??//from  w w w  .j  a v  a2s  . co  m
 * 
 * @param aFile 
 * @return 
 */
public static CrawlerConfig parse(final String aFile) {
    CrawlerConfig config = null;
    try {
        Digester digester = new Digester();
        digester.addRule("crawler", new ObjectCreateRule(CrawlerConfig.class));

        digester.addRule("crawler/controller", new ObjectCreateRule(CrawlerControllerConfig.class));
        digester.addRule("crawler/controller", new SetPropertiesRule());
        digester.addRule("crawler/controller", new SetNextRule("setController"));

        digester.addRule("crawler/logger", new ObjectCreateRule(CrawlerLoggerConfig.class));
        digester.addRule("crawler/logger", new SetPropertiesRule());
        digester.addRule("crawler/logger", new SetNextRule("setLogger"));

        digester.addRule("crawler/manager", new ObjectCreateRule(CrawlerManagerConfig.class));
        digester.addRule("crawler/manager", new SetPropertiesRule());
        digester.addRule("crawler/manager", new SetNextRule("setManager"));

        digester.addRule("crawler/threads", new ObjectCreateRule(ArrayList.class));
        digester.addRule("crawler/threads", new SetNextRule("setThreads"));

        digester.addRule("crawler/threads/thread", new ObjectCreateRule(CrawlerThreadConfig.class));
        digester.addRule("crawler/threads/thread", new SetPropertiesRule());
        digester.addRule("crawler/threads/thread", new SetNextRule("add"));

        digester.addRule("crawler/threads/thread/task", new ObjectCreateRule(CrawlerTaskConfig.class));
        digester.addRule("crawler/threads/thread/task", new SetPropertiesRule());
        digester.addRule("crawler/threads/thread/task", new SetNextRule("setTask"));

        digester.addRule("crawler/threads/thread/task/parameter",
                new ObjectCreateRule(CrawlerParameterConfig.class));
        digester.addRule("crawler/threads/thread/task/parameter", new SetPropertiesRule());
        digester.addRule("crawler/threads/thread/task/parameter", new SetNextRule("addParameter"));

        digester.addRule("crawler/threads/thread/schedule", new ObjectCreateRule(CrawlerScheduleConfig.class));
        digester.addRule("crawler/threads/thread/schedule", new SetPropertiesRule());
        digester.addRule("crawler/threads/thread/schedule", new SetNextRule("setSchedule"));

        digester.addRule("crawler/threads/thread/schedule/parameter",
                new ObjectCreateRule(CrawlerParameterConfig.class));
        digester.addRule("crawler/threads/thread/schedule/parameter", new SetPropertiesRule());
        digester.addRule("crawler/threads/thread/schedule/parameter", new SetNextRule("addParameter"));

        config = (CrawlerConfig) digester.parse(new File(aFile));
    } catch (SAXException ex) {
        ex.printStackTrace();
    } catch (IOException ex) {
        ex.printStackTrace();
    }
    return config;
}