001 package railo.runtime.text.xml.struct; 002 003 import org.w3c.dom.Attr; 004 import org.w3c.dom.CDATASection; 005 import org.w3c.dom.Document; 006 import org.w3c.dom.Element; 007 import org.w3c.dom.Node; 008 import org.w3c.dom.Text; 009 010 011 /** 012 * 013 */ 014 public final class XMLStructFactory { 015 /** 016 * @param node 017 * @param caseSensitive 018 * @return XMLStruct instance 019 */ 020 public static XMLStruct newInstance(Node node, boolean caseSensitive) { 021 // TODO set Case Sensitive 022 if(node instanceof XMLStruct) return ((XMLStruct)node); 023 024 if(node instanceof Document) return new XMLDocumentStruct((Document)node,caseSensitive); 025 else if(node instanceof Text) return new XMLTextStruct((Text)node,caseSensitive); 026 else if(node instanceof CDATASection) return new XMLCDATASectionStruct((CDATASection)node,caseSensitive); 027 else if(node instanceof Element) return new XMLElementStruct((Element)node,caseSensitive); 028 else if(node instanceof Attr) return new XMLAttrStruct((Attr)node,caseSensitive); 029 030 else return new XMLNodeStruct(node,caseSensitive); 031 } 032 }