Changeset 7478 for trunk/Jav_CO/com/scenari/m/co/donnee/HADonneeMgr.java
- Timestamp:
- 11/23/06 22:24:42 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Jav_CO/com/scenari/m/co/donnee/HADonneeMgr.java
r7458 r7478 49 49 import com.scenari.s.fw.log.HLogMgr; 50 50 51 52 51 /** 53 52 * … … 56 55 57 56 public static final String TYPE_FIXE = "fixe"; 57 58 58 public static final String TYPE_FIXE_ALIAS = "fixe-alias"; 59 59 60 public static final String TYPE_FIXE_SYSTEM_PROPS = "fixe-systemProperties"; 61 62 public static final String TYPE_FIXE_NODE = "fixe-node"; 63 60 64 public static final String TYPE_XPATH_STATIQUE = "xpath-statique"; 65 61 66 public static final String TYPE_XPATH_DYNAMIQUE = "xpath-dynamique"; 67 62 68 public static final String TYPE_XPATH_DOUBLE = "xpath-double"; 69 63 70 public static final String TYPE_XPATHONSRC_DYNAMIQUE = "xpathOnSrc-dynamique"; 71 64 72 public static final String TYPE_EXTRAIT_XML_STATIQUE = "extraitxml-statique"; 73 65 74 public static final String TYPE_XSL_STATIQUE = "xsl-statique"; 75 66 76 public static final String TYPE_XSL_DYNAMIQUE = "xsl-dynamique"; 77 67 78 public static final String TYPE_XSL_DOUBLE = "xsl-double"; 79 68 80 public static final String TYPE_XSL_MONOTEMPLATE = "xsl-monotemplate"; 81 69 82 public static final String TYPE_XSL_XPATH = "xsl-xpath"; 83 70 84 public static final String TYPE_XSL_BEANSHELL = "xsl-beanshell"; 85 71 86 public static final String TYPE_XSL_WEBMACRO = "xsl-webmacro"; 87 72 88 public static final String TYPE_XSLONSRC_DYNAMIQUE = "xslOnSrc-dynamique"; 89 73 90 public static final String TYPE_COMPOSITION_DYNAMIQUE = "composition-dynamique"; 91 74 92 public static final String TYPE_CONTEXTUEL_DYNAMIQUE = "contextuel-dynamique"; 93 75 94 public static final String TYPE_WEBMACRO_DYNAMIQUE = "webmacro-dynamique"; 95 76 96 public static final String TYPE_RESULTAT_DYNAMIQUE = "resultat-dynamique"; 97 77 98 public static final String TYPE_INCLUSION_DYNAMIQUE = "inclusion-dynamique"; 78 public static final String TYPE_INCLUSIONTEXT_DYNAMIQUE = "inclusionText-dynamique"; 79 99 100 public static final String TYPE_INCLUSIONTEXT_DYNAMIQUE = "inclusionText-dynamique"; 101 80 102 public static Map sTypesDonneesSuppl = new HashMap(); 81 /** 82 * 83 */ 84 public HADonneeMgr() { 85 super(); 103 104 /** 105 * 106 */ 107 public HADonneeMgr() { 108 super(); 109 } 110 111 /** 112 * Permet d'ajouter des type de données ne faisant pas partie du coeur de Scenari. 113 * 114 * @param pType java.lang.String 115 * @param pClass java.lang.Class 116 */ 117 public static final void hAddTypeDonnee(String pType, Class pClass) { 118 sTypesDonneesSuppl.put(pType, pClass); 119 } 120 121 /** 122 * Crée une donnée du bon type. 123 * Attention : il faudra passer sa définition ultérieurement 124 * par les méthodes IWADonnee.hSetValue(String) ou IWADonnee.hSetValueParRef(String) 125 * 126 * @return com.scenari.m.co.donnee.IWADonnee 127 * @param pType Type de donnée. 128 * @param pMimeType Mime-type de donnée produite. 129 * @param pCompType com.scenari.m.co.composant.IHComposantType 130 */ 131 132 public static final IAgentData hNewDonnee(String pType, String pMimeType, IHComposantType pCompType) throws Exception { 133 134 return xNewDonnee(pType, pMimeType, pCompType, false); 135 } 136 137 /** 138 * Crée une donnée du bon type avec sa définition. 139 * pUrlBase donne le chemin courant dans l'espace de publication où la donnée 140 * est déclarée. 141 * 142 * @return com.scenari.m.co.donnee.IWADonnee 143 * @param pType Type de donnée. 144 * @param pMimeType Mime-type de donnée produite. 145 * @param pCompType com.scenari.m.co.composant.IHComposantType 146 * @param pDefinition Contenu de la donnée. 147 * @param pContextDonnee Contexte courant à partir duquel la donnée est créée (utile si la donnée fait référence à des ressources externes). 148 */ 149 public static final IAgentData hNewDonnee(String pType, String pMimeType, IHComposantType pCompType, String pDefinition, IHContextDonnee pContextDonnee) throws Exception { 150 151 IAgentData vDonnee = xNewDonnee(pType, pMimeType, pCompType, false); 152 153 vDonnee.wSetValue(pCompType, pDefinition, pContextDonnee); 154 155 return vDonnee; 156 } 157 158 /** 159 * Crée une donnée du bon type en cherchant sa définition dans la 160 * ressource pDocSource. 161 * 162 * @return com.scenari.m.co.donnee.IWADonnee 163 * @param pType Type de donnée. 164 * @param pMimeType Mime-type de donnée produite. 165 * @param pCompType com.scenari.m.co.composant.IHComposantType 166 * @param pDocSource document source contenant la donnée. 167 */ 168 public static final IAgentData hNewDonneeParRef(String pType, String pMimeType, IHComposantType pCompType, IHSource pDocSource) throws Exception { 169 170 IAgentData vDonnee = xNewDonnee(pType, pMimeType, pCompType, true); 171 vDonnee.wSetValueParRef(pCompType, pDocSource); 172 173 return vDonnee; 174 } 175 176 /** 177 * Crée une donnée du bon type. 178 * Attention : il faudra passer sa définition ultérieurement 179 * par les méthodes IWADonnee.hSetValue(String) ou IWADonnee.hSetValueParRef(String) 180 * 181 * @return Donnee créée. 182 * @param pType Type de la donnée. 183 * @param pCompType Composant type de la donnée. 184 * @param pParRef Vrai si l'affectation se fait par undocSource externe. 185 */ 186 private static final IAgentData xNewDonnee(String pType, String pMimeType, IHComposantType pCompType, boolean pParRef) throws Exception { 187 188 IAgentData vDonnee = null; 189 190 if (pType == null || pType.equals(TYPE_FIXE) || pType.equals("")) { 191 vDonnee = new WDonneeFixe(); 192 } else if (pType.equals(TYPE_FIXE_ALIAS)) { 193 vDonnee = new WDonneeFixeAlias(); 194 } else if (pType.equals(TYPE_FIXE_SYSTEM_PROPS)) { 195 vDonnee = new WDonneeFixeSystemProps(); 196 } else if (pType.equals(TYPE_XSL_STATIQUE)) { 197 vDonnee = new WDonneeXslStatique(); 198 } else if (pType.equals(TYPE_XSL_DYNAMIQUE)) { 199 vDonnee = new WDonneeXslDynamique(); 200 } else if (pType.equals(TYPE_XSL_MONOTEMPLATE)) { 201 vDonnee = new WDonneeXslMonoTemplate(); 202 } else if (pType.equals(TYPE_XSL_DOUBLE)) { 203 vDonnee = new WDonneeXslDouble(); 204 } else if (pType.equals(TYPE_XPATH_STATIQUE)) { 205 vDonnee = new WDonneeXPathStatique(); 206 } else if (pType.equals(TYPE_XPATH_DYNAMIQUE)) { 207 vDonnee = new WDonneeXPathDynamique(); 208 } else if (pType.equals(TYPE_XPATHONSRC_DYNAMIQUE)) { 209 vDonnee = new WDonneeXPathOnSrcDynamique(); 210 } else if (pType.equals(TYPE_XPATH_DOUBLE)) { 211 vDonnee = new WDonneeXPathDouble(); 212 } else if (pType.equals(TYPE_EXTRAIT_XML_STATIQUE)) { 213 vDonnee = new WDonneeXPathXmlExtract(); 214 } else if (pType.equals(TYPE_XSL_XPATH)) { 215 vDonnee = new WDonneeXslXPath(); 216 } else if (pType.equals(TYPE_XSL_WEBMACRO)) { 217 vDonnee = new WDonneeXslWebMacro(); 218 } else if (pType.equals(TYPE_XSLONSRC_DYNAMIQUE)) { 219 vDonnee = new WDonneeXslOnSrcDynamique(); 220 } else if (pType.equals(TYPE_RESULTAT_DYNAMIQUE)) { 221 vDonnee = new WDonneeResultatDynamique(); 222 } else if (pType.equals(TYPE_COMPOSITION_DYNAMIQUE)) { 223 vDonnee = new WDonneeComposition(); 224 } else if (pType.equals(TYPE_CONTEXTUEL_DYNAMIQUE)) { 225 vDonnee = new WDonneeContextuelDynamique(); 226 } else if (pType.equals(TYPE_WEBMACRO_DYNAMIQUE)) { 227 vDonnee = new WDonneeWebMacroDynamique(); 228 } else if (pType.equals(TYPE_INCLUSION_DYNAMIQUE)) { 229 vDonnee = new WDonneeInclusionDynamique(true); 230 } else if (pType.equals(TYPE_INCLUSIONTEXT_DYNAMIQUE)) { 231 vDonnee = new WDonneeInclusionDynamique(false); 232 } else if (pType.equals(TYPE_FIXE_NODE)) { 233 vDonnee = new WDonneeNodeFix(); 234 } else { 235 Class vClass = (Class) sTypesDonneesSuppl.get(pType); 236 if (vClass != null) { 237 vDonnee = (IAgentData) vClass.newInstance(); 238 } else { 239 throw HLogMgr.hNewException("Le type de donnée '" + pType + " déclaré dans le composant type '" + pCompType + "' est inconnu."); 240 } 241 } 242 243 vDonnee.wSetMime(pMimeType); 244 245 return vDonnee; 246 } 86 247 } 87 /**88 * Permet d'ajouter des type de données ne faisant pas partie du coeur de Scenari.89 *90 * @param pType java.lang.String91 * @param pClass java.lang.Class92 */93 public static final void hAddTypeDonnee(String pType, Class pClass) {94 sTypesDonneesSuppl.put(pType, pClass);95 }96 /**97 * Crée une donnée du bon type.98 * Attention : il faudra passer sa définition ultérieurement99 * par les méthodes IWADonnee.hSetValue(String) ou IWADonnee.hSetValueParRef(String)100 *101 * @return com.scenari.m.co.donnee.IWADonnee102 * @param pType Type de donnée.103 * @param pMimeType Mime-type de donnée produite.104 * @param pCompType com.scenari.m.co.composant.IHComposantType105 */106 107 public static final IAgentData hNewDonnee(String pType, String pMimeType, IHComposantType pCompType) throws Exception {108 109 return xNewDonnee(pType, pMimeType, pCompType, false);110 }111 /**112 * Crée une donnée du bon type avec sa définition.113 * pUrlBase donne le chemin courant dans l'espace de publication où la donnée114 * est déclarée.115 *116 * @return com.scenari.m.co.donnee.IWADonnee117 * @param pType Type de donnée.118 * @param pMimeType Mime-type de donnée produite.119 * @param pCompType com.scenari.m.co.composant.IHComposantType120 * @param pDefinition Contenu de la donnée.121 * @param pContextDonnee Contexte courant à partir duquel la donnée est créée (utile si la donnée fait référence à des ressources externes).122 */123 public static final IAgentData hNewDonnee(String pType, String pMimeType, IHComposantType pCompType, String pDefinition, IHContextDonnee pContextDonnee) throws Exception {124 125 IAgentData vDonnee = xNewDonnee(pType, pMimeType, pCompType, false);126 127 vDonnee.wSetValue(pCompType, pDefinition, pContextDonnee);128 129 return vDonnee;130 }131 /**132 * Crée une donnée du bon type en cherchant sa définition dans la133 * ressource pDocSource.134 *135 * @return com.scenari.m.co.donnee.IWADonnee136 * @param pType Type de donnée.137 * @param pMimeType Mime-type de donnée produite.138 * @param pCompType com.scenari.m.co.composant.IHComposantType139 * @param pDocSource document source contenant la donnée.140 */141 public static final IAgentData hNewDonneeParRef(String pType, String pMimeType, IHComposantType pCompType, IHSource pDocSource) throws Exception {142 143 IAgentData vDonnee = xNewDonnee(pType, pMimeType, pCompType, true);144 vDonnee.wSetValueParRef(pCompType, pDocSource);145 146 return vDonnee;147 }148 /**149 * Crée une donnée du bon type.150 * Attention : il faudra passer sa définition ultérieurement151 * par les méthodes IWADonnee.hSetValue(String) ou IWADonnee.hSetValueParRef(String)152 *153 * @return Donnee créée.154 * @param pType Type de la donnée.155 * @param pCompType Composant type de la donnée.156 * @param pParRef Vrai si l'affectation se fait par undocSource externe.157 */158 private static final IAgentData xNewDonnee(String pType, String pMimeType, IHComposantType pCompType, boolean pParRef) throws Exception {159 160 IAgentData vDonnee = null;161 162 if (pType == null || pType.equals(TYPE_FIXE) || pType.equals("")) {163 vDonnee = new WDonneeFixe();164 } else if (pType.equals(TYPE_FIXE_ALIAS)) {165 vDonnee = new WDonneeFixeAlias();166 } else if (pType.equals(TYPE_FIXE_SYSTEM_PROPS)) {167 vDonnee = new WDonneeFixeSystemProps();168 } else if (pType.equals(TYPE_XSL_STATIQUE)) {169 vDonnee = new WDonneeXslStatique();170 } else if (pType.equals(TYPE_XSL_DYNAMIQUE)) {171 vDonnee = new WDonneeXslDynamique();172 } else if (pType.equals(TYPE_XSL_MONOTEMPLATE)) {173 vDonnee = new WDonneeXslMonoTemplate();174 } else if (pType.equals(TYPE_XSL_DOUBLE)) {175 vDonnee = new WDonneeXslDouble();176 } else if (pType.equals(TYPE_XPATH_STATIQUE)) {177 vDonnee = new WDonneeXPathStatique();178 } else if (pType.equals(TYPE_XPATH_DYNAMIQUE)) {179 vDonnee = new WDonneeXPathDynamique();180 } else if (pType.equals(TYPE_XPATHONSRC_DYNAMIQUE)) {181 vDonnee = new WDonneeXPathOnSrcDynamique();182 } else if (pType.equals(TYPE_XPATH_DOUBLE)) {183 vDonnee = new WDonneeXPathDouble();184 } else if (pType.equals(TYPE_EXTRAIT_XML_STATIQUE)) {185 vDonnee = new WDonneeXPathXmlExtract();186 } else if (pType.equals(TYPE_XSL_XPATH)) {187 vDonnee = new WDonneeXslXPath();188 } else if (pType.equals(TYPE_XSL_WEBMACRO)) {189 vDonnee = new WDonneeXslWebMacro();190 } else if (pType.equals(TYPE_XSLONSRC_DYNAMIQUE)) {191 vDonnee = new WDonneeXslOnSrcDynamique();192 } else if (pType.equals(TYPE_RESULTAT_DYNAMIQUE)) {193 vDonnee = new WDonneeResultatDynamique();194 } else if (pType.equals(TYPE_COMPOSITION_DYNAMIQUE)) {195 vDonnee = new WDonneeComposition();196 } else if (pType.equals(TYPE_CONTEXTUEL_DYNAMIQUE)) {197 vDonnee = new WDonneeContextuelDynamique();198 } else if (pType.equals(TYPE_WEBMACRO_DYNAMIQUE)) {199 vDonnee = new WDonneeWebMacroDynamique();200 } else if (pType.equals(TYPE_INCLUSION_DYNAMIQUE)) {201 vDonnee = new WDonneeInclusionDynamique(true);202 } else if (pType.equals(TYPE_INCLUSIONTEXT_DYNAMIQUE)) {203 vDonnee = new WDonneeInclusionDynamique(false);204 } else {205 Class vClass = (Class)sTypesDonneesSuppl.get(pType);206 if(vClass != null) {207 vDonnee = (IAgentData)vClass.newInstance();208 } else {209 throw HLogMgr.hNewException("Le type de donnée '" + pType + " déclaré dans le composant type '" + pCompType + "' est inconnu.");210 }211 }212 213 vDonnee.wSetMime(pMimeType);214 215 return vDonnee;216 }217 }
Note: See TracChangeset
for help on using the changeset viewer.