001    /**
002     * Implements the Cold Fusion Function arraydeleteat
003     */
004    package railo.runtime.functions.arrays;
005    
006    import railo.runtime.PageContext;
007    import railo.runtime.exp.PageException;
008    import railo.runtime.ext.function.Function;
009    import railo.runtime.type.Array;
010    
011    
012    public final class ArrayDelete implements Function {
013    
014            private static final long serialVersionUID = 1120923916196967210L;
015            
016            public static boolean call(PageContext pc , Array array, Object value) throws PageException {
017                    return call(pc, array, value,null);
018            }
019            public static boolean call(PageContext pc , Array array, Object value, String scope) throws PageException {
020                    boolean onlyFirst=!"all".equalsIgnoreCase(scope);
021                    double pos;
022                    if((pos=ArrayFindNoCase.call(pc, array, value))>0){
023                            array.removeE((int)pos);
024                            if(onlyFirst) return true;
025                    }
026                    else return false;
027                    
028                    while((pos=ArrayFindNoCase.call(pc, array, value))>0){
029                            array.removeE((int)pos);
030                    }
031                    
032                    return true;
033            }
034            
035    }