001    /**
002     * Implements the CFML Function queryaddrow
003     */
004    package railo.runtime.functions.query;
005    
006    import railo.runtime.PageContext;
007    import railo.runtime.exp.PageException;
008    import railo.runtime.functions.BIF;
009    import railo.runtime.op.Caster;
010    import railo.runtime.op.Decision;
011    import railo.runtime.type.Query;
012    
013    public final class QueryAddRow extends BIF {
014    
015            private static final long serialVersionUID = 1252130736067181453L;
016    
017            public static double call(PageContext pc , Query query) {
018                    query.addRow(1);
019                    return query.getRecordcount();
020            }
021            public static double call(PageContext pc , Query query, Object numberOrData) throws PageException {
022                    if(numberOrData==null) return call(pc, query);
023                    else if(Decision.isNumeric(numberOrData)) {
024                            query.addRow(Caster.toIntValue(numberOrData));
025                    }
026                    else {
027                            QueryNew.populate(pc, query, numberOrData);
028                    }
029                    return query.getRecordcount();
030            }
031            
032            @Override
033            public Object invoke(PageContext pc, Object[] args) throws PageException {
034                    if(args.length==1)return call(pc,Caster.toQuery(args[0]));
035                    return call(pc,Caster.toQuery(args[0]),Caster.toString(args[1]));
036            }
037    }