Skip to content

Commit 40ee594

Browse files
Merge pull request #555 from JordanMartinez/cleanupSegOps
Cleanup seg ops
2 parents 9bdd822 + 1f11bf0 commit 40ee594

4 files changed

Lines changed: 29 additions & 28 deletions

File tree

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@ public String realGetText(SEG seg) {
3030
}
3131

3232
@Override
33-
public SEG realSubsequence(SEG seg, int start, int end) {
33+
public SEG realSubSequence(SEG seg, int start, int end) {
3434
return seg;
3535
}
3636

3737
@Override
38-
public SEG realSubsequence(SEG seg, int start) {
38+
public SEG realSubSequence(SEG seg, int start) {
3939
return seg;
4040
}
4141
}

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public final char charAt(SEG seg, int index) {
3232

3333
@Override
3434
public final String getText(SEG seg) {
35-
return seg == empty ? "\0" : realGetText(seg);
35+
return seg == empty ? "" : realGetText(seg);
3636
}
3737
public abstract String realGetText(SEG seg);
3838

@@ -48,18 +48,18 @@ public final SEG subSequence(SEG seg, int start, int end) {
4848
}
4949
return seg == empty || start == end
5050
? empty
51-
: realSubsequence(seg, start, end);
51+
: realSubSequence(seg, start, end);
5252
}
53-
public abstract SEG realSubsequence(SEG seg, int start, int end);
53+
public abstract SEG realSubSequence(SEG seg, int start, int end);
5454

5555
@Override
5656
public final SEG subSequence(SEG seg, int start) {
5757
return seg == empty || length(seg) == start
5858
? empty
59-
: realSubsequence(seg, start);
59+
: realSubSequence(seg, start);
6060
}
61-
public SEG realSubsequence(SEG seg, int start) {
62-
return realSubsequence(seg, start, length(seg));
61+
public SEG realSubSequence(SEG seg, int start) {
62+
return realSubSequence(seg, start, length(seg));
6363
}
6464

6565
@Override
@@ -75,7 +75,7 @@ public final SEG setStyle(SEG seg, S style) {
7575
public abstract SEG realSetStyle(SEG seg, S style);
7676

7777
@Override
78-
public final Optional<SEG> join(SEG currentSeg, SEG nextSeg) {
78+
public Optional<SEG> join(SEG currentSeg, SEG nextSeg) {
7979
return Optional.empty();
8080
}
8181

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)