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, String[] attributeNames, String[] propertyNames) 

Source Link

Document

Add a "set properties" rule with overridden parameters.

Usage

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

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

    d.addSetProperties("manifest/organizations/organization", "sharedDataGlobalToSystem",
            "sharedDataGlobalToSystem");

}

From source file:br.univali.celine.scorm1_2.model.cam.ContentPackageReader12.java

@Override
protected void addResource(Digester d) {
    super.addResource(d);
    d.addSetProperties("manifest/resources/resource", "scormtype", "scormType");
}

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:net.revelc.code.formatter.model.RuleSet.java

/**
 * Adds the rule instances./*  w  ww  .j  a  v  a2 s .co 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");
}

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

protected void addOrganizations(Digester d) {
    d.addObjectCreate("manifest/organizations", Organizations.class);
    d.addSetProperties("manifest/organizations", "default", "defaultOrg");
    d.addSetNext("manifest/organizations", "setOrganizations");

    addOrganization(d);/*from  w w w .  j a  v  a 2  s  . c om*/

}

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

protected void addResource(Digester d) {
    d.addObjectCreate("manifest/resources/resource", Resource.class);
    d.addSetNext("manifest/resources/resource", "addResource");
    d.addSetProperties("manifest/resources/resource", "scormType", "scormType");
    d.addSetProperties("manifest/resources/resource", "base", "xmlBase");
    d.addSetProperties("manifest/resources/resource");

}

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

/**
 * Detect the version of the given XML representation of plans. If the
 * version of the XML representation is not up to date, necessary
 * transformations are applied.//from  w w w.  ja v a2  s  .c  om
 * 
 * @param importData
 * @return null if the transformation fails, otherwise an up to date XML
 *         representation
 * @throws IOException
 *             if parsing the XML representation fails
 * @throws SAXException
 *             if parsing the XML representation fails
 */
