List of usage examples for org.w3c.dom Node getNextSibling
public Node getNextSibling();
From source file:org.squale.squalix.tools.clearcase.configuration.ClearCaseConfiguration.java
/** * Dans un premier temps, cette mthode rcupre l'attribut et la valeur d'un noeud donn. Puis elle appelle la * mthode dont le nom est pass en paramtre par rflexion. <br /> * Elle ne fonctionne que si la mthode dont le nom est pass en paramtre prend elle-mme pour paramtres 2 * <code>java.lang.String</code>. * //from www. j ava 2 s . c o m * @param pNode le noeud XML parser. * @param pRootAnchor le nom de la balise racine trouver * @param pChildAnchor le nom de la / des balise(s) fille(s) trouver. * @param pMethodName le nom de la mthode appeler par rflexion. ATTENTION : on ne peut passer en paramtre que * des mthodes prenant elles-mme 2 <code>java.lang.String</code> en paramtres. * @throws Exception gnre une exception si le nom du noeud ne correspond pas une des valeurs dfinies dans le * fichier de configuration <code> * org.squale.squalix.tools.clearcase.clearcase.properties</code>. * @see ConfigUtility */ private void processFromXML(final Node pNode, final String pRootAnchor, final String pChildAnchor, final String pMethodName) throws Exception { /* on rcupre le 1er noeud contenant une commande */ Node myNode = ConfigUtility.getNodeByTagName(pNode, pRootAnchor); /* * instanciation des variables qui vont servir dans la boucle qui va suivre */ String nodeName = null; String pattern = null; String attrName = null; String nodeValue = null; NamedNodeMap attrMap = null; /* tant que le noeud n'est pas nul */ while (null != myNode) { /* noeud de type ELEMENT */ if (Node.ELEMENT_NODE == myNode.getNodeType()) { /* on rcupre le nom du noeud. */ nodeName = myNode.getFirstChild().getNodeName(); /* on rcupre tous les attributs du noeud. */ attrMap = (myNode.getAttributes()); /* on rcupre le nom de l'attribut qui nous intresse. */ attrName = (String) (attrMap.getNamedItem(pChildAnchor)).getNodeValue().trim(); if (null != attrName && !"".equals(attrName)) { // On recupere la valeur de la balise // le texte peut etre parsem de commentaires // utilsis dans le migConfig // d'o la ncessit de parcourir tous les fils de type // texte nodeValue = null; NodeList nodes = myNode.getChildNodes(); for (int i = 0; (i < nodes.getLength()) && (nodeValue == null); i++) { Node currentNode = nodes.item(i); if (currentNode.getNodeType() == Node.TEXT_NODE) { /* valeur du noeud en question. */ String value = currentNode.getNodeValue().trim(); if (value.length() > 0) { nodeValue = ConfigUtility.filterStringWithSystemProps(value); } } } // Affichage d'un warning lorsque qu'aucune valeur n'a t trouve if (nodeValue == null) { nodeValue = ""; LOGGER.warn(ClearCaseMessages.getString("logs.cfg.empty") + attrName); } /* * on cre la tableau de type de paramtres ici, un tableau de 2 String */ Class[] param = { String.class, String.class }; /* on cre le tableau des 2 paramtres en rapport */ Object[] args = { attrName, nodeValue }; /* on invoque la mthode fournie en paramtre */ ((Method) (this.getClass().getDeclaredMethod(pMethodName, param))).invoke(this, args); } else { /* on lance une exception */ throw new Exception(ClearCaseMessages.getString("exception.xml.null_or_void_attribute")); } } /* on itre */ myNode = myNode.getNextSibling(); } /* mnage */ myNode = null; nodeName = null; nodeValue = null; pattern = null; attrName = null; attrMap = null; }
From source file:org.squale.squalix.tools.compiling.java.configuration.JCompilingConfiguration.java
/** * Rcupre les classpaths vers les APIs Java * //from www . j a v a 2 s. co m * @param pNode le noeud * @throws Exception si erreur */ private void getBootclasspathsFromXML(final Node pNode) throws Exception { /* noeud racine contenant les classpaths */ Node myNode = ConfigUtility.getNodeByTagName(pNode, CompilingMessages.getString("configuration.java.general.bootclasspaths")); boolean throwException = false; // not null and element type if (null != myNode && Node.ELEMENT_NODE == myNode.getNodeType()) { // We get the first child node myNode = ConfigUtility.getNodeByTagName(myNode, CompilingMessages.getString("configuration.java.general.bootclasspaths.bootclasspath")); // If node exists if (null != myNode) { NamedNodeMap attrMap = null; String javaVersion = null; /* tant qu'il y a des noeuds */ while (null != myNode) { if (Node.ELEMENT_NODE == myNode.getNodeType()) { /* on rcupre les attributs du noeud */ attrMap = myNode.getAttributes(); /* attribut "version" */ javaVersion = (attrMap.getNamedItem(CompilingMessages .getString("configuration.java.general.bootclasspaths.bootclasspath.version"))) .getNodeValue().trim(); // We will get all children nodes getBootClasspathLibsFromXML(myNode, javaVersion); } /* on itre */ myNode = myNode.getNextSibling(); } attrMap = null; javaVersion = null; /* erreur rencontre --> exception lancer */ } else { throwException = true; } /* erreur rencontre --> exception lancer */ } else { throwException = true; } myNode = null; /* erreur rencontre */ if (throwException) { /* exception lance */ throw new Exception(CompilingMessages.getString("exception.xml.node_not_found")); } }
From source file:org.squale.squalix.tools.compiling.java.configuration.JCompilingConfiguration.java
/** * Add bootclasspath lib to the bootclasspath map with javaVersion key * //from w w w. j ava2s . c o m * @param pNode root node containing all lib tag definitions * @param javaVersion java dialect * @throws Exception if error */ private void getBootClasspathLibsFromXML(Node pNode, String javaVersion) throws Exception { boolean throwException = false; Node node = pNode; // not null and element type if (null != node && Node.ELEMENT_NODE == node.getNodeType()) { // We get the first child node node = ConfigUtility.getNodeByTagName(node, CompilingMessages.getString("configuration.java.general.bootclasspaths.bootclasspath.lib")); // If node exists if (null != node) { NamedNodeMap attrMap = null; String attrPath = null; /* While there are nodes */ while (null != node) { if (Node.ELEMENT_NODE == node.getNodeType()) { /* on rcupre les attributs du noeud */ attrMap = node.getAttributes(); /* "path" attribute */ attrPath = (attrMap.getNamedItem(CompilingMessages .getString("configuration.java.general.bootclasspaths.bootclasspath.lib.path"))) .getNodeValue().trim(); // We invoke add method ((Method) (mMap.get(CompilingMessages .getString("configuration.java.general.bootclasspaths.bootclasspath")))) .invoke(this, new String[] { javaVersion, attrPath }); } /* on itre */ node = node.getNextSibling(); } attrMap = null; attrPath = null; /* have error --> launch exception */ } else { throwException = true; } /* have erreor --> launch exception */ } else { throwException = true; } node = null; /* have error */ if (throwException) { /* launched exception */ throw new Exception(CompilingMessages.getString("exception.xml.node_not_found")); } }
From source file:org.squale.squalix.tools.compiling.java.configuration.JCompilingConfiguration.java
/** * Cette mthode rcupre le valeur des cls ncessaires pour parser le fichier de classpath. * //from w w w. j a va2 s .com * @param pNode noeud XML parser. * @throws Exception exception en cas d'erreur lors du parsing. * @see #mapKeyValue(String, String) */ private void getSeparatorsFromXML(final Node pNode) throws Exception { LOGGER.trace(CompilingMessages.getString("logs.task.entering_method")); /* noeud racine contenant les sparateurs */ Node myNode = ConfigUtility.getNodeByTagName(pNode, CompilingMessages.getString("configuration.java.general.separators")); boolean throwException = false; /* noeud non nul et de type ELEMENT */ if (null != myNode && Node.ELEMENT_NODE == myNode.getNodeType()) { /* on rcupre le 1er noeud fils */ myNode = ConfigUtility.getNodeByTagName(myNode, CompilingMessages.getString("configuration.java.general.separators.separator")); /* si ce noeud existe */ if (null != myNode) { NamedNodeMap attrMap = null; String attrValue = null, attrName = null; /* tant qu'il y a des noeuds */ while (null != myNode) { if (Node.ELEMENT_NODE == myNode.getNodeType()) { /* on rcupre les attributs du noeud */ attrMap = myNode.getAttributes(); /* attribut "cl" */ attrName = (attrMap.getNamedItem(CompilingMessages .getString("configuration.java.general.separators.separator.name"))).getNodeValue() .trim(); /* attribut "valeur" */ attrValue = (attrMap.getNamedItem(CompilingMessages .getString("configuration.java.general.separators.separator.value"))).getNodeValue() .trim(); /* on mappe les cls / valeurs -> rflexion. */ mapKeyValue(attrName, attrValue); } /* on itre */ myNode = myNode.getNextSibling(); } attrMap = null; attrName = null; attrValue = null; /* erreur rencontre --> exception lancer */ } else { throwException = true; } /* erreur rencontre --> exception lancer */ } else { throwException = true; } myNode = null; /* erreur rencontre */ if (throwException) { /* exception lance */ throw new Exception(CompilingMessages.getString("exception.xml.node_not_found")); } }
From source file:org.squale.squalix.tools.compiling.java.parser.wsad.JWSADParser.java
/** * Lance le parsing.//from w w w . ja v a 2s . c om * * @param pProject projet WSAD * @return <code>true</code> en cas de succs, <code>false</code> sinon. * @throws Exception lorque le fichier est mal format */ private boolean parse(JWSADProject pProject) throws Exception { /* on part du principe que le parsing fonctionnera */ boolean isParsed = true; /* * on rcupre le noeud "<classpath>" du fichier ".classpath" du projet WSAD */ Node myNode = JParserUtility.getRootNode(pProject.getPath() + mConfiguration.getFilename(), mConfiguration.getClasspathAnchor()); /* * si le noeud n'est pas nul, et qu'il s'agit d'un noeud de type ELEMENT_NODE */ if (null != myNode && Node.ELEMENT_NODE == myNode.getNodeType()) { /* on rcupre le noeud "<classpathentry>" */ myNode = JParserUtility.getNodeByTagName(myNode, mConfiguration.getClasspathentry()); /* on initialise les variables pour la bouche suivre */ NamedNodeMap attrMap = null; Node exported = null; String attrValue = null, attrName = null, exportedAttr = "false"; /* si le noeud n'est pas nul */ while (null != myNode) { /* si le noeud est de type ELEMENT_NODE */ if (Node.ELEMENT_NODE == myNode.getNodeType()) { /* on rcupre les attributs du noeud */ attrMap = myNode.getAttributes(); /* on rcupre la valeur de l'attribut KIND */ attrName = (attrMap.getNamedItem(mConfiguration.getKind())).getNodeValue().trim(); /* on rcupre la valeur de l'attribut PATH */ attrValue = (attrMap.getNamedItem(mConfiguration.getPath())).getNodeValue().trim(); /* on rcupre la valeur de l'attribut EXPORTED */ // Par dfaut exported = false; exportedAttr = "false"; exported = attrMap.getNamedItem(mConfiguration.getExported()); if (null != exported) { exportedAttr = exported.getNodeValue().trim(); } /* * on mappe les couples cl / valeur car il faut traiter les lib en premier */ mapKeyValues(pProject, attrName, attrValue, Boolean.valueOf(exportedAttr).booleanValue()); } /* on itre sur les noeuds */ myNode = myNode.getNextSibling(); } /* on fait le mnage */ attrMap = null; attrName = null; attrValue = null; /* si le noeud est nul ou du mauvais type */ } else { /* alors on lance une exception */ throw new Exception(CompilingMessages.getString("exception.xml.node_not_found")); } myNode = null; /* * on cre un buffer pour dfinir le chemin du dossier contenant les ressources ncessaires la compilation */ StringBuffer path = new StringBuffer(CompilingMessages.getString("dir.root.java")); path.append(JCompilingConfiguration.UNIX_SEPARATOR); path.append(pProject.getJavaVersion()); path.append(JCompilingConfiguration.UNIX_SEPARATOR); /* * on cre le descripteur de fichier et on appelle la mthode addCompilingRessourcesToClasspath(File) */ File f = new File(path.toString().replace('.', '_')); addCompilingRessourcesToClasspath(pProject, f); f = null; return isParsed; }
From source file:org.squale.squalix.tools.compiling.java.parser.wsad.JWSADParserConfiguration.java
/** * Cette mthode rcupre le nom des cls ncessaires pour parser le fichier de classpath. * /* ww w . j a v a2 s. c om*/ * @param pNode noeud XML parser. * @param pRootAnchor noeud racine. * @param pChildAnchor noeud fils. * @param pChildName attribut "name" du noeud fils. * @param pChildValue attribut "value" du noeud fils. * @throws Exception exception en cas d'erreur lors du parsing. * @see #mapKeyValues(String, String) */ private void getTagsFromXML(final Node pNode, final String pRootAnchor, final String pChildAnchor, final String pChildName, final String pChildValue) throws Exception { LOGGER.trace(CompilingMessages.getString("logs.task.entering_method")); /* on rcupre le noeud racine contenant les cls */ Node myNode = ConfigUtility.getNodeByTagName(pNode, pRootAnchor); boolean throwException = false; /* si le noeud est bien trouv */ if (null != myNode && Node.ELEMENT_NODE == myNode.getNodeType()) { /* on rcupre le premier noeud fils */ myNode = ConfigUtility.getNodeByTagName(myNode, pChildAnchor); if (null != myNode) { /* * on initialise des variables pour la boucle qui va suivre */ NamedNodeMap attrMap = null; String attrValue = null, attrName = null; /* tant qu'il y a des noeuds */ while (null != myNode) { /* s'il est de type ELEMENT */ if (Node.ELEMENT_NODE == myNode.getNodeType()) { /* rcupration des attributs du noeud */ attrMap = myNode.getAttributes(); /* attribut "cl" */ attrName = (attrMap.getNamedItem(pChildName)).getNodeValue().trim(); /* attribut "valeur" */ attrValue = (attrMap.getNamedItem(pChildValue)).getNodeValue().trim(); /* on mappe les cls et les valeurs */ mapKeyValues(attrName, attrValue); } /* on itre sur les noeuds */ myNode = myNode.getNextSibling(); } /* mnage */ attrMap = null; attrName = null; attrValue = null; } else { /* noeud vide */ throwException = true; } } else { /* noeud vide */ throwException = true; } myNode = null; /* une erreur s'est produite : le noeud tait vide */ if (throwException) { /* on lance l'exception en rapport */ throw new Exception(CompilingMessages.getString("exception.xml.node_not_found")); } }
From source file:org.squale.squalix.tools.mccabe.McCabeConfiguration.java
/** * Parse le fichier de configuration afin d'en extraire la configuration au format objet. * /*from w ww .java 2 s .c o m*/ * @param pProject projet analyser. * @param pFile nom du fichier de configuration. * @param pDatas la liste des paramtres temporaires du projet * @return la configuration demande * @throws Exception si un problme de parsing apparait. * @roseuid 42B97169031D */ public static McCabeConfiguration build(final ProjectBO pProject, final String pFile, TaskData pDatas) throws Exception { McCabeConfiguration config = new McCabeConfiguration(); config.mProject = pProject; // Recuperation de la configuration Node root = ConfigUtility.getRootNode(pFile, McCabeMessages.getString("configuration.root")); if (null != root) { // Rcupration du noeud contenant la configuration gnrale Node generalNode = ConfigUtility.getNodeByTagName(root, McCabeMessages.getString("configuration.general")); setGeneral(generalNode, config); // Rcupration du noeud contenant la configuration des profils Node profilesNode = ConfigUtility.getNodeByTagName(root, McCabeMessages.getString("configuration.profiles")); Node profileNode = profilesNode.getFirstChild(); boolean found = false; // Recherche du profil associ au projet String valueProject = pProject.getProfile().getName(); // Rcupration du dialecte associ au langage StringParameterBO dialect = (StringParameterBO) pProject.getParameters().getParameters() .get(ParametersConstants.DIALECT); if (null != dialect) { valueProject += dialect.getValue(); } while (null != profileNode && !found) { String valueConfig = ConfigUtility.getAttributeValueByName(profileNode, McCabeMessages.getString("configuration.profile.name")); if (profileNode.getNodeType() == Node.ELEMENT_NODE && valueConfig.equals(valueProject)) { found = true; // On parse la configuration associe au profil setProfile(profileNode, config); } else { profileNode = profileNode.getNextSibling(); } } if (!found) { throw new McCabeException(McCabeMessages.getString("exception.no_profile") + valueProject); } } // On met en place les valeurs des paramtres du projet setParameters(config, pDatas); // Et enfin on cre un espace propre au projet, totalement alatoire, // avec une composante dpendant du temps, pour s'assurer que deux audits ne seront // pas gnrs dans le mme dossier. config.mSubWorkspace = new File(config.mWorkspace.getAbsolutePath() + File.separator + System.currentTimeMillis() + (int) Math.random() * RANDOM_RANGE); // On cre le dossier destin accueillir les fichiers McCabe if (!config.mSubWorkspace.mkdirs()) { throw new McCabeException( McCabeMessages.getString("exception.no_subworkspace") + config.mSubWorkspace.getAbsolutePath()); } LOGGER.debug(McCabeMessages.getString("logs.debug.subworkspace_created") + config.mSubWorkspace.getAbsolutePath()); return config; }
From source file:org.squale.squalix.tools.mccabe.McCabeConfiguration.java
/** * Met la configuration du profil en place. * /*from w ww . j a v a 2s. com*/ * @param pNode le noeud XML parser. * @param pConfiguration l'instance de configuration mettre en place. * @roseuid 42D520A303D2 */ private static void setProfile(final Node pNode, final McCabeConfiguration pConfiguration) { // Nom du parser pConfiguration.mParser = ConfigUtility .getNodeByTagName(pNode, McCabeMessages.getString("configuration.profile.parser")).getFirstChild() .getNodeValue().trim(); // Liste des extensions Node extensionsNode = ConfigUtility.getNodeByTagName(pNode, McCabeMessages.getString("configuration.profile.extensions")); // Les extensions sont spares par des "," StringTokenizer token = new StringTokenizer(extensionsNode.getFirstChild().getNodeValue().trim(), ","); ArrayList extensions = new ArrayList(); // On ajoute les extensions la liste while (token.hasMoreTokens()) { extensions.add(token.nextToken().trim()); } String[] type = new String[0]; // On convertit la liste des extensions en tableau de String pConfiguration.mExtensions = (String[]) extensions.toArray(type); // Rcupration du niveau de mtrique Node metricslevelNode = ConfigUtility.getNodeByTagName(pNode, McCabeMessages.getString("configuration.profile.metrics_level")); if (metricslevelNode != null) { pConfiguration.mMetricsLevel = (String) metricslevelNode.getFirstChild().getNodeValue().trim(); } // Liste des extensions des enttes Node entetesNode = ConfigUtility.getNodeByTagName(pNode, McCabeMessages.getString("configuration.profile.entetes")); if (entetesNode != null) { // Les en-ttes sont spars par des "," token = new StringTokenizer(entetesNode.getFirstChild().getNodeValue().trim(), ","); ArrayList entetes = new ArrayList(); while (token.hasMoreTokens()) { entetes.add(token.nextToken().trim()); } type = new String[0]; // Conversion de la liste crer en tableau de String pConfiguration.mEntetes = (String[]) entetes.toArray(type); } // Liste des paramtres de parsing Node parametersNode = ConfigUtility.getNodeByTagName(pNode, McCabeMessages.getString("configuration.profile.parameters")); ArrayList parameters = new ArrayList(); // Un tag par paramtre Node parameterNode = parametersNode.getFirstChild(); // On ajoute tous les paramtres while (null != parameterNode) { if (parameterNode.getNodeType() == Node.ELEMENT_NODE) { parameters.add( ConfigUtility.filterStringWithSystemProps(parameterNode.getFirstChild().getNodeValue())); } parameterNode = parameterNode.getNextSibling(); } // Conversion en tableau de String pConfiguration.mParseParameters = (String[]) parameters.toArray(type); // Liste des rapports pConfiguration.mReports = getStrListFromNode(pNode, "configuration.profiles.reports"); }
From source file:org.structr.web.entity.dom.DOMNode.java
@Override public Node insertBefore(final Node newChild, final Node refChild) throws DOMException { // according to DOM spec, insertBefore with null refChild equals appendChild if (refChild == null) { return appendChild(newChild); }// ww w . j a v a 2 s. c o m checkWriteAccess(); checkSameDocument(newChild); checkSameDocument(refChild); checkHierarchy(newChild); checkHierarchy(refChild); if (newChild instanceof DocumentFragment) { // When inserting document fragments, we must take // care of the special case that the nodes already // have a NEXT_LIST_ENTRY relationship coming from // the document fragment, so we must first remove // the node from the document fragment and then // add it to the new parent. final DocumentFragment fragment = (DocumentFragment) newChild; Node currentChild = fragment.getFirstChild(); while (currentChild != null) { // save next child in fragment list for later use Node savedNextChild = currentChild.getNextSibling(); // remove child from document fragment fragment.removeChild(currentChild); // insert child into new parent insertBefore(currentChild, refChild); // next currentChild = savedNextChild; } } else { final Node _parent = newChild.getParentNode(); if (_parent != null) { _parent.removeChild(newChild); } try { // do actual tree insertion here treeInsertBefore((DOMNode) newChild, (DOMNode) refChild); } catch (FrameworkException frex) { if (frex.getStatus() == 404) { throw new DOMException(DOMException.NOT_FOUND_ERR, frex.getMessage()); } else { throw new DOMException(DOMException.INVALID_STATE_ERR, frex.getMessage()); } } // allow parent to set properties in new child handleNewChild(newChild); } return refChild; }
From source file:org.structr.web.entity.dom.DOMNode.java
@Override public Node replaceChild(final Node newChild, final Node oldChild) throws DOMException { checkWriteAccess();/*from www . jav a 2s. c om*/ checkSameDocument(newChild); checkSameDocument(oldChild); checkHierarchy(newChild); checkHierarchy(oldChild); if (newChild instanceof DocumentFragment) { // When inserting document fragments, we must take // care of the special case that the nodes already // have a NEXT_LIST_ENTRY relationship coming from // the document fragment, so we must first remove // the node from the document fragment and then // add it to the new parent. // replace indirectly using insertBefore and remove final DocumentFragment fragment = (DocumentFragment) newChild; Node currentChild = fragment.getFirstChild(); while (currentChild != null) { // save next child in fragment list for later use final Node savedNextChild = currentChild.getNextSibling(); // remove child from document fragment fragment.removeChild(currentChild); // add child to new parent insertBefore(currentChild, oldChild); // next currentChild = savedNextChild; } // finally, remove reference element removeChild(oldChild); } else { Node _parent = newChild.getParentNode(); if (_parent != null && _parent instanceof DOMNode) { _parent.removeChild(newChild); } try { // replace directly treeReplaceChild((DOMNode) newChild, (DOMNode) oldChild); } catch (FrameworkException frex) { if (frex.getStatus() == 404) { throw new DOMException(DOMException.NOT_FOUND_ERR, frex.getMessage()); } else { throw new DOMException(DOMException.INVALID_STATE_ERR, frex.getMessage()); } } // allow parent to set properties in new child handleNewChild(newChild); } return oldChild; }