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 }