blob: 3818b72290d87959de82545c1bcd2ac7a2bb3fb2 [file] [log] [blame]
package aQute.bnd.properties;
public class Document implements IDocument {
public final static String[] DELIMITERS = {
"\r", "\n", "\r\n"
};
private LineTracker lineTracker = new LineTracker();
private ITextStore textStore = new CopyOnWriteTextStore(new GapTextStore());
public Document(String text) {
setText(text);
}
public int getNumberOfLines() {
return lineTracker.getNumberOfLines();
}
public IRegion getLineInformation(int line) throws BadLocationException {
return lineTracker.getLineInformation(line);
}
public String get(int offset, int length) throws BadLocationException {
return textStore.get(offset, length);
}
public String getLineDelimiter(int line) throws BadLocationException {
return lineTracker.getLineDelimiter(line);
}
public int getLength() {
return textStore.getLength();
}
public void replace(int offset, int length, String text) throws BadLocationException {
textStore.replace(offset, length, text);
lineTracker.set(get());
}
public char getChar(int pos) {
return textStore.get(pos);
}
public void setText(String text) {
textStore.set(text);
lineTracker.set(text);
}
public String get() {
return textStore.get(0, textStore.getLength());
}
protected static class DelimiterInfo {
public int delimiterIndex;
public int delimiterLength;
public String delimiter;
}
}