001    package railo.runtime.functions.decision;
002    
003    import org.w3c.dom.Attr;
004    import org.w3c.dom.Node;
005    import org.w3c.dom.NodeList;
006    
007    import railo.runtime.PageContext;
008    import railo.runtime.ext.function.Function;
009    import railo.runtime.text.xml.struct.XMLStruct;
010    
011    /**
012     * Check if a value is a XML Attribut (XML Attr Node)
013     */
014    public final class IsXmlAttribute implements Function {
015    
016            public static boolean call(PageContext pc, Object value) {
017                
018                if(value instanceof Attr)return true;
019                else if(value instanceof NodeList) return ((NodeList)value).item(0).getNodeType()==Node.ATTRIBUTE_NODE;
020                else if(value instanceof XMLStruct) return ((XMLStruct)value).getNodeType()==Node.ATTRIBUTE_NODE;
021                return false;
022            }
023    }