001 package toolbus.parsercup;
002
003 /**
004 * Like the name implies, this class contains position information (filename + begin and end line /
005 * column).
006 *
007 * @author Arnold Lankamp
008 */
009 public class PositionInformation{
010 private final String fileName;
011 private final int offset;
012 private final int beginLine;
013 private final int beginColumn;
014 private final int endLine;
015 private final int endColumn;
016
017 /**
018 * Constructor.
019 *
020 * @param fileName
021 * The name of the file the position is in.
022 * @param beginLine
023 * The begin line.
024 * @param beginColumn
025 * The begin column.
026 * @param endLine
027 * The end line.
028 * @param endColumn
029 * The end column.
030 */
031 public PositionInformation(String fileName, int offset, int beginLine, int beginColumn, int endLine, int endColumn){
032 this.offset = offset;
033 this.fileName = fileName;
034 this.beginLine = beginLine;
035 this.beginColumn = beginColumn;
036 this.endLine = endLine;
037 this.endColumn = endColumn;
038 }
039
040 /**
041 *
042 * @return the character offset of the file this position is in
043 */
044 public int getOffset() {
045 return offset;
046 }
047 /**
048 * Returns the name of the file this position is in.
049 *
050 * @return The name of the file this position is in.
051 */
052 public String getFileName(){
053 return fileName;
054 }
055
056 /**
057 * Returns the begin line of the position.
058 *
059 * @return The begin line of the position.
060 */
061 public int getBeginLine(){
062 return beginLine;
063 }
064
065 /**
066 * Returns the begin column of the position.
067 *
068 * @return The begin column of the position.
069 */
070 public int getBeginColumn(){
071 return beginColumn;
072 }
073
074 /**
075 * Retuns the end line of the position.
076 *
077 * @return The end line of the position.
078 */
079 public int getEndLine(){
080 return endLine;
081 }
082
083 /**
084 * Retuns the end column of the position.
085 *
086 * @return The end column of the position.
087 */
088 public int getEndColumn(){
089 return endColumn;
090 }
091
092 /**
093 * Returns the serial representation of this position in the following format: filename :
094 * beginline,begincolumn - endline,endcolumn
095 */
096 public String toString(){
097 StringBuilder sb = new StringBuilder();
098 sb.append(fileName);
099 sb.append(" @ ");
100 sb.append(beginLine);
101 sb.append(",");
102 sb.append(beginColumn);
103 sb.append(" - ");
104 sb.append(endLine);
105 sb.append(",");
106 sb.append(endColumn);
107 return sb.toString();
108 }
109 }