* of YANG / YIN statement stream sources.
*
*
- * To create source reference use one of this static factiories:
+ * To create source reference use one of this static factories:
* <ul>
* <li>{@link #atPosition(String, int, int)} - provides most specific reference of statement location,
* this is most prefered since it provides most context to debug YANG model.
*/
public abstract class DeclarationInTextSource implements StatementSourceReference {
- private final String source;
+ private final String sourceName;
- DeclarationInTextSource(String source) {
- this.source = source;
+ DeclarationInTextSource(final String sourceName) {
+ this.sourceName = sourceName;
}
public String getSourceName() {
- return source;
+ return sourceName;
}
@Override
@Override
public abstract String toString();
- public static final DeclarationInTextSource inSource(String sourceName) {
+ public static DeclarationInTextSource inSource(final String sourceName) {
return new InSource(sourceName);
}
- public static final DeclarationInTextSource atLine(String sourceName, int line) {
- return new AtLine(sourceName,line);
+ public static DeclarationInTextSource atLine(final String sourceName, final int line) {
+ return new AtLine(sourceName, line);
}
- public static final DeclarationInTextSource atPosition(String sourceName, int line, int position) {
- return new AtPosition(sourceName,line,position);
+ public static DeclarationInTextSource atPosition(final String sourceName, final int line, final int position) {
+ return new AtPosition(sourceName, line,position);
}
private static class InSource extends DeclarationInTextSource {
-
- public InSource(String source) {
- super(source);
+ InSource(final String sourceName) {
+ super(sourceName);
}
@Override
public String toString() {
return getSourceName();
}
-
}
- private static class AtLine extends DeclarationInTextSource {
+ private static class AtLine extends InSource {
private final int line;
- public AtLine(String source,int line) {
- super(source);
+ AtLine(final String sourceName, final int line) {
+ super(sourceName);
this.line = line;
}
@Override
public String toString() {
- return String.format("%s:%d", getSourceName(),line);
+ return getSourceName() + ':' + line;
}
+ public int getLine() {
+ return line;
+ }
}
- private static class AtPosition extends DeclarationInTextSource {
+ private static class AtPosition extends AtLine {
- private int line;
- private int character;
+ private final int character;
- public AtPosition(String source, int line, int character) {
- super(source);
- this.line = line;
+ AtPosition(final String sourceName, final int line, final int character) {
+ super(sourceName, line);
this.character = character;
}
@Override
public String toString() {
- return String.format("%s:%d:%d", getSourceName(),line,character);
+ return getSourceName() + ':' + getLine() + ':' + character;
}
-
}
-
}