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 }