Example usage for org.apache.commons.digester3 Digester addSetProperties

List of usage examples for org.apache.commons.digester3 Digester addSetProperties

Introduction

In this page you can find the example usage for org.apache.commons.digester3 Digester addSetProperties.

Prototype

public void addSetProperties(String pattern) 

Source Link

Document

Add a "set properties" rule for the specified parameters.

Usage

From source file:eu.scape_project.planning.xml.PlanParser.java

/**
 * This method adds rules for name, properties, scales, modes and mappings
 * only! Rules for importing measured values of alternatives are defined
 * seperately in importProjects()! (Refactored to its own method by Kevin)
 * //w ww  . ja  v a 2 s.co m
 * @param digester
 *            the digester
 */
private static void addTreeParsingRulesToDigester(final Digester digester) {
    digester.addObjectCreate("*/plan/tree", ObjectiveTree.class);
    digester.addSetProperties("*/plan/tree");
    digester.addSetNext("*/plan/tree", "setTree");

    digester.addObjectCreate("*/node/node", Node.class);
    digester.addSetProperties("*/node/node");
    digester.addSetNext("*/node/node", "addChild");

    digester.addCallMethod("*/node/description", "setDescription", 0);

    digester.addObjectCreate("*/plan/tree/node", Node.class);
    digester.addSetProperties("*/plan/tree/node");
    digester.addSetNext("*/plan/tree/node", "setRoot");

    digester.addObjectCreate("*/leaf", Leaf.class);
    digester.addSetProperties("*/leaf");
    digester.addSetNext("*/leaf", "addChild");
    digester.addFactoryCreate("*/leaf/aggregationMode", SampleAggregationModeFactory.class);
    digester.addSetNext("*/leaf/aggregationMode", "setAggregationMode");

    digester.addCallMethod("*/leaf/description", "setDescription", 0);

    PlanParser.addMeasureRules(digester, "*/measure");

    /*
     * for each scale-type a set of rules
     */
    PlanParser.addCreateScale(digester, BooleanScale.class);
    PlanParser.addCreateScale(digester, FloatRangeScale.class);
    PlanParser.addCreateScale(digester, FloatScale.class);
    PlanParser.addCreateScale(digester, IntegerScale.class);
    PlanParser.addCreateScale(digester, IntRangeScale.class);
    PlanParser.addCreateScale(digester, OrdinalScale.class);
    PlanParser.addCreateScale(digester, PositiveFloatScale.class);
    PlanParser.addCreateScale(digester, PositiveIntegerScale.class);
    PlanParser.addCreateScale(digester, YanScale.class);
    PlanParser.addCreateScale(digester, FreeStringScale.class);

    /*
     * for each transformer type a set of rules
     */
    digester.addObjectCreate("*/leaf/numericTransformer", NumericTransformer.class);
    digester.addSetProperties("*/leaf/numericTransformer");
    digester.addFactoryCreate("*/leaf/numericTransformer/mode", TransformationModeFactory.class);
    digester.addSetNext("*/leaf/numericTransformer/mode", "setMode");
    digester.addBeanPropertySetter("*/leaf/numericTransformer/thresholds/threshold1", "threshold1");
    digester.addBeanPropertySetter("*/leaf/numericTransformer/thresholds/threshold2", "threshold2");
    digester.addBeanPropertySetter("*/leaf/numericTransformer/thresholds/threshold3", "threshold3");
    digester.addBeanPropertySetter("*/leaf/numericTransformer/thresholds/threshold4", "threshold4");
    digester.addBeanPropertySetter("*/leaf/numericTransformer/thresholds/threshold5", "threshold5");
    digester.addSetNext("*/leaf/numericTransformer", "setTransformer");

    // digester.addObjectCreate("*/numericTransformer/thresholds",
    // LinkedHashMap.class);
    // digester.addSetNext("*/numericTransformer/thresholds",
    // "setThresholds");
    // digester.addFactoryCreate("*/thresholds/threshold",
    // NumericTransformerThresholdFactory.class);

    digester.addObjectCreate("*/leaf/ordinalTransformer", OrdinalTransformer.class);
    digester.addSetProperties("*/leaf/ordinalTransformer");
    digester.addSetNext("*/leaf/ordinalTransformer", "setTransformer");

    digester.addObjectCreate("*/ordinalTransformer/mappings", LinkedHashMap.class);
    digester.addSetNext("*/ordinalTransformer/mappings", "setMapping");
    digester.addFactoryCreate("*/mappings/mapping", OrdinalTransformerMappingFactory.class);

    digester.addRule("*/mappings/mapping", new CallMethodRule(1, "put", 2)); // method
                                                                             // with
                                                                             // two
                                                                             // params
    digester.addCallParam("*/mappings/mapping", 0, "ordinal"); // use
                                                               // attribute
                                                               // "ordinal"
                                                               // as first
                                                               // argument
    digester.addCallParam("*/mappings/mapping", 1, true); // and the object
                                                          // on the stack as
                                                          // second
}

