package railo.runtime.functions.file;
import java.io.IOException;
import railo.commons.io.res.Resource;
import railo.commons.lang.StringUtil;
import railo.runtime.PageContext;
import railo.runtime.exp.PageException;
import railo.runtime.op.Caster;
public class FileWrite {
public static String call(PageContext pc, Object obj, Object data) throws PageException {
return call(pc,obj,data,pc.getConfig().getResourceCharset());
}
public static String call(PageContext pc, Object obj, Object data,String charset) throws PageException {
FileStreamWrapper fsw=null;
boolean close=false;
if(StringUtil.isEmpty(charset,true))
charset=pc.getConfig().getResourceCharset();
try {
try {
if(obj instanceof FileStreamWrapper) {
fsw=(FileStreamWrapper)obj;
}
else {
close=true;
Resource res = Caster.toResource(pc,obj,false);
pc.getConfig().getSecurityManager().checkFileLocation(res);
fsw=new FileStreamWrapperWrite(res,charset,false,false);
}
fsw.write(data);
}
finally {
if(close && fsw!=null)fsw.close();
}
}
catch (IOException e) {
throw Caster.toPageException(e);
}
return null;
}
}