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 }