aQute.bnd.properties.Document Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bndlib Show documentation
Show all versions of bndlib Show documentation
The bndlib project is a general library to be used with OSGi bundles. It contains
lots of cool functionality that calculates dependencies, etc.
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;
}
}