001    /**
002     * Implements the CFML Function isdate
003     */
004    package railo.runtime.functions.decision;
005    
006    import railo.runtime.Component;
007    import railo.runtime.PageContext;
008    import railo.runtime.exp.PageException;
009    import railo.runtime.ext.function.Function;
010    import railo.runtime.java.JavaObject;
011    import railo.runtime.reflection.Reflector;
012    import railo.runtime.type.ObjectWrap;
013    
014    public final class IsInstanceOf implements Function {
015            public static boolean call(PageContext pc , Object obj,String typeName) throws PageException {
016                    if(obj instanceof Component)
017                            return ((Component)obj).instanceOf(typeName);
018                    if(obj instanceof JavaObject)
019                            return Reflector.isInstaneOf(((JavaObject)obj).getClazz(), typeName);
020                    if(obj instanceof ObjectWrap)
021                            return call(pc, ((ObjectWrap)obj).getEmbededObject(), typeName);
022                    
023                    
024                    return Reflector.isInstaneOf(obj.getClass(), typeName);
025                    
026            }
027    }