001    /**
002     * Implements the Cold Fusion Function tostring
003     */
004    package railo.runtime.functions.string;
005    
006    import java.io.UnsupportedEncodingException;
007    
008    import railo.commons.lang.StringUtil;
009    import railo.runtime.PageContext;
010    import railo.runtime.exp.PageException;
011    import railo.runtime.ext.function.Function;
012    import railo.runtime.op.Caster;
013    
014    public final class ToString implements Function {
015            public static String call(PageContext pc ) {
016                    return "";
017            }
018            public static String call(PageContext pc , Object object) throws PageException {
019                    return call(pc,object,null);
020            }
021            public static String call(PageContext pc , Object object, String encoding) throws PageException {
022                    if(StringUtil.isEmpty(encoding)) {
023                            encoding = pc.getResponse().getCharacterEncoding();
024                            if(StringUtil.isEmpty(encoding,true))encoding="UTF-8";
025                    }
026                    
027                    if(object instanceof byte[]){
028                            if(encoding!=null) {
029                            try {
030                                            return new String((byte[])object,encoding);
031                                    } 
032                            catch (UnsupportedEncodingException e) {e.printStackTrace();}
033                    }
034                    return new String((byte[])object);
035                    }
036                    return Caster.toString(object);
037            }
038    }