001    package railo.runtime.functions.query;
002    
003    import railo.runtime.PageContext;
004    import railo.runtime.exp.PageException;
005    import railo.runtime.functions.BIF;
006    import railo.runtime.op.Caster;
007    import railo.runtime.type.Query;
008    
009    public final class QueryDeleteRow extends BIF {
010    
011            private static final long serialVersionUID = 7610413135885802876L;
012    
013            public static boolean call(PageContext pc, Query query) throws PageException {
014            return call(pc,query,query.getRowCount());
015        }
016        
017        public static boolean call(PageContext pc, Query query, double row) throws PageException {
018            if(row==-9999) row=query.getRowCount();// used for named arguments
019            query.removeRow((int)row);
020            return true;
021        }
022            
023            @Override
024            public Object invoke(PageContext pc, Object[] args) throws PageException {
025                    if(args.length==1)return call(pc,Caster.toQuery(args[0]));
026                    return call(pc,Caster.toQuery(args[0]),Caster.toDoubleValue(args[1]));
027            }
028    }