001 /** 002 * Implements the Cold Fusion Function listvaluecount 003 */ 004 package railo.runtime.functions.list; 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 import railo.runtime.type.List; 011 012 public final class ListValueCount implements Function { 013 014 private static final long serialVersionUID = -1808030347105091742L; 015 016 public static double call(PageContext pc , String list, String value) throws PageException { 017 return call(pc,list,value,",",false); 018 } 019 020 public static double call(PageContext pc , String list, String value, String delimeter) throws PageException { 021 return call(pc,list,value,delimeter,false); 022 } 023 public static double call(PageContext pc , String list, String value, String delimeter,boolean includeEmptyFields) throws PageException { 024 int count=0; 025 Array arr= includeEmptyFields?List.listToArray(list,delimeter):List.listToArrayRemoveEmpty(list,delimeter); 026 int len=arr.size(); 027 028 for(int i=1;i<=len;i++) { 029 if(arr.getE(i).equals(value))count++; 030 } 031 return count; 032 } 033 }