Coverage Report - org.webslinger.util.Source
 
Classes in this File Line Coverage Branch Coverage Complexity
Source
0%
0/20
0%
0/4
0
 
 1  
 package org.webslinger.util;
 2  
 
 3  
 import java.io.Serializable;
 4  
 
 5  0
 public class Source<T extends Comparable<T>> implements Comparable<Source<T>>, Serializable {
 6  
     private final T source;
 7  
     private final int line;
 8  
     private final int column;
 9  
 
 10  0
     public Source(T source, int line, int column) {
 11  0
         this.source = source;
 12  0
         this.line = line;
 13  0
         this.column = column;
 14  0
     }
 15  
 
 16  
     public T getSource() {
 17  0
         return source;
 18  
     }
 19  
 
 20  
     public int getLine() {
 21  0
         return line;
 22  
     }
 23  
 
 24  
     public int getColumn() {
 25  0
         return column;
 26  
     }
 27  
 
 28  
     public int hashCode() {
 29  0
         return source.hashCode() ^ line ^ column;
 30  
     }
 31  
 
 32  
     public boolean equals(Object o) {
 33  0
         if (!(o instanceof Source) || !getClass().equals(o.getClass())) return false;
 34  0
         Source other = (Source) o;
 35  0
         return getSource().equals(other.getSource()) && getLine() == other.getLine() && getColumn() == other.getColumn();
 36  
     }
 37  
 
 38  
     public int compareTo(Source<T> other) {
 39  0
         int r = getSource().compareTo(other.getSource());
 40  0
         if (r != 0) return r;
 41  0
         r = getLine() - other.getLine();
 42  0
         if (r != 0) return r;
 43  0
         return getColumn() - other.getColumn();
 44  
     }
 45  
 
 46  
     protected String getImplementationName() {
 47  0
         return "Source";
 48  
     }
 49  
 
 50  
     public String toString() {
 51  0
         return getImplementationName() + "(" + getSource() + ':' + getLine() + ':' + getColumn() + ')';
 52  
     }
 53  
 }