001    package railo.runtime.type;
002    
003    import railo.runtime.exp.PageException;
004    import railo.runtime.op.Castable;
005    import railo.runtime.type.ref.Reference;
006    
007    /**
008     * represent a Single column of a query object
009     */
010    public interface QueryColumn extends Collection,Reference,Castable {
011        
012        /**
013         * removes the value but dont the index
014         * @param row
015         * @return removed Object
016         * @throws PageException
017         */
018        public Object remove(int row)throws PageException;
019        
020        /**
021         * remove a row from query
022         * @param row
023         * @return removed value
024         * @throws PageException
025         */
026        public Object removeRow(int row)throws PageException;
027        
028        /**
029         * removes method with int as key
030         * @param row
031         * @return removed Object
032         */
033        public Object removeEL(int row);
034        
035            /**
036             * get method with a int as key
037             * @param row row to get value
038             * @return row value
039             * @throws PageException
040             */
041            public Object get(int row) throws PageException;
042    
043            /**
044             * getExpressionLess method with a int as key
045             * @param row row to get value
046             * @return row value
047             */
048            public Object get(int row, Object defaultValue);
049    
050            /**
051             * set method with a int as key
052             * @param row row to set
053             * @param value value to set
054             * @return setted value
055             * @throws PageException
056             */
057            public Object set(int row, Object value) throws PageException;
058    
059            /**
060             * adds a value to the column
061             * @param value value to add
062             */
063            public void add(Object value);
064            
065    
066            /**
067             * setExpressionLess method with a int as key
068             * @param row row to set
069             * @param value value to set
070             * @return setted value
071             */
072            public Object setEL(int row, Object value);
073    
074    
075            /**
076             * @param count adds count row to the column
077             */
078            public void addRow(int count);
079    
080            /**
081             * @return returns the type of the Column (java.sql.Types.XYZ)
082             */
083            public int getType();
084            
085            /**
086             * @return returns the type of the Column as String
087             */
088            public String getTypeAsString();
089    
090        /**
091         * cuts row to defined size
092         * @param maxrows
093         */
094        public void cutRowsTo(int maxrows);
095            
096    }