001    package railo.runtime.functions.arrays;
002    
003    
004    import railo.runtime.PageContext;
005    import railo.runtime.exp.PageException;
006    import railo.runtime.ext.function.Function;
007    import railo.runtime.op.Decision;
008    import railo.runtime.op.Operator;
009    import railo.runtime.type.Array;
010    
011    public final class ArrayFind implements Function {
012    
013        public static double call(PageContext pc , Array array, Object value) throws PageException {
014            return find(array,value,true);
015        }
016        public static int find(Array array, Object value, boolean caseSensitive) throws PageException {
017            int len=array.size();
018            boolean valueIsSimple=Decision.isSimpleValue(value);
019            Object o;
020            for(int i=1;i<=len;i++) {
021                o=array.get(i,null);
022                if(o!=null && Operator.equals(o, value,caseSensitive,!valueIsSimple)) return i;
023            }
024            return 0;
025        }
026    }