Skip to content

Commit a2aa881

Browse files
Update ops to use new base class
1 parent 91c4ca4 commit a2aa881

2 files changed

Lines changed: 20 additions & 19 deletions

File tree

richtextfx/src/main/java/org/fxmisc/richtext/model/StyledText.java

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -23,43 +23,41 @@ public class StyledText<S> {
2323
* of {@link org.fxmisc.richtext.GenericStyledArea} and similar classes if you are using this class as the SEG type.
2424
*/
2525
public static <S> TextOps<StyledText<S>, S> textOps() {
26-
return new TextOps<StyledText<S>, S>() {
27-
28-
private final StyledText<S> emptySeg = new StyledText<>("", null);
26+
return new TextOpsBase<StyledText<S>, S>(new StyledText<>("", null)) {
2927

3028
@Override
31-
public int length(StyledText<S> styledText) {
29+
public int realLength(StyledText<S> styledText) {
3230
return styledText.getText().length();
3331
}
3432

3533
@Override
36-
public char charAt(StyledText<S> styledText, int index) {
37-
return styledText == emptySeg ? '\0' : styledText.getText().charAt(index);
34+
public char realCharAt(StyledText<S> styledText, int index) {
35+
return styledText.getText().charAt(index);
3836
}
3937

4038
@Override
41-
public String getText(StyledText<S> styledText) {
39+
public String realGetText(StyledText<S> styledText) {
4240
return styledText.getText();
4341
}
4442

4543
@Override
46-
public StyledText<S> subSequence(StyledText<S> styledText, int start, int end) {
47-
return styledText == emptySeg ? emptySeg : new StyledText<>(styledText.getText().substring(start, end), styledText.getStyle());
44+
public StyledText<S> realSubSequence(StyledText<S> styledText, int start, int end) {
45+
return new StyledText<>(styledText.getText().substring(start, end), styledText.getStyle());
4846
}
4947

5048
@Override
51-
public StyledText<S> subSequence(StyledText<S> styledText, int start) {
52-
return styledText == emptySeg ? emptySeg : new StyledText<>(styledText.getText().substring(start), styledText.getStyle());
49+
public StyledText<S> realSubSequence(StyledText<S> styledText, int start) {
50+
return new StyledText<>(styledText.getText().substring(start), styledText.getStyle());
5351
}
5452

5553
@Override
56-
public S getStyle(StyledText<S> styledText) {
54+
public S realGetStyle(StyledText<S> styledText) {
5755
return styledText.getStyle();
5856
}
5957

6058
@Override
61-
public StyledText<S> setStyle(StyledText<S> seg, S style) {
62-
return seg == emptySeg ? emptySeg : seg.setStyle(style);
59+
public StyledText<S> realSetStyle(StyledText<S> seg, S style) {
60+
return seg.setStyle(style);
6361
}
6462

6563
@Override
@@ -69,11 +67,6 @@ public Optional<StyledText<S>> join(StyledText<S> left, StyledText<S> right) {
6967
: Optional.empty();
7068
}
7169

72-
@Override
73-
public StyledText<S> createEmpty() {
74-
return emptySeg;
75-
}
76-
7770
@Override
7871
public StyledText<S> create(String text, S style) {
7972
return new StyledText<>(text, style);
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package org.fxmisc.richtext.model;
2+
3+
public abstract class TextOpsBase<SEG, S> extends SegmentOpsBase<SEG, S> implements TextOps<SEG, S> {
4+
5+
TextOpsBase(SEG empty) {
6+
super(empty);
7+
}
8+
}

0 commit comments

Comments
 (0)