List of usage examples for org.apache.commons.digester3 Digester addBeanPropertySetter
public void addBeanPropertySetter(String pattern, String propertyName)
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 ww.java 2 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: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/* ww w .j av 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 www . jav a2s .co m*/ 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; }
From source file:com.smartapps.avro.PhoneticXmlLoader.java
public Data getData() throws IOException, SAXException { Digester digester = new Digester(); digester.setValidating(false);//from w w w . j a v a2s . c o m 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); // InputStreamReader isr = new InputStreamReader(is, "UTF-8"); Data data = (Data) digester.parse(is); return data; }
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. j a v a 2s.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:org.gbif.metadata.eml.EmlFactory.java
/** * Uses rule based parsing to read the EML XML and build the EML model. * Note the following: - Metadata provider rules are omitted on the assumption that the provider is the same as the * creator - Contact rules are omitted on the assumption that contacts are covered by the creator and associated * parties - Publisher rules are omitted on the assumption the publisher is covered by the creator and associated * parties//from w w w . java2s . co m * * @param xml To read. Note this will be closed before returning * * @return The EML populated * * @throws IOException If the Stream cannot be read from * @throws SAXException If the XML is not well formed */ public static Eml build(InputStream xml) throws IOException, SAXException, ParserConfigurationException { Digester digester = new Digester(); digester.setNamespaceAware(true); // push the EML object onto the stack Eml eml = new Eml(); digester.push(eml); // add the rules // language as xml:lang attribute digester.addCallMethod("eml", "setMetadataLanguage", 1); digester.addCallParam("eml", 0, "xml:lang"); // guid as packageId attribute digester.addCallMethod("eml", "setPackageId", 1); digester.addCallParam("eml", 0, "packageId"); // alternative ids digester.addCallMethod("eml/dataset/alternateIdentifier", "addAlternateIdentifier", 1); digester.addCallParam("eml/dataset/alternateIdentifier", 0); // title together with language digester.addCallMethod("eml/dataset/title", "setTitle", 2); digester.addCallParam("eml/dataset/title", 0); digester.addCallParam("eml/dataset/title", 1, "xml:lang"); digester.addBeanPropertySetter("eml/dataset/language", "language"); // descriptions, broken into multiple paragraphs digester.addCallMethod("eml/dataset/abstract/para", "addDescriptionPara", 1); digester.addCallParam("eml/dataset/abstract/para", 0); digester.addBeanPropertySetter("eml/dataset/additionalInfo/para", "additionalInfo"); digester.addRule("eml/dataset/intellectualRights/para", new NodeCreateRule(Node.ELEMENT_NODE)); digester.addSetNext("eml/dataset/intellectualRights/para", "parseIntellectualRights"); digester.addCallMethod("eml/dataset/methods/methodStep/description/para", "addMethodStep", 1); digester.addCallParam("eml/dataset/methods/methodStep/description/para", 0); digester.addBeanPropertySetter("eml/dataset/methods/sampling/studyExtent/description/para", "studyExtent"); digester.addBeanPropertySetter("eml/dataset/methods/sampling/samplingDescription/para", "sampleDescription"); digester.addBeanPropertySetter("eml/dataset/methods/qualityControl/description/para", "qualityControl"); digester.addBeanPropertySetter("eml/dataset/distribution/online/url", "distributionUrl"); digester.addBeanPropertySetter("eml/dataset/purpose/para", "purpose"); digester.addBeanPropertySetter("eml/dataset/maintenance/description/para", "updateFrequencyDescription"); digester.addCallMethod("eml/dataset/maintenance/maintenanceUpdateFrequency", "setUpdateFrequency", 1); digester.addCallParam("eml/dataset/maintenance/maintenanceUpdateFrequency", 0); digester.addCallMethod("eml/additionalMetadata/metadata/gbif/citation", "setCitation", 2); digester.addCallParam("eml/additionalMetadata/metadata/gbif/citation", 0); digester.addCallParam("eml/additionalMetadata/metadata/gbif/citation", 1, "identifier"); digester.addCallMethod("eml/additionalMetadata/metadata/gbif/specimenPreservationMethod", "addSpecimenPreservationMethod", 1); digester.addCallParam("eml/additionalMetadata/metadata/gbif/specimenPreservationMethod", 0); digester.addBeanPropertySetter("eml/additionalMetadata/metadata/gbif/resourceLogoUrl", "logoUrl"); digester.addBeanPropertySetter("eml/additionalMetadata/metadata/gbif/hierarchyLevel", "hierarchyLevel"); digester.addCallMethod("eml/dataset/pubDate", "setPubDateAsString", 1); digester.addCallParam("eml/dataset/pubDate", 0); digester.addCallMethod("eml/additionalMetadata/metadata/gbif/dateStamp", "setDateStamp", 1); digester.addCallParam("eml/additionalMetadata/metadata/gbif/dateStamp", 0); addAgentRules(digester, "eml/dataset/creator", "addCreator"); addAgentRules(digester, "eml/dataset/metadataProvider", "addMetadataProvider"); addAgentRules(digester, "eml/dataset/contact", "addContact"); addAgentRules(digester, "eml/dataset/associatedParty", "addAssociatedParty"); addKeywordRules(digester); addBibliographicCitations(digester); addGeographicCoverageRules(digester); addTemporalCoverageRules(digester); addLivingTimePeriodRules(digester); addFormationPeriodRules(digester); addTaxonomicCoverageRules(digester); addProjectRules(digester); addCollectionRules(digester); addPhysicalDataRules(digester); addJGTICuratorialIUnit(digester); // now parse and return the EML try { digester.parse(xml); } finally { xml.close(); } return eml; }
From source file:org.gbif.metadata.eml.EmlFactory.java
/** * This is a reusable set of rules to build Agents and their Addresses, and add the Agent to the predecessor object * on the Stack Note that we are ignoring the userId as there have been no requests for the IPT to support this. * * @param digester to add the rules to * @param prefix The XPath prefix to prepend for extracting the Agent information * @param parentMethod Of the previous stack object to call and add the Agent to *//*from w w w .j av a2 s. com*/ private static void addAgentRules(Digester digester, String prefix, String parentMethod) { digester.addObjectCreate(prefix, Agent.class); digester.addBeanPropertySetter(prefix + "/individualName/givenName", "firstName"); digester.addBeanPropertySetter(prefix + "/individualName/surName", "lastName"); digester.addBeanPropertySetter(prefix + "/organizationName", "organisation"); digester.addBeanPropertySetter(prefix + "/positionName", "position"); digester.addBeanPropertySetter(prefix + "/phone", "phone"); digester.addBeanPropertySetter(prefix + "/electronicMailAddress", "email"); digester.addBeanPropertySetter(prefix + "/onlineUrl", "homepage"); digester.addBeanPropertySetter(prefix + "/role", "role"); digester.addObjectCreate(prefix + "/address", Address.class); digester.addBeanPropertySetter(prefix + "/address/city", "city"); digester.addBeanPropertySetter(prefix + "/address/administrativeArea", "province"); digester.addBeanPropertySetter(prefix + "/address/postalCode", "postalCode"); digester.addBeanPropertySetter(prefix + "/address/country", "country"); digester.addBeanPropertySetter(prefix + "/address/deliveryPoint", "address"); digester.addSetNext(prefix + "/address", "setAddress"); // called on </address> to set on parent Agent digester.addObjectCreate(prefix + "/userId", UserId.class); digester.addCallMethod(prefix + "/userId", "setDirectory", 1); digester.addCallParam(prefix + "/userId", 0, "directory"); digester.addBeanPropertySetter(prefix + "/userId", "identifier"); digester.addSetNext(prefix + "/userId", "addUserId"); // called on </userId> to set on parent Agent digester.addSetNext(prefix, parentMethod); // method called on parent object which is the previous stack object }
From source file:org.gbif.metadata.eml.EmlFactory.java
/** * Add rules to extract the keywords./* w w w. j av a 2 s . c om*/ * * @param digester to add the rules to */ private static void addKeywordRules(Digester digester) { digester.addObjectCreate("eml/dataset/keywordSet", KeywordSet.class); digester.addCallMethod("eml/dataset/keywordSet/keyword", "add", 1); digester.addCallParam("eml/dataset/keywordSet/keyword", 0); digester.addBeanPropertySetter("eml/dataset/keywordSet/keywordThesaurus", "keywordThesaurus"); digester.addSetNext("eml/dataset/keywordSet", "addKeywordSet"); // add the // KeywordSet // to the // list in // EML }
From source file:org.gbif.metadata.eml.EmlFactory.java
/** * Adds rules to get the geographic coverage. * * @param digester to add the rules to/* w w w.j a va2 s . com*/ */ private static void addGeographicCoverageRules(Digester digester) { digester.addObjectCreate("eml/dataset/coverage/geographicCoverage", GeospatialCoverage.class); digester.addBeanPropertySetter("eml/dataset/coverage/geographicCoverage/geographicDescription", "description"); digester.addObjectCreate("eml/dataset/coverage/geographicCoverage/boundingCoordinates", BBox.class); digester.addBeanPropertySetter( "eml/dataset/coverage/geographicCoverage/boundingCoordinates/westBoundingCoordinate", "minX"); digester.addBeanPropertySetter( "eml/dataset/coverage/geographicCoverage/boundingCoordinates/eastBoundingCoordinate", "maxX"); digester.addBeanPropertySetter( "eml/dataset/coverage/geographicCoverage/boundingCoordinates/northBoundingCoordinate", "maxY"); digester.addBeanPropertySetter( "eml/dataset/coverage/geographicCoverage/boundingCoordinates/southBoundingCoordinate", "minY"); digester.addSetNext("eml/dataset/coverage/geographicCoverage/boundingCoordinates", "setBoundingCoordinates"); // add // the BBox to the GeospatialCoverage digester.addSetNext("eml/dataset/coverage/geographicCoverage", "addGeospatialCoverage"); // add the // GeospatialCoverage to the list in // EML }
From source file:org.gbif.metadata.eml.EmlFactory.java
/** * Adds rules to extract the taxonomic coverage. * * @param digester to add the rules to/* w ww. j a va 2 s . c o m*/ */ private static void addTaxonomicCoverageRules(Digester digester) { digester.addObjectCreate("eml/dataset/coverage/taxonomicCoverage", TaxonomicCoverage.class); digester.addBeanPropertySetter("eml/dataset/coverage/taxonomicCoverage/generalTaxonomicCoverage", "description"); digester.addObjectCreate("eml/dataset/coverage/taxonomicCoverage/taxonomicClassification", TaxonKeyword.class); digester.addBeanPropertySetter( "eml/dataset/coverage/taxonomicCoverage/taxonomicClassification/taxonRankName", "rank"); digester.addBeanPropertySetter( "eml/dataset/coverage/taxonomicCoverage/taxonomicClassification/taxonRankValue", "scientificName"); digester.addBeanPropertySetter("eml/dataset/coverage/taxonomicCoverage/taxonomicClassification/commonName", "commonName"); digester.addSetNext("eml/dataset/coverage/taxonomicCoverage/taxonomicClassification", "addTaxonKeyword"); // adds the TaxonKeyword part of the // TaxonomicCoverage digester.addSetNext("eml/dataset/coverage/taxonomicCoverage", "addTaxonomicCoverage"); // add the TaxonomicCoverage to the list in EML }