001/**
002 *
003 * Copyright (c) 2014, the Railo Company Ltd. All rights reserved.
004 *
005 * This library is free software; you can redistribute it and/or
006 * modify it under the terms of the GNU Lesser General Public
007 * License as published by the Free Software Foundation; either 
008 * version 2.1 of the License, or (at your option) any later version.
009 * 
010 * This library is distributed in the hope that it will be useful,
011 * but WITHOUT ANY WARRANTY; without even the implied warranty of
012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
013 * Lesser General Public License for more details.
014 * 
015 * You should have received a copy of the GNU Lesser General Public 
016 * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
017 * 
018 **/
019package lucee.runtime.sql.exp;
020
021public abstract class ExpressionSupport implements Expression {
022
023        private int index;
024        private String alias;
025        private boolean directionBackward;
026        
027
028        @Override
029        public void setIndex(int index) {
030                this.index=index;
031        }
032
033        @Override
034        public int getIndex() {
035                return index;
036        }
037
038        @Override
039        public String getAlias() {
040                if(alias==null) return "column_"+(getIndex()-1);
041                return alias;
042        }
043
044        @Override
045        public void setAlias(String alias) {
046                this.alias = alias;
047        }
048
049        @Override
050        public boolean hasAlias() {
051                return alias!=null;
052        }
053
054        @Override
055        public boolean hasIndex() {
056                return index!=0;
057        }
058
059        @Override
060        public void setDirectionBackward(boolean b) {
061                directionBackward=b;
062        }
063
064        /**
065         * @return the directionBackward
066         */
067        public boolean isDirectionBackward() {
068                return directionBackward;
069        }
070}