1 package org.incava.analysis; 2 3 import java.io.*; 4 import java.util.*; 5 import net.sourceforge.pmd.ast.Token; 6 7 8 12 public class Violation implements Comparable  13 { 14 18 private String _message; 19 20 23 private int _beginLine; 24 25 28 private int _beginColumn; 29 30 33 private int _endLine; 34 35 38 private int _endColumn; 39 40 49 public Violation(String message, int beginLine, int beginColumn, int endLine, int endColumn) 50 { 51 _message = message; 52 _beginLine = beginLine; 53 _beginColumn = beginColumn; 54 _endLine = endLine; 55 _endColumn = endColumn; 56 57 tr.Ace.log("[" + _beginLine + ":" + _beginColumn + " .. " + _endLine + ":" + _endColumn + "] (" + _message + ")"); 58 } 59 60 67 public Violation(String message, Token beginToken, Token endToken) 68 { 69 this(message, beginToken.beginLine, beginToken.beginColumn, endToken.endLine, endToken.endColumn); 70 } 71 72 80 public Violation(String message, Token token) 81 { 82 this(message, token.beginLine, token.beginColumn, token.beginLine, token.beginColumn + token.image.length() - 1); 83 } 84 85 89 public String getMessage() 90 { 91 return _message; 92 } 93 94 97 public int getBeginLine() 98 { 99 return _beginLine; 100 } 101 102 105 public int getBeginColumn() 106 { 107 return _beginColumn; 108 } 109 110 113 public int getEndLine() 114 { 115 return _endLine; 116 } 117 118 121 public int getEndColumn() 122 { 123 return _endColumn; 124 } 125 126 133 public int compareTo(Object obj) 134 { 135 if (equals(obj)) { 136 return 0; 137 } 138 else { 139 Violation v = (Violation)obj; 140 int[][] nums = new int[][] { 141 { _beginLine, v.getBeginLine() }, 142 { _beginColumn, v.getBeginColumn() }, 143 { _endLine, v.getEndLine() }, 144 { _endColumn, v.getEndColumn() } 145 }; 146 147 for (int ni = 0; ni < nums.length; ++ni) { 148 int diff = nums[ni][0] - nums[ni][1]; 149 if (diff != 0) { 150 return diff; 151 } 152 } 153 154 return _message.compareTo(v.getMessage()); 155 } 156 } 157 158 165 public boolean equals(Object obj) 166 { 167 Violation v = (Violation)obj; 168 return (_beginLine == v.getBeginLine() && 169 _beginColumn == v.getBeginColumn() && 170 _endLine == v.getEndLine() && 171 _endColumn == v.getEndColumn()); 172 } 173 174 179 public String toString() 180 { 181 return "[" + _beginLine + ":" + _beginColumn + " .. " + _endLine + ":" + _endColumn + "] (" + _message + ")"; 182 } 183 184 } 185
| Popular Tags
|