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

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

Introduction

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

Prototype

public ObjectCreateRule(Class<?> clazz) 

Source Link

Document

Construct an object create rule with the specified class.

Usage

From source file:com.googlecode.osde.internal.gadgets.parser.MessageBundleXMLParser.java

protected void initialize(Digester digester) {
    digester.addRule("messagebundle", new ObjectCreateRule(MessageBundle.class));
    digester.addFactoryCreate("messagebundle/msg", new ObjectFactory(MessageBundle.Msg.class));
    digester.addRule("messagebundle/msg", new CallMethodRule("setContent", 0));
    digester.addRule("messagebundle/msg", new SetNextRule("addMessage"));
}

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

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: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.googlecode.osde.internal.gadgets.parser.GadgetXMLParser.java

protected void initialize(Digester digester) {
    digester.addRule("Module", new ObjectCreateRule(Module.class));

    digester.addFactoryCreate("Module/ModulePrefs", new ObjectFactory(Module.ModulePrefs.class));
    digester.addRule("Module/ModulePrefs", new SetNextRule("setModulePrefs"));

    digester.addRule("*/Param", new ObjectCreateRule(Param.class));
    digester.addRule("*/Param", new SetPropertiesRule("name", "name"));
    digester.addRule("*/Param", new CallMethodRule("setValue", 0));
    digester.addRule("*/Param", new SetNextRule("addParam"));

    digester.addFactoryCreate("Module/ModulePrefs/Require",
            new ObjectFactory(Module.ModulePrefs.Require.class));
    digester.addRule("Module/ModulePrefs/Require", new SetNextRule("addRequire"));

    digester.addFactoryCreate("Module/ModulePrefs/Optional",
            new ObjectFactory(Module.ModulePrefs.Optional.class));
    digester.addRule("Module/ModulePrefs/Optional", new SetNextRule("addOptional"));

    digester.addFactoryCreate("Module/ModulePrefs/Icon", new ObjectFactory(Module.ModulePrefs.Icon.class));
    digester.addRule("Module/ModulePrefs/Icon", new CallMethodRule("setValue", 0));
    digester.addRule("Module/ModulePrefs/Icon", new SetNextRule("addIcon"));

    digester.addFactoryCreate("Module/ModulePrefs/Link", new ObjectFactory(Module.ModulePrefs.Link.class));
    digester.addRule("Module/ModulePrefs/Link", new SetNextRule("addLink"));

    digester.addFactoryCreate("Module/ModulePrefs/Locale", new ObjectFactory(Module.ModulePrefs.Locale.class));
    digester.addRule("Module/ModulePrefs/Locale", new SetNextRule("addLocale"));

    digester.addFactoryCreate("Module/ModulePrefs/Locale/msg", new ObjectFactory(MessageBundle.Msg.class));
    digester.addRule("Module/ModulePrefs/Locale/msg", new CallMethodRule("setContent", 0));
    digester.addRule("Module/ModulePrefs/Locale/msg", new SetNextRule("addInlineMessage"));

    digester.addFactoryCreate("Module/ModulePrefs/OAuth", new ObjectFactory(Module.ModulePrefs.OAuth.class));
    digester.addRule("Module/ModulePrefs/OAuth", new SetNextRule("addOAuth"));

    digester.addFactoryCreate("Module/ModulePrefs/OAuth/Service",
            new ObjectFactory(Module.ModulePrefs.OAuth.Service.class));
    digester.addRule("Module/ModulePrefs/OAuth/Service", new SetNextRule("addService"));

    digester.addFactoryCreate("Module/ModulePrefs/OAuth/Service/Request",
            new ObjectFactory(Module.ModulePrefs.OAuth.Service.Request.class));
    digester.addRule("Module/ModulePrefs/OAuth/Service/Request", new SetNextRule("setRequest"));

    digester.addFactoryCreate("Module/ModulePrefs/OAuth/Service/Access",
            new ObjectFactory(Module.ModulePrefs.OAuth.Service.Access.class));
    digester.addRule("Module/ModulePrefs/OAuth/Service/Access", new SetNextRule("setAccess"));

    digester.addFactoryCreate("Module/ModulePrefs/OAuth/Service/Authorization",
            new ObjectFactory(Module.ModulePrefs.OAuth.Service.Authorization.class));
    digester.addRule("Module/ModulePrefs/OAuth/Service/Authorization", new SetNextRule("setAuthorization"));

    digester.addFactoryCreate("Module/ModulePrefs/Preload",
            new ObjectFactory(Module.ModulePrefs.Preload.class));
    digester.addRule("Module/ModulePrefs/Preload", new SetNextRule("addPreload"));

    digester.addFactoryCreate("Module/UserPref", new ObjectFactory(Module.UserPref.class));
    digester.addRule("Module/UserPref", new SetNextRule("addUserPref"));

    digester.addFactoryCreate("Module/UserPref/EnumValue", new ObjectFactory(Module.UserPref.EnumValue.class));
    digester.addRule("Module/UserPref/EnumValue", new SetNextRule("addEnumValue"));

    digester.addFactoryCreate("Module/Content", new ObjectFactory(Module.Content.class));
    digester.addRule("Module/Content", new CallMethodRule("setValue", 0));
    digester.addRule("Module/Content", new SetNextRule("addContent"));
}

