public class CopyOnWriteTextStore extends Object implements ITextStore
ITextStore
wrapper.
This implementation uses an unmodifiable text store for the initial content. Upon first modification attempt, the unmodifiable store is replaced with a modifiable instance which must be supplied in the constructor.
This class is not intended to be subclassed.
Modifier and Type | Field and Description |
---|---|
protected ITextStore |
fTextStore
The underlying "real" text store
|
Constructor and Description |
---|
CopyOnWriteTextStore(ITextStore modifiableTextStore)
Creates an empty text store.
|
Modifier and Type | Method and Description |
---|---|
char |
get(int offset)
Returns the character at the specified offset.
|
String |
get(int offset,
int length)
Returns the text of the specified character range.
|
int |
getLength()
Returns number of characters stored in this text store.
|
void |
replace(int offset,
int length,
String text)
Replaces the specified character range with the given text.
|
void |
set(String text)
Replace the content of the text store with the given text.
|
protected ITextStore fTextStore
public CopyOnWriteTextStore(ITextStore modifiableTextStore)
modifiableTextStore
- a modifiable ITextStore
instance, may not be
null
public char get(int offset)
ITextStore
get
in interface ITextStore
offset
- the offset in this text storepublic String get(int offset, int length)
ITextStore
get
in interface ITextStore
offset
- the offset of the rangelength
- the length of the rangepublic int getLength()
ITextStore
getLength
in interface ITextStore
public void replace(int offset, int length, String text)
ITextStore
replace(getLength(), 0, "some text")
is a valid
call and appends text to the end of the text store.replace
in interface ITextStore
offset
- the offset of the range to be replacedlength
- the number of characters to be replacedtext
- the substitution textpublic void set(String text)
ITextStore
replace(0, getLength(), text
.set
in interface ITextStore
text
- the new content of the text store
Copyright (c) 2000, 2014 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.