package org.easyb.parser; import java.io.InputStreamReader; import java.io.BufferedReader; import java.io.IOException; public class EasybSnippet { private String specificationPath; public final Coordinate start; public final Coordinate end; private static String NEW_LINE = System.getProperty("line.separator"); public EasybSnippet(String specificationPath, Coordinate start, Coordinate end) { this.specificationPath = specificationPath; this.start = start; this.end = end; } public String toString() { return specificationPath + " (" + start + " to " + end + ")"; } public String getText() throws IOException { StringBuilder builder = new StringBuilder(); BufferedReader reader = new BufferedReader( new InputStreamReader(getClass().getResourceAsStream(specificationPath))); for (int i = 1; i < end.line; i++) { builder.append(reader.readLine()).append(NEW_LINE); } return builder.toString(); } static class Coordinate { public final int line; public final int column; public static final Coordinate EOF = new Coordinate(-1, -1); public Coordinate(int line, int column) { this.line = line; this.column = column; } public static Coordinate createCoordinate(int line, int column) { return new Coordinate(line, column); } public String toString() { return line + ":" + column; } } }