All Downloads are FREE. Search and download functionalities are using the official Maven repository.

aQute.bnd.properties.Document Maven / Gradle / Ivy

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;
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy