private static void traverseLevel(TreeWalker walker, Element topParent, String indent) { // describe current node: Element current = (Element) walker.getCurrentNode(); //System.out.println(indent + "- " + ((Element) current).getTagName()); // store elements which need to be moved if (topParent != null) { Element parent = (Element) current.getParentNode(); if (parent != null && !topParent.equals(parent)) { OutputFilter outputFilter = (OutputFilter)walker.getFilter(); outputFilter.getToAddList(topParent).add(current); } } // traverse children: for (Node n = walker.firstChild(); n != null; n = walker.nextSibling()) { traverseLevel(walker, current, indent + '\t'); } // return position to the current (level up): walker.setCurrentNode(current); }
public void parse(Element typeNode,TreeWalker walker,TaskContext ctx) { super.parse(typeNode,walker,ctx); // <field/component ... > TypeNativeDirectCallbackImpl typeDec = getTypeNativeDirectCallback(); // En el caso de user defined puede estar ya definida la signatura // por lo que la carga de una nueva es opcional y se hace si detectamos que // que en el XML se actualiza la signatura if ((typeDec.getBehaviorSignature() == null) || TreeWalkerUtil.hasChildElement(walker)) { // Una vez aqu� dentro, deben existir nodos de declaraci�n de la signatura o falla NativeBehaviorSignatureXML sigXML = typeDec.newBehaviorSignatureXML(); sigXML.parse(typeNode,walker,ctx); typeDec.setBehaviorSignature(sigXML.getBehaviorSignature()); } }
public Element getElementById(String elementId) { Element element = xmljGetElementById(elementId); if (element == null) { TreeWalker walker = createTreeWalker(this, NodeFilter.SHOW_ELEMENT, null, false); for (Node node = walker.nextNode(); node != null; node = walker.nextNode()) { GnomeElement e = (GnomeElement) node; if (e.userIdAttrs != null) { for (Iterator i = e.userIdAttrs.iterator(); i.hasNext(); ) { Attr attr = (Attr) i.next(); if (attr.getNodeValue().equals(elementId)) { return e; } } } } } return element; }
private List<Feature> parseTree(TreeWalker walker, String tag, String chr, List<Feature> features) { Node parent = walker.getCurrentNode(); Element n = (Element) walker.firstChild(); while (n != null) { if (n.getTagName().equalsIgnoreCase(tag)) { Feature f = getFeature(walker, chr); if (f != null) { features.add(f); } n = (Element) walker.nextSibling(); continue; } parseTree(walker, tag, chr, features); n = (Element) walker.nextSibling(); } walker.setCurrentNode(parent); return features; }
private void setPackageToElements(TreeWalker tw, String currentPackage) { Node n = tw.getCurrentNode(); XmiElement element = new XmiElement((Element) n, this); if (isPackageElement(element)) { if (currentPackage.isEmpty()) { currentPackage = element.getNameTag(); } else { currentPackage = currentPackage + XmiTags.SEPARATOR + element.getNameTag(); } logger.debug("Current package has changed " + currentPackage); } else if (elementIdMap.get(element.getXmiId()) != null) { elementIdMap.get(element.getXmiId()).setPackageContainer(currentPackage); } for (Node child = tw.firstChild(); child != null; child = tw.nextSibling()) { setPackageToElements(tw, currentPackage); } tw.setCurrentNode(n); }
private void dropInitialAlef(Document doc) throws DOMException { TreeWalker tw = ((DocumentTraversal) doc).createTreeWalker(doc, NodeFilter.SHOW_ELEMENT, new NameNodeFilter(MaryXML.TOKEN), false); Element m = null; boolean prevEndsWithVowel = false; while ((m = (Element) tw.nextNode()) != null) { System.out.println("Element: "+m.getTagName()); if (m != null && m.getTagName().equals(MaryXML.TOKEN)) { String transcription = m.getAttribute("ph"); System.out.println("transcription: "+transcription+", prevEndsWithVowel: "+prevEndsWithVowel); if ( transcription.startsWith("' a ") && prevEndsWithVowel ) { System.out.println("Removing A"); m.setAttribute("ph", transcription.replaceAll("^' a -?","' ")); } if ( transcription.matches(".*[AUIaui][01]?$") ) { prevEndsWithVowel = true; } } } }
protected void vocaliseDoc(Document doc) throws Exception { TreeWalker tw = ((DocumentTraversal) doc).createTreeWalker(doc, NodeFilter.SHOW_ELEMENT, new NameNodeFilter(MaryXML.TOKEN), false); Element t = null; StringBuilder origText = new StringBuilder(); while ((t = (Element) tw.nextNode()) != null) { //if (MaryDomUtils.hasAncestor(t, MaryXML.SAYAS) || t.hasAttribute("ph") || t.hasAttribute("sounds_like")) { // ignore token //continue; origText.append(" " + MaryDomUtils.tokenText(t)); } String vocText = vocaliseText(origText.toString()); String[] vocTextList = vocText.split(" "); TreeWalker tw2 = ((DocumentTraversal) doc).createTreeWalker(doc, NodeFilter.SHOW_ELEMENT, new NameNodeFilter(MaryXML.TOKEN), false); Element t2 = null; int i = 0; while ((t2 = (Element) tw2.nextNode()) != null && i < vocTextList.length) { MaryDomUtils.setTokenText(t2, vocTextList[i]); i++; } }
private static int traverseLevel(TreeWalker walker, int counter) { // describe current node: final Node parend = walker.getCurrentNode(); if (parend instanceof Element) { if (((Element) parend).getAttribute("id").length() == 0) { ((Element) parend).setAttribute("id", "gen-id-" + counter); counter++; } } // traverse children: for (Node n = walker.firstChild(); n != null; n = walker.nextSibling()) { counter = traverseLevel(walker, counter); } // return position to the current (level up): walker.setCurrentNode(parend); return counter; }
private static void buildOutputDom(Element root, OutputFilter outputFilter) { try { TreeWalker walker = new TwsTreeWalker(root, NodeFilter.SHOW_ELEMENT, outputFilter, false); traverseLevel(walker,null,""); outputFilter.doOutPut(); } finally { if (outputFilter != null) { outputFilter.map.clear(); } } }
/** * Create and return a TreeWalker. * * @param root The root of the iterator. * @param whatToShow The whatToShow mask. * @param filter The NodeFilter installed. Null means no filter. * @param entityReferenceExpansion true to expand the contents of * EntityReference nodes * @since WD-DOM-Level-2-19990923 */ public TreeWalker createTreeWalker(Node root, int whatToShow, NodeFilter filter, boolean entityReferenceExpansion) { if (root == null) { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } return new TreeWalkerImpl(root, whatToShow, filter, entityReferenceExpansion); }
public static CtField getCtFieldFromXMLDirectly(Element classNode,CtClass ctClass) { TreeWalker walker = TreeWalkerUtil.createTreeWalker(classNode); Element fieldNode = TreeWalkerUtil.firstChildElement(walker, FieldOfClassXML.fieldTagName(), true); String fieldName = FieldOfClassXML.getName(fieldNode); try { return ctClass.getDeclaredField(fieldName); } catch(NotFoundException ex) { throw new JNIEasyException(ex); } }
public static TreeWalker createTreeWalker(Element node) { //DocumentTraversal doc = (DocumentTraversal)node.getOwnerDocument(); //return doc.createTreeWalker(node,NodeFilter.SHOW_ELEMENT,null,true); return new TreeWalkerImpl(node,NodeFilter.SHOW_ELEMENT,null,true); }
public static boolean hasChildElement(TreeWalker walker) { Node current = walker.getCurrentNode(); Node child = walker.firstChild(); if (child != null) { walker.setCurrentNode(current); return true; } return false; }
private static void checkElement(Element childNode,TreeWalker walker,String tagName,boolean mustExist,String type) { if (childNode == null) { if (mustExist) throw new JNIEasyXMLException("Expected a " + type + " element (<" + tagName + ">)",walker.getCurrentNode()); } else if ((tagName != null) && !childNode.getTagName().equals(tagName)) throw new JNIEasyXMLException("Expected element with tag name: \"" + tagName + "\"",childNode); }
private static void checkElement(Element childNode,TreeWalker walker,boolean mustExist,String type) { if (childNode == null) { if (mustExist) throw new JNIEasyXMLException("Expected a " + type + " element",walker.getCurrentNode()); } }
public void parse(Element classNode,TreeWalker walker) { // Ej. <class name="SimpleClassName" libraryPath="User32.dll"> JavaClassAsNativeMultipleFieldContainerImpl javaClass = getJavaClassAsMultipleFieldContainer(); Attr libPathAtt = classNode.getAttributeNode("libraryPath"); if (libPathAtt != null) { String libraryPath = libPathAtt.getValue(); javaClass.setLibraryPath(libraryPath); } }
public void parse(Element constrNode,TreeWalker walker,TaskContext ctx) { ClassTypeNativeMultipleFieldContainerImpl thisClassType = (ClassTypeNativeMultipleFieldContainerImpl)getJavaClassAsNativeCapable().getClassTypeNativeCapable(); ConstructorSignatureXML sigXML = ConstructorSignatureXML.newConstructorSignatureXML(); sigXML.setThisClassType(thisClassType); sigXML.parse(constrNode,walker,ctx); NativeConstructorSignatureImpl sig = sigXML.getConstructorSignature(); ConstructorOfClassImpl constr = ConstructorOfClassImpl.newConstructorOfClass(sig,thisClassType); setConstructorOfClass(constr); }
public void parse(Element typeNode,TreeWalker walker,TaskContext ctx) { super.parse(typeNode,walker,ctx); // <field/component ... > TypeDLLBehaviorImpl typeDec = getTypeDLLBehavior(); NativeBehaviorSignatureXML sigXML = typeDec.newBehaviorSignatureXML(); sigXML.parse(typeNode,walker,ctx); typeDec.setBehaviorSignature(sigXML.getBehaviorSignature()); }
public void parse(Element typeNode,TreeWalker walker,TaskContext ctx) { super.parse(typeNode,walker,ctx); // <field/component ... > TypeNativeBehaviorDefaultImpl typeDec = getTypeNativeBehaviorDefault(); NativeBehaviorSignatureXML sigXML = typeDec.newBehaviorSignatureXML(); sigXML.parse(typeNode,walker,ctx); typeDec.setBehaviorSignature(sigXML.getBehaviorSignature()); }
public void parse(Element typeNode,TreeWalker walker,TaskContext ctx) { super.parse(typeNode,walker,ctx); // <field/component ... > TypeNativeBehaviorReflectionWrapperImpl typeDec = getTypeNativeBehaviorReflectionWrapper(); NativeBehaviorSignatureXML sigXML = typeDec.newBehaviorSignatureXML(); sigXML.parse(typeNode,walker,ctx); typeDec.setBehaviorSignature(sigXML.getBehaviorSignature()); }
public void parse(Element typeNode,TreeWalker walker,TaskContext ctx) { super.parse(typeNode,walker,ctx); // <field/component ... > TypeNativeCallbackDefaultImpl typeDec = getTypeNativeCallbackDefault(); NativeBehaviorSignatureXML sigXML = typeDec.newBehaviorSignatureXML(); sigXML.parse(typeNode,walker,ctx); typeDec.setBehaviorSignature(sigXML.getBehaviorSignature()); }
public void parse(Element typeNode,TreeWalker walker,TaskContext ctx) { super.parse(typeNode,walker,ctx); // <field/component ... > TypeNativeBehaviorReflectionImpl typeDec = getTypeNativeBehaviorReflection(); NativeBehaviorSignatureXML sigXML = typeDec.newBehaviorSignatureXML(); sigXML.parse(typeNode,walker,ctx); typeDec.setBehaviorSignature(sigXML.getBehaviorSignature()); }
public void parse(Element typeNode, TreeWalker walker, TaskContext ctx) { super.parse(typeNode, walker, ctx); TypeNativePrimitiveImpl typeDec = getTypeNativePrimitive(); parseAttMemSize(typeNode,typeDec); }
/** * <b>DOM</b>: Implements {@link * DocumentTraversal#createTreeWalker(Node,int,NodeFilter,boolean)}. */ public TreeWalker createTreeWalker(Node root, int whatToShow, NodeFilter filter, boolean entityReferenceExpansion) throws DOMException { return TraversalSupport.createTreeWalker(this, root, whatToShow, filter, entityReferenceExpansion); }
/** * Creates a new tree walker. */ public static TreeWalker createTreeWalker(AbstractDocument doc, Node root, int whatToShow, NodeFilter filter, boolean entityReferenceExpansion) { if (root == null) { throw doc.createDOMException (DOMException.NOT_SUPPORTED_ERR, "null.root", null); } return new DOMTreeWalker(root, whatToShow, filter, entityReferenceExpansion); }
public TreeWalker createTreeWalker(Node root, int whatToShow, NodeFilter filter, boolean entityReferenceExpansion) throws DOMException { return new DomNodeIterator(root, whatToShow, filter, entityReferenceExpansion, true); }
public TreeWalker createTreeWalker(Node root, int whatToShow, NodeFilter filter, boolean expandEntities) { return new DomNodeIterator(root, whatToShow, filter, expandEntities, true); }
private void parseDocument(Document dasDoc, String chr, List<Feature> features) { try { DocumentTraversal traversal = (DocumentTraversal) dasDoc; TreeWalker treewalker = traversal.createTreeWalker( dasDoc.getDocumentElement(), NodeFilter.SHOW_ELEMENT, null, true); parseTree(treewalker, "FEATURE", chr, features); } catch (Exception ex) { log.error(ex); throw new DataLoadException("Error loading DAS resource (" + ex.toString() + ")", getPath()); } }
private void fillElementIdMap(TreeWalker tw) { Node n = tw.getCurrentNode(); Element element = (Element) n; if (element.getAttributeNode(XmiTags.XMI_ID_TAG) != null) { XmiElement xmiElement = new XmiElement(element, this); elementIdMap.put(xmiElement.getXmiId(), xmiElement); //System.out.println("entity "+xmiElement.getNameTag()+" type "+xmiElement.getXmiType()); } for (Node child = tw.firstChild(); child != null; child = tw.nextSibling()) { fillElementIdMap(tw); } tw.setCurrentNode(n); }
@Test public void canProcessPunctuatedArabicToTokens() throws Exception { // setup MaryInterface mary = new LocalMaryInterface(); mary.setInputType(MaryDataType.TEXT.name()); mary.setOutputType(MaryDataType.TOKENS.name()); mary.setLocale(new Locale("ar")); String example = "مدينة شِبام الأثريَّة التاريخيَّة، إحدى أقدم مُدن"; // exercise Document doc = mary.generateXML(example); // verify assertNotNull(doc); //We should get 8 tokens from this example, 7 words and one comma TreeWalker tw = ((DocumentTraversal) doc).createTreeWalker(doc, NodeFilter.SHOW_ELEMENT, new NameNodeFilter(MaryXML.TOKEN), false); Element t = null; int count = 0; while ((t = (Element) tw.nextNode()) != null) { count++; } assertEquals(8, count); }