- Timestamp:
- 11/27/06 12:23:38 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Jav_CO/com/scenari/m/co/donnee/WDonneeXslMonoTemplate.java
r7478 r7519 39 39 package com.scenari.m.co.donnee; 40 40 41 import java.io.StringReader;42 41 import java.io.StringWriter; 43 import java.io.Writer;44 42 45 43 import javax.xml.transform.Transformer; 46 import javax.xml.transform.TransformerFactory;47 import javax.xml.transform.dom.DOMResult;48 44 import javax.xml.transform.dom.DOMSource; 49 import javax.xml.transform.sax.SAXSource;50 45 import javax.xml.transform.stream.StreamResult; 51 46 52 import org.w3c.dom.Document;53 47 import org.w3c.dom.Element; 54 import org.w3c.dom.Node;55 import org.xml.sax.InputSource;56 import org.xml.sax.XMLReader;57 48 58 import com.scenari.m.co.agent.IWAgent;59 49 import com.scenari.m.co.composant.IHComposantType; 60 50 import com.scenari.m.co.composant.IWComposant; 61 import com.scenari.m.co.dialog.IHDialog;62 51 import com.scenari.s.co.source.IHAliasResolver; 63 52 import com.scenari.s.co.source.IHSource; 64 import com.scenari.s.fw.log.HLogMgr;65 53 import com.scenari.s.fw.log.HTrace; 66 54 import com.scenari.s.fw.log.HTraceMgr; 67 import com.scenari.s.fw.util.xml.HPoolXmlReader;68 55 import com.scenari.s.fw.utils.HPoolBuffer; 69 import com.scenari.xsldom.xalan.processor.TransformerFactoryImpl;70 56 71 57 /** … … 75 61 * 76 62 */ 77 public class WDonneeXslMonoTemplate extends WDonneeXsl implements Cloneable {63 public class WDonneeXslMonoTemplate extends WDonneeXslDouble implements Cloneable { 78 64 79 65 public static HTrace sTraceXslMonoTemplate = HTraceMgr.hRegister(WDonneeXslMonoTemplate.class.getName(), "Affiche le XSL produit par le premier xsl d'une donnée de type 'xsl-monotemplate'."); … … 96 82 * 97 83 * 98 * @see com.scenari.m.co.donnee.IData#getLevel()99 */100 public final int getLevel() {101 return IAgentData.LEVEL_DYNAMIQUE;102 }103 104 /**105 *106 *107 * @see com.scenari.m.co.donnee.IData#getString(com.scenari.m.co.dialog.IHDialog,108 * java.lang.Object, java.lang.Object)109 */110 public final String getString(IHDialog pDialog, Object pOwner, Object pArguments) throws Exception {111 StringWriter vWriter = HPoolBuffer.get().hGetStringWriter();112 xGetValue(pDialog, (IWAgent) pOwner, pArguments, new StreamResult(vWriter));113 String vResult = vWriter.getBuffer().substring(0);114 HPoolBuffer.get().hFreeStringWriter(vWriter);115 return vResult;116 }117 118 public final Node getNode(IHDialog pDialog, Object pOwner, Object pArguments) throws java.lang.Exception {119 Document vDoc = HDonneeUtils.hCreateDoc();120 xGetValue(pDialog, (IWAgent) pOwner, pArguments, new DOMResult(vDoc));121 return vDoc;122 }123 124 /**125 *126 *127 * @see com.scenari.m.co.donnee.IData#writeValue(java.io.Writer,128 * com.scenari.m.co.dialog.IHDialog, java.lang.Object,129 * java.lang.Object)130 */131 public final void writeValue(Writer pWriter, IHDialog pDialog, Object pOwner, Object pArguments) throws Exception {132 xGetValue(pDialog, (IWAgent) pOwner, pArguments, new StreamResult(pWriter));133 }134 135 /**136 *137 *138 84 * @see com.scenari.m.co.donnee.IAgentData#wSetComposant(com.scenari.m.co.composant.IWComposant, 139 85 * org.w3c.dom.Element, IHSource) … … 144 90 IHComposantType vCompType = pComposant.hGetComposantType(); 145 91 146 Transformer vTransformer = fTemplate.newTransformer();92 Transformer vTransformer = xGetTemplate(pComposant.hGetComposantType()).newTransformer(); 147 93 148 94 IHSource vResolver = pComposant.hGetUnivers().hGetEspaceSources().hFindSource(null); … … 213 159 214 160 } 215 216 /**217 * Crée un templates218 */219 public final void xLoadTemplates(IWComposant pComposant, String pSource) throws Exception {220 221 if (pSource != null && !pSource.equals("")) {222 XMLReader vXmlReader = HPoolXmlReader.hGet().hGetXmlReader(true, false);223 try {224 // On prépare...225 TransformerFactory vTransFact = new TransformerFactoryImpl();226 227 IHSource vResolver = pComposant.hGetUnivers().hGetEspaceSources().hFindSource(null);228 vResolver.hSetAliasResolver((IHAliasResolver) pComposant);229 230 vTransFact.setURIResolver(vResolver);231 SAXSource vSource = null;232 233 vXmlReader.setEntityResolver(vResolver);234 InputSource vInputSource = new InputSource(new StringReader(pSource.trim()));235 vInputSource.setSystemId(vResolver.hGetSystemId());236 vSource = new SAXSource(vXmlReader, vInputSource);237 238 // On cree le template239 fTemplate = vTransFact.newTemplates(vSource);240 241 } catch (Exception e) {242 fTemplate = null;243 throw (Exception) HLogMgr.hAddMessage(e, "Echec à la compilation d'un template XSL de '" + pComposant.toString() + "':\n" + pSource);244 } finally {245 HPoolXmlReader.hGet().hFreeXmlReader(vXmlReader);246 }247 }248 }249 161 }
Note: See TracChangeset
for help on using the changeset viewer.