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    }