001    /**
002     * Implements the Cold Fusion Function queryaddrow
003     */
004    package railo.runtime.functions.query;
005    
006    import railo.runtime.PageContext;
007    import railo.runtime.exp.FunctionException;
008    import railo.runtime.exp.PageException;
009    import railo.runtime.ext.function.Function;
010    import railo.runtime.op.Caster;
011    import railo.runtime.op.Decision;
012    import railo.runtime.type.Query;
013    
014    public final class QueryAddRow implements Function {
015            public static double call(PageContext pc , Query query) {
016                    query.addRow(1);
017                    return query.getRecordcount();
018            }
019            public static double call(PageContext pc , Query query, Object numberOrData) throws PageException {
020                    if(numberOrData==null) return call(pc, query);
021                    else if(Decision.isNumeric(numberOrData)) {
022                            query.addRow(Caster.toIntValue(numberOrData));
023                    }
024                    else if(Decision.isStruct(numberOrData)) {
025                            query.addRow();
026                            QueryNew.populateRow(query, Caster.toStruct(numberOrData));
027                    }
028                    else if(Decision.isArray(numberOrData)) {
029                            query.addRow();
030                            QueryNew.populateRow(query, Caster.toArray(numberOrData));
031                    }
032                    else
033                            throw new FunctionException(pc, "QueryAddRow", 2, "data", "you must define a array, a struct or a number");
034                    
035                    
036                    return query.getRecordcount();
037            }
038    }