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

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

Introduction

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

Prototype

public void addSetNext(String pattern, String methodName) 

Source Link

Document

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

Usage

From source file:eu.scape_project.planning.services.pa.PreservationActionRegistryFactory.java

static public List<PreservationActionRegistryDefinition> getAvailableRegistries()
        throws PlanningServiceException {
    ArrayList<PreservationActionRegistryDefinition> allRegistries = new ArrayList<PreservationActionRegistryDefinition>();

    String configFile = "data/services/PreservationActionRegistries.xml";
    InputStream config = Thread.currentThread().getContextClassLoader().getResourceAsStream(configFile);

    if (config == null) {
        throw new PlanningServiceException("Config file not found: " + configFile);
    }/*w w  w . j a va2  s .c o m*/

    Digester digester = new Digester();
    digester.setValidating(false);
    digester.setErrorHandler(new StrictErrorHandler());

    digester.push(allRegistries);
    digester.addObjectCreate("*/registry", PreservationActionRegistryDefinition.class);
    digester.addBeanPropertySetter("*/registry/shortname", "shortname");
    digester.addBeanPropertySetter("*/registry/logo", "logo");
    digester.addBeanPropertySetter("*/registry/url", "url");
    digester.addBeanPropertySetter("*/registry/type", "type");
    digester.addBeanPropertySetter("*/registry/active", "active");
    digester.addSetNext("*/registry", "add");

    try {
        digester.setUseContextClassLoader(true);
        digester.parse(config);
    } catch (Exception e) {
        throw new PlanningServiceException(e);
    }
    return allRegistries;
}

From source file:net.sf.mcf2pdf.mcfglobals.McfProductCatalogue.java

private static McfProductCatalogue readV6(InputStream in) throws IOException, SAXException {
    Digester digester = new Digester();
    digester.addObjectCreate("description", McfProductCatalogueImpl.class);
    digester.addObjectCreate("description/product", McfAlbumTypeImpl.class);
    DigesterUtil.addSetProperties(digester, "description/product", getAlbumSpecialAttributes());
    DigesterUtil.addSetProperties(digester, "description/product/usablesize", getUsableSizeAttributes());
    digester.addCallMethod("description/product/spines/spine", "addSpine", 2,
            new String[] { Integer.class.getName(), Integer.class.getName() });
    digester.addCallParam("description/product/spines/spine", 0, "pages");
    digester.addCallParam("description/product/spines/spine", 1, "width");
    digester.addSetNext("description/product", "addAlbumType");

    return digester.parse(in);
}

From source file:net.sf.mcf2pdf.mcfglobals.McfProductCatalogue.java

public static McfProductCatalogue read(InputStream in, CatalogueVersion version)
        throws IOException, SAXException {
    if (version == CatalogueVersion.V6) {
        return readV6(in);
    }//from   w w  w  . j  a  va  2s.  co m

    // PRE_V6
    Digester digester = new Digester();
    digester.addObjectCreate("fotobookdefinitions", McfProductCatalogueImpl.class);
    digester.addObjectCreate("fotobookdefinitions/album", McfAlbumTypeImpl.class);
    DigesterUtil.addSetProperties(digester, "fotobookdefinitions/album", getAlbumSpecialAttributes());
    DigesterUtil.addSetProperties(digester, "fotobookdefinitions/album/usablesize", getUsableSizeAttributes());
    digester.addCallMethod("fotobookdefinitions/album/spines/spine", "addSpine", 2,
            new String[] { Integer.class.getName(), Integer.class.getName() });
    digester.addCallParam("fotobookdefinitions/album/spines/spine", 0, "pages");
    digester.addCallParam("fotobookdefinitions/album/spines/spine", 1, "width");
    digester.addSetNext("fotobookdefinitions/album", "addAlbumType");

    return digester.parse(in);
}

From source file:br.univali.celine.lms.config.LMSConfig.java

