001    package railo.runtime.functions.poi;
002    
003    import railo.commons.io.res.Resource;
004    import railo.runtime.PageContext;
005    import railo.runtime.exp.ApplicationException;
006    import railo.runtime.exp.PageException;
007    import railo.runtime.op.Caster;
008    import railo.runtime.op.Decision;
009    import railo.runtime.poi.Excel;
010    
011    public class SpreadSheetWrite {
012            public static String call(PageContext pc,Excel excel, String path) throws PageException  {
013                    return call(pc, excel, path, null, false);
014            }
015            public static String call(PageContext pc,Excel excel, String path,Object passwordOrOverwrite) throws PageException  {
016                    if(Decision.isBoolean(passwordOrOverwrite))
017                            return call(pc, excel, path, null, Caster.toBooleanValue(passwordOrOverwrite));
018                    return call(pc, excel, path, passwordOrOverwrite, false);       
019            }
020            
021            public static String call(PageContext pc,Excel excel, String path,Object oPassword,boolean overwrite) throws PageException  {
022                    Resource res=Caster.toResource(pc,path, false);
023                    String password=oPassword==null?null:Caster.toString(oPassword);
024                    if(!overwrite && res.isFile())
025                            throw new ApplicationException("Resource ["+res+"] already exist");
026                    
027                    
028                    excel.write(res,password);
029                    return null;
030            }
031    }