List of usage examples for org.apache.commons.digester Digester addSetTop
public void addSetTop(String pattern, String methodName, String paramType)
From source file:net.jcreate.xkins.XkinsLoader.java
private void skinDigester(Digester digester, String prefix) { //Crea los Paths digester.addSetProperties("skin"); digester.addObjectCreate(prefix + "skin/path", PATH_CLASS_NAME); digester.addSetProperties(prefix + "skin/path"); digester.addSetTop(prefix + "skin/path", "setSkin", SKIN_CLASS_NAME); digester.addSetNext(prefix + "skin/path", "addPath", PATH_CLASS_NAME); //Crea los resources globales element digester.addObjectCreate(prefix + "skin/element", ELEMENT_CLASS_NAME); digester.addSetProperties(prefix + "skin/element"); digester.addSetTop(prefix + "skin/element", "setSkin", SKIN_CLASS_NAME); digester.addSetNext(prefix + "skin/element", "addResource", RES_CLASS_NAME); //Crea los resources globales constant digester.addObjectCreate(prefix + "skin/constant", CONSTANT_CLASS_NAME); digester.addSetProperties(prefix + "skin/constant"); //digester.addSetProperty(prefix + "skin/constant", "value", "value"); digester.addBeanPropertySetter(prefix + "skin/constant/value", "value"); //?/*from w w w.j a v a 2 s. com*/ digester.addSetTop(prefix + "skin/constant", "setSkin", SKIN_CLASS_NAME); digester.addSetNext(prefix + "skin/constant", "addResource", RES_CLASS_NAME); //setea el processor global de skin digester.addObjectCreate(prefix + "skin/processor", PROCESSOR_CLASS_NAME); digester.addSetProperties(prefix + "skin/processor"); digester.addSetNext(prefix + "skin/processor", "setProcessor", PROCESSOR_CLASS_NAME); //crea los servers digester.addObjectCreate("skin/server", SERVER_CLASS_NAME); digester.addSetProperties("skin/server"); digester.addSetNext("skin/server", "addServer", SERVER_CLASS_NAME); //Crea los Templates digester.addObjectCreate(prefix + "skin/template", TEMPLATE_CLASS_NAME); digester.addSetProperties(prefix + "skin/template"); digester.addSetTop(prefix + "skin/template", "setSkin", SKIN_CLASS_NAME); //crea el content digester.addObjectCreate(prefix + "skin/template/content", CONTENT_CLASS_NAME); digester.addSetProperties(prefix + "skin/template/content"); digester.addCallMethod(prefix + "skin/template/content", "setData", 1); digester.addCallParam(prefix + "skin/template/content", 0); digester.addSetNext(prefix + "skin/template/content", "setContent", CONTENT_CLASS_NAME); digester.addSetTop(prefix + "skin/template/content", "setTemplate", TEMPLATE_CLASS_NAME); //setea el processor digester.addObjectCreate(prefix + "skin/template/processor", PROCESSOR_CLASS_NAME); digester.addSetProperties(prefix + "skin/template/processor"); digester.addSetNext(prefix + "skin/template/processor", "setProcessor", PROCESSOR_CLASS_NAME); //Crea los resources elements digester.addObjectCreate(prefix + "skin/template/element", ELEMENT_CLASS_NAME); digester.addSetProperties(prefix + "skin/template/element"); digester.addSetTop(prefix + "skin/template/element", "setTemplate", TEMPLATE_CLASS_NAME); digester.addSetNext(prefix + "skin/template/element", "addResource", RES_CLASS_NAME); //Crea los resources constants digester.addObjectCreate(prefix + "skin/template/constant", CONSTANT_CLASS_NAME); digester.addSetProperties(prefix + "skin/template/constant"); //digester.addSetProperty(prefix + "skin/template/constant", "value", "value"); //? digester.addSetTop(prefix + "skin/template/constant", "setTemplate", TEMPLATE_CLASS_NAME); digester.addSetNext(prefix + "skin/template/constant", "addResource", RES_CLASS_NAME); //Agrega el template digester.addSetNext(prefix + "skin/template", "addTemplate", TEMPLATE_CLASS_NAME); }
From source file:net.jcreate.xkins.XkinsLoader.java
/** * Carga los skins. Mtodo privado que utilizan los dems. Usa el Digester. * @param in// w w w . j a v a2 s . c o m * @param xk * @return * @throws XkinsException */ private Xkins loadSkins(InputStream in, Xkins xk) throws XkinsException { try { Digester digester = new Digester(); Xkins xkLoading = new Xkins(); URL url = this.getClass().getResource(this.dtd); if (url != null) { digester.register(this.registration, url.toString()); //digester.setValidating(true); } digester.push(xkLoading); digester.addSetProperties("xkins"); //Crea los Skins digester.addFactoryCreate("xkins/skin", new SkinFactory(xkLoading)); digester.addSetProperties("xkins/skin"); digester.addSetProperty("xkins/skin/set-property", "property", "value"); digester.addSetTop("xkins/skin", "setXkins", XKINS_CLASS_NAME); digester.addObjectCreate("xkins/global-processor", PROCESSOR_CLASS_NAME); digester.addSetProperties("xkins/global-processor"); digester.addSetNext("xkins/global-processor", "addProcessor", PROCESSOR_CLASS_NAME); this.skinDigester(digester, "xkins/"); //Agrega el skin digester.addSetNext("xkins/skin", "addSkin", SKIN_CLASS_NAME); try { // Parse the input stream to initialize our database digester.parse(in); in.close(); } catch (SAXException e) { System.out.println(":" + e.getMessage()); System.out.println(":" + e); e.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (Exception e) { } } } this.loadSkinsDefinition(xkLoading); //copio los xkins cargados al xk Iterator it = xkLoading.getSkins().keySet().iterator(); while (it.hasNext()) { String skinName = (String) it.next(); Skin sk = (Skin) xkLoading.getSkins().get(skinName); sk.setXkins(xk); xk.addSkin(sk); } XkinsLoadEvent xle = new XkinsLoadEvent(this); xle.setXkins(xk); xk.sendEvent(xle); xk.addProcessors(xkLoading.getProcessors()); return xk; } catch (Throwable thr) { thr.printStackTrace(); throw new XkinsException(thr); } }