From source file:com.hextilla.cardbox.xml.GameParser.java

public GameParser() {
    // create and configure our digester
    _digester = new Digester() {
        @Override//from   w w  w  .  j  ava2s. co  m
        public void fatalError(SAXParseException exception) throws SAXException {
            // the standard digester needlessly logs a fatal warning here
            if (errorHandler != null) {
                errorHandler.fatalError(exception);
            }
        }
    };

    // add the rules to parse the GameDefinition and its fields
    _digester.addObjectCreate("game", getGameDefinitionClass());
    _digester.addRule("game/ident", new SetFieldRule("ident"));
    _digester.addRule("game/controller", new SetFieldRule("controller"));
    _digester.addRule("game/manager", new SetFieldRule("manager"));

    _digester.addRule("game/match", new Rule() {
        @Override
        public void begin(String namespace, String name, Attributes attrs) throws Exception {
            String type = attrs.getValue("type");
            if (StringUtil.isBlank(type)) {
                String errmsg = "<match> block missing type attribute.";
                throw new Exception(errmsg);
            }
            addMatchParsingRules(digester, type);
        }

        @Override
        public void end(String namespace, String name) throws Exception {
            MatchConfig match = (MatchConfig) digester.pop();
            ((GameDefinition) digester.peek()).match = match;
        }
    });

    // these rules handle customization parameters
    _digester.addRule("game/params", new ObjectCreateRule(ArrayList.class));
    _digester.addSetNext("game/params", "setParams", List.class.getName());
    addParameter("game/params/ai", AIParameter.class);
    addParameter("game/params/range", RangeParameter.class);
    addParameter("game/params/choice", ChoiceParameter.class);
    addParameter("game/params/toggle", ToggleParameter.class);
    addParameter("game/params/file", FileParameter.class);

    // add a rule to put the parsed definition onto our list
    _digester.addSetNext("game", "add", Object.class.getName());
}

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 w  ww  .  j a v a2s .  co  m
    return result;
}

From source file:com.hextilla.cardbox.xml.GameParser.java

protected void addParameter(String path, Class<?> pclass) {
    _digester.addRule(path, new ObjectCreateRule(pclass));
    _digester.addRule(path, new SetPropertyFieldsRule(false));
    _digester.addSetNext(path, "add", Object.class.getName());
}

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

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

    FileReader fileReader = new FileReader(fileName);
    digester.addRule("cruiseregistry", new ObjectCreateRule(CruiseRegistry.class));
    digester.addRule("cruiseregistry/cruiseImpls/cruiseImpl",
            new CallMethodRule("addCruiseImpl", 0, new Class[] { Class.class }));
    CruiseRegistry result = (CruiseRegistry) digester.parse(fileReader);
    fileReader.close();//from w  w  w . j a v a  2 s. c  o m
    return result;
}

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

/**
 * ??/*  ww  w .  ja  va  2 s .  c o  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;
}