001    /*
002      GRANITE DATA SERVICES
003      Copyright (C) 2011 GRANITE DATA SERVICES S.A.S.
004    
005      This file is part of Granite Data Services.
006    
007      Granite Data Services is free software; you can redistribute it and/or modify
008      it under the terms of the GNU Library General Public License as published by
009      the Free Software Foundation; either version 2 of the License, or (at your
010      option) any later version.
011    
012      Granite Data Services is distributed in the hope that it will be useful, but
013      WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
014      FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
015      for more details.
016    
017      You should have received a copy of the GNU Library General Public License
018      along with this library; if not, see <http://www.gnu.org/licenses/>.
019    */
020    
021    package org.granite.generator.gsp.token;
022    
023    /**
024     * @author Franck WOLFF
025     */
026    public abstract class Token {
027    
028        private final int index;
029        private final String content;
030    
031        public Token(int index, String content) {
032            if (content == null)
033                throw new NullPointerException("content cannot be null");
034            this.index = index;
035            this.content = content;
036        }
037    
038        public final String getContent() {
039            return content;
040        }
041    
042        public int getIndex() {
043            return index;
044        }
045    
046        @Override
047        public String toString() {
048            return this.getClass().getName() + " [" + index + ", " + content + ']';
049        }
050    }