comparison com.ibm.icu/src/com/ibm/icu/text/BreakIterator.d @ 98:48d4ee626868

rm databinding.observable seems to be duplicate, databinding.beans now building
author Frank Benoit <benoit@tionex.de>
date Wed, 22 Apr 2009 07:30:21 +0200
parents ebefa5c2eab4
children 536e43f63c81
comparison
equal deleted inserted replaced
97:c86eb8b3098e 98:48d4ee626868
1 1
2 module com.ibm.icu.text.BreakIterator; 2 module com.ibm.icu.text.BreakIterator;
3
4 import com.ibm.icu.mangoicu.UBreakIterator;
5 import tango.core.Thread;
3 6
4 import java.lang.all; 7 import java.lang.all;
5 import java.text.CharacterIterator; 8 import java.text.CharacterIterator;
6 9
7 public class BreakIterator { 10 public class BreakIterator {
8 11
9 public static final int DONE = 0; 12 public static const int DONE = UBreakIterator.DONE;
13 public static const int Done = UBreakIterator.DONE;
10 14
15 private UBreakIterator it;
16 private static tango.core.Thread.ThreadLocal!(BreakIterator) instLine;
17 private static tango.core.Thread.ThreadLocal!(BreakIterator) instWord;
18
19 private this( UBreakIterator it ){
20 this.it = it;
21 }
11 public static BreakIterator getLineInstance() { 22 public static BreakIterator getLineInstance() {
12 implMissing(__FILE__, __LINE__); 23 auto res = instLine.val();
13 return null; 24 if( res is null ){
25 res = new BreakIterator(
26 UBreakIterator.openLineIterator( ULocale.Default ));
27 instLine.val( res );
28 }
29 return res;
14 } 30 }
15 31
16 public void setText(String line) { 32 public void setText(String line) {
17 implMissing(__FILE__, __LINE__); 33 it.setText(line);
18
19 } 34 }
20 35
21 public int following(int currOffset) { 36 public int following(int currOffset) {
22 implMissing(__FILE__, __LINE__); 37 return it.following(currOffset);
23 return 0;
24 } 38 }
25 39
26 public int next() { 40 public int next() {
27 implMissing(__FILE__, __LINE__); 41 return it.next();
28 return 0;
29 } 42 }
30 43
31 public static BreakIterator getWordInstance() { 44 public static BreakIterator getWordInstance() {
32 implMissing(__FILE__, __LINE__); 45 auto res = instWord.val();
33 return null; 46 if( res is null ){
47 res = new BreakIterator(
48 UBreakIterator.openWordIterator( ULocale.Default ));
49 instWord.val( res );
50 }
51 return res;
34 } 52 }
35 53
36 public int preceding(int position) { 54 public int preceding(int position) {
37 implMissing(__FILE__, __LINE__); 55 return it.previous(position);
38 return 0;
39 } 56 }
40 57
41 public void setText(CharacterIterator docIter) { 58 public void setText(CharacterIterator docIter) {
42 implMissing(__FILE__, __LINE__); 59 implMissing(__FILE__, __LINE__);
43
44 } 60 }
45 61
46 public bool isBoundary(int position) { 62 public bool isBoundary(int position) {
47 implMissing(__FILE__, __LINE__); 63 return it.isBoundary(position);
48 return false;
49 } 64 }
50 65
51 public int first() { 66 public int first() {
52 implMissing(__FILE__, __LINE__); 67 return it.first();
53 return 0;
54 } 68 }
55 69
56 } 70 }
57 71
58 72