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.Array; 008 import railo.runtime.type.ArrayImpl; 009 import railo.runtime.type.KeyImpl; 010 import railo.runtime.type.Query; 011 import railo.runtime.type.QueryColumn; 012 import railo.runtime.type.util.QueryUtil; 013 014 public final class QueryDeleteColumn extends BIF { 015 016 private static final long serialVersionUID = 5363459913899891827L; 017 018 public static Array call(PageContext pc, Query query, String strColumn) throws PageException { 019 return toArray(query.removeColumn(KeyImpl.init(strColumn))); 020 } 021 022 public static Array toArray(QueryColumn column) throws PageException { 023 Array clone=new ArrayImpl(); 024 int len=column.size(); 025 clone.resize(len); 026 027 for(int i=1;i<=len;i++) { 028 clone.setE(i,QueryUtil.getValue(column,i)); 029 } 030 return clone; 031 } 032 033 @Override 034 public Object invoke(PageContext pc, Object[] args) throws PageException { 035 return call(pc,Caster.toQuery(args[0]),Caster.toString(args[1])); 036 } 037 }