List of usage examples for org.apache.commons.digester3 Digester addCallParam
public void addCallParam(String pattern, int paramIndex, int stackIndex)
From source file:org.esupportail.monitor.web.tools.Config.java
/** * Lit le fichier de configuration//from w w w .j a va2 s .c om */ private void parseConfigFile() { Digester dig = new Digester(); dig.push(this); dig.addCallMethod("config/server", "addServer", 2); dig.addCallParam("config/server", 0, "name"); dig.addCallParam("config/server", 1, "url"); URL resourceURL = Config.class.getResource(configFile); if (resourceURL != null) { try { // On parse le fichier dont le chemin est pass en paramtre dig.parse(new InputSource(resourceURL.toExternalForm())); } catch (IOException e) { logger.error("Config::parseConfig() : Impossible d'ouvrir le fichier de config \n" + e); } catch (SAXException e) { logger.error("Config::parseConfig() : SAXException :\n" + e); } catch (Exception e) { logger.error("Config::parseConfig() : Exception :\n" + e); } } else { logger.error("Config::parseConfig() : Le fichier de configuration est introuvable"); } }
From source file:org.esupportail.monitor.web.tools.InfosCollector.java
/** * Rcupre les informations d'un serveur distant * @param s L'objet remplit/* w w w .ja v a2 s .c o m*/ * @return status vrai si tout se passe bien, faux sinon */ public static boolean fetch(ServerInfo s, boolean users) { Digester dig = new Digester(); dig.push(s); dig.addObjectCreate("runtimeinfo/memory", MemoryInfo.class); dig.addSetProperties("runtimeinfo/memory"); dig.addSetNext("runtimeinfo/memory", "setMemory"); dig.addObjectCreate("runtimeinfo/sessions", SessionInfo.class); dig.addSetProperties("runtimeinfo/sessions"); dig.addSetNext("runtimeinfo/sessions", "setSession"); dig.addCallMethod("runtimeinfo/users/user", "addUser", 1); dig.addCallParam("runtimeinfo/users/user", 0, "uid"); URL ressourceUrl = null; try { if (users) { ressourceUrl = new URL(s.getUrl() + "?xml=full"); } else { ressourceUrl = new URL(s.getUrl() + "?xml"); } } catch (MalformedURLException e) { // logger.error(e); System.out.print(e + "\n"); return false; } if (ressourceUrl != null) { try { // On parse le fichier dont le chemin est pass en paramtre dig.parse(new InputSource(ressourceUrl.toExternalForm())); } catch (IOException e) { //logger.error("InfosCollector::fetch() : Impossible d'ouvrir l'URL \n" + e); System.out.print("InfosCollector::fetch() : Impossible d'ouvrir l'URL \n" + e); return false; } catch (SAXException e) { //logger.error("InfosCollector::fetch() : SAXException :\n" + e); System.out.print("InfosCollector::fetch() : SAXException :\n" + e); return false; } catch (Exception e) { //logger.error("InfosCollector::fetch() : Exception :\n" + e); System.out.print("InfosCollector::fetch() : Exception :\n" + e); return false; } } else { //logger.error("InfosCollector::fetch() : L'URL est introuvable"); System.out.print("InfosCollector::fetch() : L'URL est introuvable"); return false; } return true; }
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/* w w w . ja v a2s .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 ww . j a v a 2 s.co m 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 for parsing the project details. * * @param digester to add the rules to/*w ww .j av a 2 s. c om*/ */ private static void addProjectRules(Digester digester) { digester.addObjectCreate("eml/dataset/project", Project.class); digester.addCallMethod("eml/dataset/project", "setIdentifier", 1); digester.addCallParam("eml/dataset/project", 0, "id"); digester.addBeanPropertySetter("eml/dataset/project/title", "title"); addAgentRules(digester, "eml/dataset/project/personnel", "addProjectPersonnel"); digester.addBeanPropertySetter("eml/dataset/project/abstract/para", "description"); digester.addBeanPropertySetter("eml/dataset/project/funding/para", "funding"); addStudyAreaDescriptionRules(digester); digester.addBeanPropertySetter("eml/dataset/project/designDescription/description/para", "designDescription"); digester.addSetNext("eml/dataset/project", "setProject"); }
From source file:org.gbif.metadata.eml.EmlFactory.java
/** * Adds rules for the study area description: <studyAreaDescription> <descriptor name="generic" * citableClassificationSystem="false"> <descriptorValue>Turkish Mountains</descriptorValue> </descriptor> * </studyAreaDescription>/*from w ww . j a v a 2 s.c o m*/ * * @param digester To add the rules to */ private static void addStudyAreaDescriptionRules(Digester digester) { digester.addObjectCreate("eml/dataset/project/studyAreaDescription", StudyAreaDescription.class); // get the descriptor@name attribute and set it digester.addCallMethod("eml/dataset/project/studyAreaDescription/descriptor", "setName", 1); digester.addCallParam("eml/dataset/project/studyAreaDescription/descriptor", 0, "name"); // get the descriptor@citableClassificationSystem and set it digester.addCallMethod("eml/dataset/project/studyAreaDescription/descriptor", "setCitableClassificationSystem", 1); digester.addCallParam("eml/dataset/project/studyAreaDescription/descriptor", 0, "citableClassificationSystem"); // set the value of the StudyAreaDescription digester.addBeanPropertySetter("eml/dataset/project/studyAreaDescription/descriptor/descriptorValue", "descriptorValue"); // add the StudyAreaDescription to the project digester.addSetNext("eml/dataset/project/studyAreaDescription", "setStudyAreaDescription"); }