public String getCurrentVersionData(final InputStream in, final String tempPath,
        final List<String> appliedTransformations) throws PlatoException {
    String originalFile = tempPath + "_original.xml";
    try {
        FileUtils.writeToFile(in, new FileOutputStream(originalFile));

        /** check for the version of the file **/

        // The version of the read xml file is unknown, so it is not possible to
        // validate it
        // moreover, in old plans the version attribute was on different
        // nodes(project, projects),
        // with a different name (fileVersion)
        // to be backwards compatible we create rules for all these attributes
        fileVersion = "xxx";
        SAXParserFactory factory = SAXParserFactory.newInstance();
        factory.setNamespaceAware(false);
        Digester d = new Digester(factory.newSAXParser());

        d.setValidating(false);
        // StrictErrorHandler errorHandler = new StrictErrorHandler();
        // d.setErrorHandler(errorHandler);
        d.push(this);
        // to read the version we have to support all versions:
        d.addSetProperties("*/projects", "version", "fileVersion");
        // manually migrated projects may have the file version in the node
        // projects/project
        d.addSetProperties("*/projects/project", "version", "fileVersion");
        // pre V1.3 version info was stored in the project node
        d.addSetProperties("*/project", "version", "fileVersion");
        // since V1.9 the root node is plans:
        d.addSetProperties("plans", "version", "fileVersion");

        InputStream inV = new FileInputStream(originalFile);
        d.parse(inV);
        inV.close();
        /** this could be more sophisticated, but for now this is enough **/
        String version = "1.0";
        if (fileVersion != null) {
            version = fileVersion;
        }

        String fileTo = originalFile;
        String fileFrom = originalFile;

        boolean success = true;
        if ("xxx".equals(version)) {
            fileFrom = fileTo;
            fileTo = fileFrom + "_V1.3.xml";
            /** this is an old export file, transform it to the 1.3 schema **/
            success = transformXmlData(fileFrom, fileTo, "data/xslt/Vxxx-to-V1.3.xsl");
            appliedTransformations.add("Vxxx-to-V1.3.xsl");
            version = "1.3";
        }
        if (success && "1.3".equals(version)) {
            fileFrom = fileTo;
            fileTo = fileFrom + "_V1.9.xml";
            success = transformXmlData(fileFrom, fileTo, "data/xslt/V1.3-to-V1.9.xsl");
            appliedTransformations.add("V1.3-to-V1.9.xsl");
            version = "1.9";
        }
        // with release of Plato 2.0 and its schema ProjectExporter creates
        // documents with version 2.0
        if (success && "1.9".equals(version)) {
            version = "2.0";
        }
        if (success && "2.0".equals(version)) {
            // transform the document to version 2.1
            fileFrom = fileTo;
            fileTo = fileFrom + "_V2.1.xml";
            success = transformXmlData(fileFrom, fileTo, "data/xslt/V2.0-to-V2.1.xsl");
            appliedTransformations.add("V2.0-to-V2.1.xsl");
            version = "2.1";
        }
        if (success && "2.1".equals(version)) {
            // transform the document to version 2.1.2
            fileFrom = fileTo;
            fileTo = fileFrom + "_V2.1.2.xml";
            success = transformXmlData(fileFrom, fileTo, "data/xslt/V2.1-to-V2.1.2.xsl");
            appliedTransformations.add("V2.1-to-V2.1.2.xsl");
            version = "2.1.2";
        }
        if (success && "2.1.1".equals(version)) {
            // transform the document to version 2.1.2
            fileFrom = fileTo;
            fileTo = fileFrom + "_V2.1.2.xml";
            success = transformXmlData(fileFrom, fileTo, "data/xslt/V2.1.1-to-V2.1.2.xsl");
            appliedTransformations.add("V2.1.1-to-V2.1.2.xsl");
            version = "2.1.2";
        }

        if (success && "2.1.2".equals(version)) {
            // transform the document to version 3.0.0
            fileFrom = fileTo;
            fileTo = fileFrom + "_V3.0.0.xml";
            success = transformXmlData(fileFrom, fileTo, "data/xslt/V2.1.2-to-V3.0.0.xsl");
            appliedTransformations.add("V2.1.2-to-V3.0.0.xsl");
            version = "3.0.0";
        }
        if (success && "3.0.0".equals(version)) {
            // transform the document to version 3.0.1
            fileFrom = fileTo;
            fileTo = fileFrom + "_V3.0.1.xml";
            success = transformXmlData(fileFrom, fileTo, "data/xslt/V3.0.0-to-V3.0.1.xsl");
            appliedTransformations.add("V3.0.0-to-V3.0.1.xsl");
            version = "3.0.1";
        }
        if (success && "3.0.1".equals(version)) {
            // transform the document to version 3.9.0
            fileFrom = fileTo;
            fileTo = fileFrom + "_V3.9.0.xml";
            success = transformXmlData(fileFrom, fileTo, "data/xslt/V3.0.1-to-V3.9.0.xsl");
            appliedTransformations.add("V3.0.1-to-V3.9.0.xsl");
            version = "3.9.0";
        }
        if (success && "3.9.0".equals(version)) {
            // transform the document to version 3.9.9
            fileFrom = fileTo;
            fileTo = fileFrom + "_V3.9.9.xml";
            success = transformXmlData(fileFrom, fileTo, "data/xslt/V3.9.0-to-V3.9.9.xsl");
            appliedTransformations.add("V3.9.0-to-V3.9.9.xsl");
            version = "3.9.9";
        }
        if (success && "3.9.9".equals(version)) {
            // transform the document to version 4.0.0
            fileFrom = fileTo;
            fileTo = fileFrom + "_V4.0.1.xml";
            success = transformXmlData(fileFrom, fileTo, "data/xslt/V3.9.9-to-V4.0.1.xsl");
            appliedTransformations.add("V3.9.9-to-V4.0.1.xsl");
            version = "4.0.1";
        }
        if (success && "4.0.1".equals(version)) {
            // transform the document to version 4.0.0
            fileFrom = fileTo;
            fileTo = fileFrom + "_V4.0.2.xml";
            success = transformXmlData(fileFrom, fileTo, "data/xslt/V4.0.1-to-V4.0.2.xsl");
            appliedTransformations.add("V4.0.1-to-V4.0.2.xsl");
            version = "4.0.2";
        }

        if (success) {
            return fileTo;
        } else {
            return null;
        }
    } catch (Exception e) {
        throw new PlatoException("Failed to update plan to current version.", e);
    }
}

From source file:com.dreikraft.axbo.sound.SoundPackageUtil.java

/**
 * Reads meta information from package-info.xml (as stream)
 *
 * @param packageInfoXmlStream the package-info.xml FileInputStream
 * @return the sound package info read from the stream
 * @throws com.dreikraft.infactory.sound.SoundPackageException encapsulates
 * all low level (IO) exceptions/* w  ww .ja  v  a 2  s .  c  o  m*/
 */
