public void addRuleInstances(Digester digester) { digester.addObjectCreate(prefix, clazz); digester.addBeanPropertySetter(prefix + "/" + TAG_NAME, "name"); digester.addBeanPropertySetter(prefix + "/" + TAG_GROUP, "group"); digester.addBeanPropertySetter(prefix + "/" + TAG_DESCRIPTION, "description"); digester.addBeanPropertySetter(prefix + "/" + TAG_VOLATILITY, "volatility"); digester.addRule( prefix + "/" + TAG_MISFIRE_INSTRUCTION, new MisfireInstructionRule("misfireInstruction")); digester.addBeanPropertySetter(prefix + "/" + TAG_CALENDAR_NAME, "calendarName"); digester.addObjectCreate(prefix + "/" + TAG_JOB_DATA_MAP, JobDataMap.class); digester.addCallMethod( prefix + "/" + TAG_JOB_DATA_MAP + "/" + TAG_ENTRY, "put", 2, new Class[] {Object.class, Object.class}); digester.addCallParam(prefix + "/" + TAG_JOB_DATA_MAP + "/" + TAG_ENTRY + "/" + TAG_KEY, 0); digester.addCallParam(prefix + "/" + TAG_JOB_DATA_MAP + "/" + TAG_ENTRY + "/" + TAG_VALUE, 1); digester.addSetNext(prefix + "/" + TAG_JOB_DATA_MAP, "setJobDataMap"); digester.addBeanPropertySetter(prefix + "/" + TAG_JOB_NAME, "jobName"); digester.addBeanPropertySetter(prefix + "/" + TAG_JOB_GROUP, "jobGroup"); Converter converter = new DateConverter(new String[] {XSD_DATE_FORMAT, DTD_DATE_FORMAT}); digester.addRule( prefix + "/" + TAG_START_TIME, new SimpleConverterRule("startTime", converter, Date.class)); digester.addRule( prefix + "/" + TAG_END_TIME, new SimpleConverterRule("endTime", converter, Date.class)); }
public static GoPluginDescriptor parseXML( InputStream pluginXML, String pluginJarFileLocation, File pluginBundleLocation, boolean isBundledPlugin) throws IOException, SAXException { Digester digester = initDigester(); GoPluginDescriptorParser parserForThisXML = new GoPluginDescriptorParser(pluginJarFileLocation, pluginBundleLocation, isBundledPlugin); digester.push(parserForThisXML); digester.addCallMethod("go-plugin", "createPlugin", 2); digester.addCallParam("go-plugin", 0, "id"); digester.addCallParam("go-plugin", 1, "version"); digester.addCallMethod("go-plugin/about", "createAbout", 4); digester.addCallParam("go-plugin/about/name", 0); digester.addCallParam("go-plugin/about/version", 1); digester.addCallParam("go-plugin/about/target-go-version", 2); digester.addCallParam("go-plugin/about/description", 3); digester.addCallMethod("go-plugin/about/vendor", "createVendor", 2); digester.addCallParam("go-plugin/about/vendor/name", 0); digester.addCallParam("go-plugin/about/vendor/url", 1); digester.addCallMethod("go-plugin/about/target-os/value", "addTargetOS", 1); digester.addCallParam("go-plugin/about/target-os/value", 0); digester.parse(pluginXML); return parserForThisXML.descriptor; }
public void addRuleInstances(Digester digester) { // allow client package conversions to be configured. digester.addObjectCreate( "enunciate/modules/php/package-conversions/convert", PackageModuleConversion.class); digester.addSetProperties("enunciate/modules/php/package-conversions/convert"); digester.addSetNext( "enunciate/modules/php/package-conversions/convert", "addClientPackageConversion"); digester.addCallMethod("enunciate/modules/php/facets/include", "addFacetInclude", 1); digester.addCallParam("enunciate/modules/php/facets/include", 0, "name"); digester.addCallMethod("enunciate/modules/php/facets/exclude", "addFacetExclude", 1); digester.addCallParam("enunciate/modules/php/facets/exclude", 0, "name"); }
void processProperties(final String xml) throws IOException, SAXException { final Digester digester = getDigester(); digester.addObjectCreate(XmlConfiguration.properties, Properties.class); digester.addCallMethod(XmlConfiguration.property, "put", 2); digester.addCallParam(XmlConfiguration.property, 0, "key"); digester.addCallParam(XmlConfiguration.property, 1, "value"); final StringReader reader = new StringReader(xml.trim()); final Object o; try { o = digester.parse(reader); } catch (SAXException e) { if (e.getException().toString().equals("java.lang.NullPointerException")) { throw new InvalidConfigurationException( "Invalid XML configuration for <properties>. <property> must only contain both a key and a value attribute.", e); } // at this time, I don't even know how to get to this path, but I'm sure some user will figure // it out : P throw new InvalidConfigurationException( "Unable to parse XML configuration for <properties>: " + e.getMessage(), e); } if (o == null) { return; } final Properties properties = (Properties) o; addProperties(properties); }
/** * Reading of the configuration * * @param pStream stream * @throws ConfigurationException exception if an error occurs */ public void parse(InputStream pStream) throws ConfigurationException { StringBuffer errors = new StringBuffer(); Digester digester = preSetupDigester( "-//Quartz Configuration DTD //EN", "/config/quartz-timer-config.dtd", errors); // Root directory treatment digester.addCallMethod( "quartz-timer-configuration/quartzKey", "setQuartzKey", 1, new Class[] {String.class}); digester.addCallParam("quartz-timer-configuration/quartzKey", 0); digester.push(this); // Parser call parse(digester, pStream, errors); if (errors.length() > 0) { throw new ConfigurationException( QuartzMessages.getString( "quartz.exception.configuration.parse", new Object[] {errors.toString()})); } }
/** Add the default set of digest rules */ protected void addDefaultDigesterRules(Digester digester) { digester.addSetProperties(TAG_QUARTZ, TAG_OVERWRITE_EXISTING_JOBS, "overWriteExistingJobs"); digester.addObjectCreate(TAG_QUARTZ + "/" + TAG_JOB_LISTENER, "jobListener", "class-name"); digester.addCallMethod(TAG_QUARTZ + "/" + TAG_JOB_LISTENER, "setName", 1); digester.addCallParam(TAG_QUARTZ + "/" + TAG_JOB_LISTENER, 0, "name"); digester.addSetNext(TAG_QUARTZ + "/" + TAG_JOB_LISTENER, "addListenerToSchedule"); digester.addRuleSet( new CalendarRuleSet(TAG_QUARTZ + "/" + TAG_CALENDAR, "addCalendarToSchedule")); digester.addRuleSet(new CalendarRuleSet("*/" + TAG_BASE_CALENDAR, "setBaseCalendar")); digester.addObjectCreate(TAG_QUARTZ + "/" + TAG_JOB, JobSchedulingBundle.class); digester.addObjectCreate(TAG_QUARTZ + "/" + TAG_JOB + "/" + TAG_JOB_DETAIL, JobDetail.class); digester.addBeanPropertySetter( TAG_QUARTZ + "/" + TAG_JOB + "/" + TAG_JOB_DETAIL + "/" + TAG_NAME, "name"); digester.addBeanPropertySetter( TAG_QUARTZ + "/" + TAG_JOB + "/" + TAG_JOB_DETAIL + "/" + TAG_GROUP, "group"); digester.addBeanPropertySetter( TAG_QUARTZ + "/" + TAG_JOB + "/" + TAG_JOB_DETAIL + "/" + TAG_DESCRIPTION, "description"); digester.addBeanPropertySetter( TAG_QUARTZ + "/" + TAG_JOB + "/" + TAG_JOB_DETAIL + "/" + TAG_JOB_CLASS, "jobClass"); digester.addCallMethod( TAG_QUARTZ + "/" + TAG_JOB + "/" + TAG_JOB_DETAIL + "/" + TAG_JOB_LISTENER_REF, "addJobListener", 0); digester.addBeanPropertySetter( TAG_QUARTZ + "/" + TAG_JOB + "/" + TAG_JOB_DETAIL + "/" + TAG_VOLATILITY, "volatility"); digester.addBeanPropertySetter( TAG_QUARTZ + "/" + TAG_JOB + "/" + TAG_JOB_DETAIL + "/" + TAG_DURABILITY, "durability"); digester.addBeanPropertySetter( TAG_QUARTZ + "/" + TAG_JOB + "/" + TAG_JOB_DETAIL + "/" + TAG_RECOVER, "requestsRecovery"); digester.addObjectCreate( TAG_QUARTZ + "/" + TAG_JOB + "/" + TAG_JOB_DETAIL + "/" + TAG_JOB_DATA_MAP, JobDataMap.class); digester.addCallMethod( TAG_QUARTZ + "/" + TAG_JOB + "/" + TAG_JOB_DETAIL + "/" + TAG_JOB_DATA_MAP + "/" + TAG_ENTRY, "put", 2, new Class[] {Object.class, Object.class}); digester.addCallParam( TAG_QUARTZ + "/" + TAG_JOB + "/" + TAG_JOB_DETAIL + "/" + TAG_JOB_DATA_MAP + "/" + TAG_ENTRY + "/" + TAG_KEY, 0); digester.addCallParam( TAG_QUARTZ + "/" + TAG_JOB + "/" + TAG_JOB_DETAIL + "/" + TAG_JOB_DATA_MAP + "/" + TAG_ENTRY + "/" + TAG_VALUE, 1); digester.addSetNext( TAG_QUARTZ + "/" + TAG_JOB + "/" + TAG_JOB_DETAIL + "/" + TAG_JOB_DATA_MAP, "setJobDataMap"); digester.addSetNext(TAG_QUARTZ + "/" + TAG_JOB + "/" + TAG_JOB_DETAIL, "setJobDetail"); digester.addRuleSet( new TriggerRuleSet( TAG_QUARTZ + "/" + TAG_JOB + "/" + TAG_TRIGGER + "/" + TAG_SIMPLE, SimpleTrigger.class)); digester.addBeanPropertySetter( TAG_QUARTZ + "/" + TAG_JOB + "/" + TAG_TRIGGER + "/" + TAG_SIMPLE + "/" + TAG_REPEAT_COUNT, "repeatCount"); digester.addBeanPropertySetter( TAG_QUARTZ + "/" + TAG_JOB + "/" + TAG_TRIGGER + "/" + TAG_SIMPLE + "/" + TAG_REPEAT_INTERVAL, "repeatInterval"); digester.addSetNext( TAG_QUARTZ + "/" + TAG_JOB + "/" + TAG_TRIGGER + "/" + TAG_SIMPLE, "addTrigger"); digester.addRuleSet( new TriggerRuleSet( TAG_QUARTZ + "/" + TAG_JOB + "/" + TAG_TRIGGER + "/" + TAG_CRON, CronTrigger.class)); digester.addBeanPropertySetter( TAG_QUARTZ + "/" + TAG_JOB + "/" + TAG_TRIGGER + "/" + TAG_CRON + "/" + TAG_CRON_EXPRESSION, "cronExpression"); digester.addRule( TAG_QUARTZ + "/" + TAG_JOB + "/" + TAG_TRIGGER + "/" + TAG_CRON + "/" + TAG_TIME_ZONE, new SimpleConverterRule("timeZone", new TimeZoneConverter(), TimeZone.class)); digester.addSetNext( TAG_QUARTZ + "/" + TAG_JOB + "/" + TAG_TRIGGER + "/" + TAG_CRON, "addTrigger"); digester.addSetNext(TAG_QUARTZ + "/" + TAG_JOB, "addJobToSchedule"); }
/** * Method that uses the {@link org.apache.commons.digester.Digester} to read the objects from the * given xml-File an build the java-Objects in a parent-child Hirachy. * * @param _xml URL to the XML-File */ public void readXMLFile(final URL _xml) { Digester digester = new Digester(); digester.setValidating(false); digester.addObjectCreate("import", RootObject.class); // Read the Definitions digester.addCallMethod("import/definition/date", "setDateFormat", 1); digester.addCallParam("import/definition/date", 0, "format"); // Read OrderObject digester.addFactoryCreate("import/definition/order", new OrderObjectFactory(), false); digester.addCallMethod( "import/definition/order/attribute", "addAttribute", 3, new Class[] {Integer.class, String.class, String.class}); digester.addCallParam("import/definition/order/attribute", 0, "index"); digester.addCallParam("import/definition/order/attribute", 1, "name"); digester.addCallParam("import/definition/order/attribute", 2, "criteria"); digester.addSetNext("import/definition/order", "addOrder", "org.efaps.importer.OrderObject"); // Read DefaultObject digester.addObjectCreate("import/definition/default", DefaultObject.class); digester.addCallMethod("import/definition/default", "addDefault", 3); digester.addCallParam("import/definition/default", 0, "type"); digester.addCallParam("import/definition/default", 1, "name"); digester.addCallParam("import/definition/default", 2); digester.addObjectCreate("import/definition/default/linkattribute", ForeignObject.class); digester.addCallMethod("import/definition/default/linkattribute", "setLinkAttribute", 2); digester.addCallParam("import/definition/default/linkattribute", 0, "name"); digester.addCallParam("import/definition/default/linkattribute", 1, "type"); digester.addCallMethod( "import/definition/default/linkattribute/queryattribute", "addAttribute", 2); digester.addCallParam("import/definition/default/linkattribute/queryattribute", 0, "name"); digester.addCallParam("import/definition/default/linkattribute/queryattribute", 1); digester.addSetNext( "import/definition/default/linkattribute", "addLink", "org.efaps.importer.ForeignObject"); // Create the Objects digester.addFactoryCreate("*/object", new InsertObjectFactory(), false); digester.addCallMethod("*/object/attribute", "addAttribute", 3); digester.addCallParam("*/object/attribute", 0, "name"); digester.addCallParam("*/object/attribute", 1); digester.addCallParam("*/object/attribute", 2, "unique"); digester.addCallMethod("*/object/file", "setCheckinObject", 2); digester.addCallParam("*/object/file", 0, "name"); digester.addCallParam("*/object/file", 1, "url"); digester.addCallMethod("*/object/parentattribute", "setParentAttribute", 2); digester.addCallParam("*/object/parentattribute", 0, "name"); digester.addCallParam("*/object/parentattribute", 1, "unique"); digester.addCallMethod("*/object/linkattribute", "addUniqueAttribute", 2); digester.addCallParam("*/object/linkattribute", 0, "unique"); digester.addCallParam("*/object/linkattribute", 1, "name"); digester.addSetNext("*/object", "addChild", "org.efaps.importer.InsertObject"); digester.addObjectCreate("*/object/linkattribute", ForeignObject.class); digester.addCallMethod("*/object/linkattribute", "setLinkAttribute", 2); digester.addCallParam("*/object/linkattribute", 0, "name"); digester.addCallParam("*/object/linkattribute", 1, "type"); digester.addCallMethod("*/object/linkattribute/queryattribute", "addAttribute", 2); digester.addCallParam("*/object/linkattribute/queryattribute", 0, "name"); digester.addCallParam("*/object/linkattribute/queryattribute", 1); digester.addSetNext("*/object/linkattribute", "addLink", "org.efaps.importer.ForeignObject"); try { this.root = (RootObject) digester.parse(_xml); } catch (IOException e) { e.printStackTrace(System.err); } catch (SAXException e) { e.printStackTrace(System.err); } }
/** * Create Digester rules for manufacturers and models * * @return */ protected Digester createManufacturerDigester() { // Initialize the digester Digester digester = new Digester(); digester.setValidating(false); // Manufacturer stage digester.addObjectCreate("*/Manufacturer", ManufacturerItem.class); digester.addBeanPropertySetter("*/Manufacturer/ExternalID", "externalID"); digester.addBeanPropertySetter("*/Manufacturer/Name", "name"); digester.addBeanPropertySetter("*/Manufacturer/Description", "description"); digester.addSetNext("*/Manufacturer", "add"); digester.addCallMethod("*/Models", "addIncludeFile4Model", 1); digester.addCallParam("*/Models", 0, "filename"); // Model stage digester.addFactoryCreate("*/Models/Model", ModelItemObjectCreationFactory.class); // digester.addObjectCreate("*/Models/Model", ModelItem.class); digester.addSetNext("*/Models/Model", "addModel"); // Basic information // digester.addCallMethod("*/Models/Model", "setFamilyID", 1); // digester.addCallParam("*/Models/Model", 0, "family"); digester.addBeanPropertySetter("*/Models/Model/ExternalID", "externalID"); digester.addBeanPropertySetter("*/Models/Model/Name", "name"); digester.addBeanPropertySetter("*/Models/Model/Description", "description"); // digester.addBeanPropertySetter("*/Models/Model/FamilyID", "familyID"); digester.addBeanPropertySetter("*/Models/Model/IconFile", "iconFile"); digester.addBeanPropertySetter("*/Models/Model/IsOmaDmEnabled", "isOmaDmEnabled"); digester.addBeanPropertySetter("*/Models/Model/OmaDmVersion", "omaDmVersion"); digester.addBeanPropertySetter("*/Models/Model/IsOmaCpEnabled", "isOmaCpEnabled"); digester.addBeanPropertySetter("*/Models/Model/OmaCpVersion", "omaCpVersion"); digester.addBeanPropertySetter("*/Models/Model/IsNokiaOtaEnabled", "isNokiaOtaEnabled"); digester.addBeanPropertySetter("*/Models/Model/NokiaOtaVersion", "nokiaOtaVersion"); digester.addBeanPropertySetter( "*/Models/Model/SupportedDownloadMethods", "supportedDownloadMethods"); digester.addBeanPropertySetter("*/Models/Model/FirmwareVersionNode", "firmwareVersionNode"); digester.addBeanPropertySetter("*/Models/Model/FirmwareUpdateNode", "firmwareUpdateNode"); digester.addBeanPropertySetter("*/Models/Model/FirmwareDownloadNode", "firmwareDownloadNode"); digester.addBeanPropertySetter( "*/Models/Model/FirmwareDownloadAndUpdateNode", "firmwareDownloadAndUpdateNode"); digester.addBeanPropertySetter("*/Models/Model/FirmwareStatusNode", "firmwareStatusNode"); // DDF Information digester.addCallMethod("*/Models/Model/DDFs/DDF", "addDdfFile", 1); digester.addCallParam("*/Models/Model/DDFs/DDF", 0, "filename"); // DM Profile Mappings digester.addCallMethod( "*/Models/Model/ProfileMappings/ProfileMapping", "addProfileMappingFile", 1); digester.addCallParam("*/Models/Model/ProfileMappings/ProfileMapping", 0, "filename"); // CP Templates digester.addCallMethod("*/Models/Model/CPTemplates", "addCpTemplatesFiles", 1); digester.addCallParam("*/Models/Model/CPTemplates", 0, "filename"); // TAC Informations digester.addCallMethod("*/Models/Model/TACs/TAC", "addTac", 1); digester.addCallParam("*/Models/Model/TACs/TAC", 0); // Firmwares digester.addObjectCreate("*/Models/Model/Firmwares/Firmware", FirmwareItem.class); digester.addBeanPropertySetter("*/Models/Model/Firmwares/Firmware/FromVersion", "fromVersion"); digester.addBeanPropertySetter("*/Models/Model/Firmwares/Firmware/ToVersion", "toVersion"); digester.addBeanPropertySetter("*/Models/Model/Firmwares/Firmware/Status", "status"); digester.addBeanPropertySetter("*/Models/Model/Firmwares/Firmware/Filename", "filename"); digester.addSetNext("*/Models/Model/Firmwares/Firmware", "addFirmware"); // Specifications digester.addCallMethod("*/Models/Model/Specifications/Specification", "setSpecification", 3); digester.addCallParam("*/Models/Model/Specifications/Specification", 0, "category"); digester.addCallParam("*/Models/Model/Specifications/Specification", 1, "name"); digester.addCallParam("*/Models/Model/Specifications/Specification", 2, "value"); // Model Family stage digester.addFactoryCreate("*/Models/Family", ModelFamilyItemObjectCreationFactory.class); // digester.addObjectCreate("*/Models/Family", ModelFamilyItem.class); digester.addSetNext("*/Models/Family", "addModelFamily"); // Basic information // digester.addCallMethod("*/Models/Family", "setParentID", 1); // digester.addCallParam("*/Models/Family", 0, "parent"); // digester.addSetNestedProperties("*/Models/Family", "parent", "parentID"); digester.addBeanPropertySetter("*/Models/Family/ExternalID", "externalID"); digester.addBeanPropertySetter("*/Models/Family/Name", "name"); digester.addBeanPropertySetter("*/Models/Family/Description", "description"); // digester.addBeanPropertySetter("*/Models/Family/ParentID", "parentID"); digester.addBeanPropertySetter("*/Models/Family/IconFile", "iconFile"); digester.addBeanPropertySetter("*/Models/Family/IsOmaDmEnabled", "isOmaDmEnabled"); digester.addBeanPropertySetter("*/Models/Family/OmaDmVersion", "omaDmVersion"); digester.addBeanPropertySetter("*/Models/Family/IsOmaCpEnabled", "isOmaCpEnabled"); digester.addBeanPropertySetter("*/Models/Family/OmaCpVersion", "omaCpVersion"); digester.addBeanPropertySetter("*/Models/Family/IsNokiaOtaEnabled", "isNokiaOtaEnabled"); digester.addBeanPropertySetter("*/Models/Family/NokiaOtaVersion", "nokiaOtaVersion"); digester.addBeanPropertySetter( "*/Models/Family/SupportedDownloadMethods", "supportedDownloadMethods"); digester.addBeanPropertySetter("*/Models/Family/FirmwareVersionNode", "firmwareVersionNode"); digester.addBeanPropertySetter("*/Models/Family/FirmwareUpdateNode", "firmwareUpdateNode"); digester.addBeanPropertySetter("*/Models/Family/FirmwareDownloadNode", "firmwareDownloadNode"); digester.addBeanPropertySetter( "*/Models/Family/FirmwareDownloadAndUpdateNode", "firmwareDownloadAndUpdateNode"); digester.addBeanPropertySetter("*/Models/Family/FirmwareStatusNode", "firmwareStatusNode"); // DDF Information digester.addCallMethod("*/Models/Family/DDFs/DDF", "addDdfFile", 1); digester.addCallParam("*/Models/Family/DDFs/DDF", 0, "filename"); // DM Profile Mappings digester.addCallMethod( "*/Models/Family/ProfileMappings/ProfileMapping", "addProfileMappingFile", 1); digester.addCallParam("*/Models/Family/ProfileMappings/ProfileMapping", 0, "filename"); // CP Templates digester.addCallMethod("*/Models/Family/CPTemplates", "addCpTemplatesFiles", 1); digester.addCallParam("*/Models/Family/CPTemplates", 0, "filename"); // Firmwares digester.addObjectCreate("*/Models/Family/Firmwares/Firmware", FirmwareItem.class); digester.addBeanPropertySetter("*/Models/Family/Firmwares/Firmware/FromVersion", "fromVersion"); digester.addBeanPropertySetter("*/Models/Family/Firmwares/Firmware/ToVersion", "toVersion"); digester.addBeanPropertySetter("*/Models/Family/Firmwares/Firmware/Status", "status"); digester.addBeanPropertySetter("*/Models/Family/Firmwares/Firmware/Filename", "filename"); digester.addSetNext("*/Models/Family/Firmwares/Firmware", "addFirmware"); // Specifications digester.addCallMethod("*/Models/Family/Specifications/Specification", "setSpecification", 3); digester.addCallParam("*/Models/Family/Specifications/Specification", 0, "category"); digester.addCallParam("*/Models/Family/Specifications/Specification", 1, "name"); digester.addCallParam("*/Models/Family/Specifications/Specification", 2, "value"); return (digester); }