001    package railo.runtime.sql.exp;
002    
003    public abstract class ExpressionSupport implements Expression {
004    
005            private int index;
006            private String alias;
007            private boolean directionBackward;
008            
009    
010            /**
011             *
012             * @see sql.exp.Expression#setIndex(int)
013             */
014            public void setIndex(int index) {
015                    this.index=index;
016            }
017    
018            /**
019             *
020             * @see sql.exp.Expression#getIndex()
021             */
022            public int getIndex() {
023                    return index;
024            }
025    
026            /**
027             *
028             * @see sql.exp.Expression#getAlias()
029             */
030            public String getAlias() {
031                    if(alias==null) return "column_"+(getIndex()-1);
032                    return alias;
033            }
034    
035            /**
036             *
037             * @see sql.exp.Expression#setAlias(java.lang.String)
038             */
039            public void setAlias(String alias) {
040                    this.alias = alias;
041            }
042    
043            /**
044             *
045             * @see sql.exp.Expression#hasAlias()
046             */
047            public boolean hasAlias() {
048                    return alias!=null;
049            }
050    
051            /**
052             *
053             * @see sql.exp.Expression#hasIndex()
054             */
055            public boolean hasIndex() {
056                    return index!=0;
057            }
058    
059            /**
060             *
061             * @see sql.exp.Expression#setDirectionBackward(boolean)
062             */
063            public void setDirectionBackward(boolean b) {
064                    directionBackward=b;
065            }
066    
067            /**
068             * @return the directionBackward
069             */
070            public boolean isDirectionBackward() {
071                    return directionBackward;
072            }
073    }