From source file:eu.scape_project.planning.xml.PlanParser.java

/**
 * Create a rule for reading an upload entry for the given location
 * <code>pattern</code>, and use the <code>method</code> to set the upload
 * object./*  w  w w.j av a  2s  .c o m*/
 * 
 * @param digester
 *            the digester
 * @param pattern
 *            the location pattern
 * @param method
 *            a method name of the parent object
 * @param objectType
 *            class of object to create
 */
private static void addCreateUpload(final Digester digester, final String pattern, final String method,
        final Class<?> objectType) {
    digester.addObjectCreate(pattern, objectType);
    digester.addSetProperties(pattern);
    if ((method != null) && (!"".equals(method))) {
        digester.addSetNext(pattern, method);
    }
    /*
     * Note: It is not possible to read element data, process it and pass it
     * to a function with a simple digester Rule, neither you can define a
     * factory to read the data of an element.
     * 
     * So we have to do it the other way round: (remember: the function
     * added last is executed first!)
     */
    // 1. Create a BinaryDataWrapper if a <data> element is encountered
    digester.addObjectCreate(pattern + "/data", BinaryDataWrapper.class);
    // 3. Finally call setData on the BinaryDataWrapper(!) on top with the
    // object next to top as argument
    // The BinaryDataWrapper will call setData on to object next to top with
    // the previously read and decoded data
    digester.addSetTop(pattern + "/data", "setData");
    // 2. Call setFromBase64Encoded on the BinaryDataWrapper to read the
    // elements content
    digester.addCallMethod(pattern + "/data", "setFromBase64Encoded", 0);

}

From source file:br.univali.celine.scorm2004_4th.model.cam.ContentPackageReader20044th.java

protected void addCompletionThreshold(Digester d) {

    d.addObjectCreate("*/item/completionThreshold", CompletionThreshold.class);
    d.addSetNext("*/item/completionThreshold", "setCompletionThreshold");
    d.addSetProperties("*/item/completionThreshold");

}

From source file:br.univali.celine.scorm2004_4th.model.cam.ContentPackageReader20044th.java

@Override
protected void beforeOrganizationItemSetNext(Digester d) {
    super.beforeOrganizationItemSetNext(d);

    d.addObjectCreate("*/item/data/map", AdlcpMap.class);
    d.addSetNext("*/item/data/map", "addAdlcpMap");
    d.addSetProperties("*/item/data/map");

}

From source file:eu.scape_project.planning.xml.PlanParser.java

private static void addCreateScale(final Digester digester, final Class c) {
    String name = c.getName();/*  w  w w . jav  a  2s.  c o m*/
    name = name.substring(name.lastIndexOf(".") + 1);
    name = name.substring(0, 1).toLowerCase() + name.substring(1);

    String pattern = "*/" + name;
    digester.addObjectCreate(pattern, c);
    digester.addSetProperties(pattern);
    digester.addSetNext(pattern, "setScale");
}

From source file:eu.scape_project.planning.xml.PlanParser.java

private static void addCreateResultValue(final Digester digester, final Class c) {
    String name = c.getName();/*w w  w .j a  va  2s  . com*/
    name = name.substring(name.lastIndexOf(".") + 1);
    name = name.substring(0, 1).toLowerCase() + name.substring(1);

    String pattern = "*/" + name.replace("Value", "Result");
    digester.addObjectCreate(pattern, c);
    digester.addSetProperties(pattern);
    digester.addBeanPropertySetter(pattern + "/value");
    digester.addBeanPropertySetter(pattern + "/comment");
    digester.addSetNext(pattern, "add");
}

From source file:com.dotosoft.dot4command.config.xml.ConfigRuleSet.java

private void addCommandRules(Digester digester) {
    digester.addObjectCreate("*/" + getCommandElement(), null, getClassAttribute());
    digester.addSetProperties("*/" + getCommandElement());
    digester.addRule("*/" + getCommandElement(), new ConfigRegisterRule(nameAttribute));
}

From source file:com.dotosoft.dot4command.config.xml.ConfigRuleSet.java

private void addChainRules(Digester digester) {
    digester.addObjectCreate("*/" + getChainElement(), getChainClass(), getClassAttribute());
    digester.addSetProperties("*/" + getChainElement());
    digester.addRule("*/" + getChainElement(), new ConfigRegisterRule(nameAttribute));
}

From source file:com.dotosoft.dot4command.config.xml.ConfigRuleSet.java

private void addCatalogRules(Digester digester) {
    digester.addRule("*/" + getCatalogElement(), new ConfigCatalogRule(nameAttribute, catalogClass));
    digester.addSetProperties("*/" + getCatalogElement());
}

From source file:br.univali.celine.scorm.model.cam.ContentPackageReader20043rd.java

protected void addRules(Digester d) {

    // ver captulos 3.4, 5.1 e 5.2 do CAM Book

    d.addSetProperties("manifest");

    addMetadata(d);//w w  w.j ava  2  s .  co  m
    addOrganizations(d);
    addResources(d);

}