001 package railo.runtime.functions.system; 002 003 import railo.commons.lang.SizeAndCount; 004 import railo.commons.lang.SizeAndCount.Size; 005 import railo.runtime.PageContext; 006 import railo.runtime.exp.PageException; 007 import railo.runtime.ext.function.Function; 008 import railo.runtime.op.Caster; 009 import railo.runtime.type.Struct; 010 import railo.runtime.type.StructImpl; 011 import railo.runtime.type.util.KeyConstants; 012 013 public final class SizeOf implements Function { 014 public static Object call(PageContext pc , Object object) throws PageException { 015 return call(pc, object,false); 016 } 017 public static Object call(PageContext pc , Object object, boolean complex) throws PageException { 018 Size size = SizeAndCount.sizeOf(object); 019 if(!complex) 020 return Caster.toDouble(size.size); 021 022 Struct sct=new StructImpl(); 023 sct.set(KeyConstants._size, Caster.toDouble(size.size)); 024 sct.set(KeyConstants._count, Caster.toDouble(size.count)); 025 return sct; 026 } 027 }