public static SoundPackage readPackageInfo(InputStream packageInfoXmlStream) throws SoundPackageException {
    Digester digester = new Digester();
    digester.setValidating(false);
    digester.setRules(new ExtendedBaseRules());

    digester.addObjectCreate(SoundPackageNodes.axboSounds.toString(), SoundPackage.class);
    digester.addBeanPropertySetter(SoundPackageNodes.axboSounds + SL + SoundPackageNodes.packageName, "name");
    digester.addBeanPropertySetter(SoundPackageNodes.axboSounds + SL + SoundPackageNodes.creator, "creator");
    digester.addBeanPropertySetter(SoundPackageNodes.axboSounds + SL + SoundPackageNodes.creationDate,
            "creationDate");
    digester.addBeanPropertySetter(SoundPackageNodes.axboSounds + SL + SoundPackageNodes.security + SL
            + SoundPackageNodes.serialNumber, "serialNumber");
    digester.addBeanPropertySetter(
            SoundPackageNodes.axboSounds + SL + SoundPackageNodes.security + SL + SoundPackageNodes.enforced,
            "securityEnforced");

    digester.addObjectCreate(SoundPackageNodes.axboSounds + SL + SoundPackageNodes.sounds, ArrayList.class);
    digester.addSetNext(SoundPackageNodes.axboSounds + SL + SoundPackageNodes.sounds, "setSounds");

    digester.addObjectCreate(
            SoundPackageNodes.axboSounds + SL + SoundPackageNodes.sounds + SL + SoundPackageNodes.sound,
            Sound.class);
    digester.addSetNext(
            SoundPackageNodes.axboSounds + SL + SoundPackageNodes.sounds + SL + SoundPackageNodes.sound, "add");
    digester.addSetProperties(
            SoundPackageNodes.axboSounds + SL + SoundPackageNodes.sounds + SL + SoundPackageNodes.sound, "id",
            "id");
    digester.addBeanPropertySetter(SoundPackageNodes.axboSounds + SL + SoundPackageNodes.sounds + SL
            + SoundPackageNodes.sound + SL + SoundPackageNodes.displayName, "name");

    digester.addObjectCreate(SoundPackageNodes.axboSounds + SL + SoundPackageNodes.sounds + SL
            + SoundPackageNodes.sound + SL + SoundPackageNodes.axboFile, SoundFile.class);
    digester.addSetNext(SoundPackageNodes.axboSounds + SL + SoundPackageNodes.sounds + SL
            + SoundPackageNodes.sound + SL + SoundPackageNodes.axboFile, "setAxboFile");
    digester.addBeanPropertySetter(SoundPackageNodes.axboSounds + SL + SoundPackageNodes.sounds + SL
            + SoundPackageNodes.sound + SL + SoundPackageNodes.axboFile + SL + SoundPackageNodes.path);
    digester.addBeanPropertySetter(SoundPackageNodes.axboSounds + SL + SoundPackageNodes.sounds + SL
            + SoundPackageNodes.sound + SL + SoundPackageNodes.axboFile + SL + SoundPackageNodes.type);

    try {
        SoundPackage soundPackage = (SoundPackage) digester.parse(packageInfoXmlStream);
        return soundPackage;
    } catch (Exception ex) {
        throw new SoundPackageException(ex);
    }
}

From source file:main.java.com.omicronlab.avro.PhoneticXmlLoader.java

public Data getData() throws IOException, SAXException {
    Digester digester = new Digester();
    digester.setValidating(false);//from   w  w w  .j  a  v  a  2 s . c om

    digester.addObjectCreate("data", Data.class);
    digester.addBeanPropertySetter("data/classes/vowel", "vowel");
    digester.addBeanPropertySetter("data/classes/consonant", "consonant");
    digester.addBeanPropertySetter("data/classes/punctuation", "punctuation");
    digester.addBeanPropertySetter("data/classes/casesensitive", "casesensitive");

    digester.addObjectCreate("data/patterns/pattern", Pattern.class);
    digester.addBeanPropertySetter("data/patterns/pattern/find", "find");
    digester.addBeanPropertySetter("data/patterns/pattern/replace", "replace");

    digester.addObjectCreate("data/patterns/pattern/rules/rule", Rule.class);
    digester.addBeanPropertySetter("data/patterns/pattern/rules/rule/replace", "replace");

    digester.addObjectCreate("data/patterns/pattern/rules/rule/find/match", Match.class);
    digester.addBeanPropertySetter("data/patterns/pattern/rules/rule/find/match", "value");
    digester.addSetProperties("data/patterns/pattern/rules/rule/find/match", "type", "type");
    digester.addSetProperties("data/patterns/pattern/rules/rule/find/match", "scope", "scope");

    digester.addSetNext("data/patterns/pattern/rules/rule/find/match", "addMatch");

    digester.addSetNext("data/patterns/pattern/rules/rule", "addRule");

    digester.addSetNext("data/patterns/pattern", "addPattern");

    Data data = (Data) digester.parse(this.url);
    return data;
}