Ignore:
Timestamp:
11/23/06 22:24:42 (6 years ago)
Author:
sys
Message:

Implementation api IData.getNode()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Jav_CO/com/scenari/m/co/donnee/HADonneeMgr.java

    r7458 r7478  
    4949import com.scenari.s.fw.log.HLogMgr; 
    5050 
    51  
    5251/** 
    5352 *  
     
    5655 
    5756        public static final String TYPE_FIXE = "fixe"; 
     57 
    5858        public static final String TYPE_FIXE_ALIAS = "fixe-alias"; 
     59 
    5960        public static final String TYPE_FIXE_SYSTEM_PROPS = "fixe-systemProperties"; 
     61 
     62        public static final String TYPE_FIXE_NODE = "fixe-node"; 
     63 
    6064        public static final String TYPE_XPATH_STATIQUE = "xpath-statique"; 
     65 
    6166        public static final String TYPE_XPATH_DYNAMIQUE = "xpath-dynamique"; 
     67 
    6268        public static final String TYPE_XPATH_DOUBLE = "xpath-double"; 
     69 
    6370        public static final String TYPE_XPATHONSRC_DYNAMIQUE = "xpathOnSrc-dynamique"; 
     71 
    6472        public static final String TYPE_EXTRAIT_XML_STATIQUE = "extraitxml-statique"; 
     73 
    6574        public static final String TYPE_XSL_STATIQUE = "xsl-statique"; 
     75 
    6676        public static final String TYPE_XSL_DYNAMIQUE = "xsl-dynamique"; 
     77 
    6778        public static final String TYPE_XSL_DOUBLE = "xsl-double"; 
     79 
    6880        public static final String TYPE_XSL_MONOTEMPLATE = "xsl-monotemplate"; 
     81 
    6982        public static final String TYPE_XSL_XPATH = "xsl-xpath"; 
     83 
    7084        public static final String TYPE_XSL_BEANSHELL = "xsl-beanshell"; 
     85 
    7186        public static final String TYPE_XSL_WEBMACRO = "xsl-webmacro"; 
     87 
    7288        public static final String TYPE_XSLONSRC_DYNAMIQUE = "xslOnSrc-dynamique"; 
     89 
    7390        public static final String TYPE_COMPOSITION_DYNAMIQUE = "composition-dynamique"; 
     91 
    7492        public static final String TYPE_CONTEXTUEL_DYNAMIQUE = "contextuel-dynamique"; 
     93 
    7594        public static final String TYPE_WEBMACRO_DYNAMIQUE = "webmacro-dynamique"; 
     95 
    7696        public static final String TYPE_RESULTAT_DYNAMIQUE = "resultat-dynamique"; 
     97 
    7798        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 
    80102        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        } 
    86247} 
    87 /** 
    88  * Permet d'ajouter des type de données ne faisant pas partie du coeur de Scenari. 
    89  *  
    90  * @param pType java.lang.String 
    91  * @param pClass java.lang.Class 
    92  */ 
    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érieurement  
    99  * par les méthodes IWADonnee.hSetValue(String) ou IWADonnee.hSetValueParRef(String) 
    100  *  
    101  * @return com.scenari.m.co.donnee.IWADonnee 
    102  * @param pType Type de donnée. 
    103  * @param pMimeType Mime-type de donnée produite. 
    104  * @param pCompType com.scenari.m.co.composant.IHComposantType 
    105  */ 
    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ée 
    114  * est déclarée. 
    115  *  
    116  * @return com.scenari.m.co.donnee.IWADonnee 
    117  * @param pType Type de donnée. 
    118  * @param pMimeType Mime-type de donnée produite. 
    119  * @param pCompType com.scenari.m.co.composant.IHComposantType 
    120  * @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 la 
    133  * ressource pDocSource. 
    134  *  
    135  * @return com.scenari.m.co.donnee.IWADonnee 
    136  * @param pType Type de donnée. 
    137  * @param pMimeType Mime-type de donnée produite. 
    138  * @param pCompType com.scenari.m.co.composant.IHComposantType 
    139  * @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érieurement  
    151  * 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.