private static void doBuildConfig(String path) throws Exception {

    Digester d = new Digester();
    d.setUseContextClassLoader(true);/*from  ww  w . java2s .  c om*/
    d.push(config);

    d.addCallMethod("*/courses-folder", "setCoursesFolder", 0);
    //        d.addCallMethod("*/login-page", "setLoginPage", 0);
    d.addCallMethod("*/registerCourseOnImport", "setRegisterCourseOnImport", 0);
    d.addCallMethod("*/registerUserOnInsertCourse", "setRegisterUserOnInsert", 0);
    d.addCallMethod("*/error-page", "setErrorPage", 0);
    d.addCallMethod("*/lmsIntegration", "setLMSIntegration", 0);

    d.addObjectCreate("*/database-source/rdb", RDBDAO.class);
    d.addSetNestedProperties("*/database-source/rdb");
    d.addSetNext("*/database-source/rdb", "setDAO");

    d.addObjectCreate("*/database-source/xml", XMLDAO.class);
    d.addCallMethod("*/database-source/xml", "setFileName", 0);
    d.addSetNext("*/database-source/xml", "setDAO");

    d.addObjectCreate("*/database-source/bean", "", "class"); // devido a um bug da versao 3.3 tive que fazer esse workaround !!!
    //d.addObjectCreate("*/database-source/bean", "class", DAO.class); 
    d.addSetNext("*/database-source/bean", "setDAO");

    d.addRule("*/database-source/bean/bean-attribute", new BeanSetterAttribute());

    String fileName = path + "/celine-config.xml";
    java.io.File srcfile = new java.io.File(fileName);
    d.parse(srcfile);

    if (config.dao == null)
        throw new Exception("DAO is not defined at celine-config.xml");

    config.dao.initialize();

}

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

private static void addMeasureRules(final Digester digester, final String pattern) {
    digester.addObjectCreate(pattern, Measure.class);
    digester.addSetNext(pattern, "setMeasure");
    digester.addSetProperties(pattern, "ID", "uri");
    digester.addBeanPropertySetter(pattern + "/name");
    digester.addBeanPropertySetter(pattern + "/description");

    PlanParser.addAttributeRules(digester, pattern + "/attribute");
    // scale will be set by global rule
}

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

private static void addAttributeRules(final Digester digester, final String pattern) {
    digester.addObjectCreate(pattern, Attribute.class);
    digester.addSetNext(pattern, "setAttribute");
    digester.addSetProperties(pattern, "ID", "uri");
    digester.addBeanPropertySetter(pattern + "/name");
    digester.addBeanPropertySetter(pattern + "/description");

    digester.addObjectCreate(pattern + "/category", CriterionCategory.class);
    digester.addSetProperties(pattern + "/category", "ID", "uri");
    digester.addSetProperties(pattern + "/category", "scope", "scope");
    digester.addBeanPropertySetter(pattern + "/category/name");
    digester.addSetNext(pattern + "/category", "setCategory");

}

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

/**
 * 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)
 * //from www. j a va 2 s . c om
 * @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:net.revelc.code.formatter.model.RuleSet.java

/**
 * Adds the rule instances./*from  w  w w .j a  v  a2 s . c  o  m*/
 *
 * @param digester the digester
 * @see org.apache.commons.digester3.RuleSetBase#addRuleInstances(org.apache.commons.digester.Digester)
 */
@Override
public void addRuleInstances(Digester digester) {
    digester.addObjectCreate("profiles", Profiles.class);
    digester.addObjectCreate(PROFILES_PROFILE, Profile.class);
    digester.addObjectCreate(PROFILES_PROFILE_SETTING, Setting.class);

    digester.addSetNext(PROFILES_PROFILE, "addProfile");
    digester.addSetNext(PROFILES_PROFILE_SETTING, "addSetting");

    digester.addSetProperties(PROFILES_PROFILE, "kind", "kind");
    digester.addSetProperties(PROFILES_PROFILE_SETTING, "id", "id");
    digester.addSetProperties(PROFILES_PROFILE_SETTING, "value", "value");
}