summaryrefslogtreecommitdiffstats
path: root/kdejava/koala/org/kde/koala/KStringHandler.java
blob: 3e271c228023b11da53e63621fdfc0955d13a0a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
//Auto-generated by kalyptus. DO NOT EDIT.
package org.kde.koala;

import org.kde.qt.Qt;
import org.kde.qt.QtSupport;
import org.kde.qt.TQRegExp;
import java.util.ArrayList;
import org.kde.qt.TQFontMetrics;

/**

 This class contains utility functions for handling strings.
 This class is <b>not</b> a substitute for the String class. What
 I tried to do with this class is provide an easy way to
 cut/slice/splice words inside sentences in whatever order desired.
 While the main focus of this class are words (ie characters
 separated by spaces/tabs), the two core functions here ( split()
 and join() ) will function given any char to use as a separator.
 This will make it easy to redefine what a 'word' means in the
 future if needed.
 I freely stole some of the function names from python. I also think
 some of these were influenced by mIRC (yes, believe it if you will, I
 used to write a LOT of scripts in mIRC).
 The ranges are a fairly powerful way of getting/stripping words from
 a string. These ranges function, for the large part, as they would in
 python. See the word(String, String ) and remword(String, uint) functions for more detail.
 This class contains no data members of its own. All strings are cut
 on the fly and returned as new qstrings/qstringlists.
 Quick example on how to use:
 <pre>
 KStringHandler kstr;
 String line = "This is a test of the strings";
 cout << "1> " << kstr.word( line , "4:" ) << "\n";
 cout << "2> " << kstr.remrange( line , "2:5" ) << "\n";
 cout << "2> " << kstr.reverse( line ) << "\n";
 cout << "2> " << kstr.center( kstr.word( line , 4 ) , 15 ) << "\n";
 </pre>
 and so forth.
		@author Ian Zepp <icszepp@islc.net>

		@short Class for manipulating words and sentences in strings.
		@see KShell

*/
public class KStringHandler implements QtSupport {
	private long _qt;
	private boolean _allocatedInJavaWorld = true;
	protected KStringHandler(Class dummy){}

	public KStringHandler() {
		newKStringHandler();
	}
	private native void newKStringHandler();
	/**	 Returns a range of words from that string.
		 Ie:
		
			<li>
			"0" returns the very first word
			</li>
			
			<li>
			"0:" returns the first to the last word
			</li>
			
			<li>
			"0:3" returns the first to fourth words
			</li>
			
			<li>
			":3" returns everything up to the fourth word
			</li>
				 If you grok python, you're set.
			@param text the string to search for the words
			@param range the words to return (see description)
				@return the words, or an empty string if not found
      
		@short   Returns a range of words from that string.
	*/
	public static native String word(String text, String range);
	/**	 Inserts a word into the string, and returns
		 a new string with the word included. the first
		 index is zero (0). If there are not <code>pos</code> words in the original
		 string, the new word will be appended to the end.
			@param text the original text
			@param word the word to insert
			@param pos the position (in words) for the new word
				@return the resulting string
      
		@short   Inserts a word into the string, and returns  a new string with the word included.
	*/
	public static native String insword(String text, String word, int pos);
	/**	 Replaces a word in the string, and returns
		 a new string with the word included. the first
		 index is zero (0). If there are not <code>pos</code> words in the original
		 string, the new word will be appended to the end.
			@param text the original text
			@param word the word to insert
			@param pos the position (in words) for the new word
				@return the resulting string
      
		@short   Replaces a word in the string, and returns  a new string with the word included.
	*/
	public static native String setword(String text, String word, int pos);
	/**	 Removes a word or ranges of words from the string,
		 and returns a new string. The ranges definitions
		 follow the definitions for the word() function.
		
			<li>
			"0"        removes the very first word
			</li>
			
			<li>
			"0:"    removes the first the the last word
			</li>
			
			<li>
			"0:3"    removes the first to fourth words
			</li>
			
			<li>
			":3"    removes everything up to the fourth word
			</li>
				@param text the original text
			@param range the words to remove (see description)
				@return the resulting string
      
		@short   Removes a word or ranges of words from the string,  and returns a new string.
	*/
	public static native String remrange(String text, String range);
	/**	 Removes a word at the given index, and returns a
		 new string. The first index is zero (0).
			@param text the original text
			@param pos the position (in words) of thw word to delete
				@return the resulting string
      
		@short   Removes a word at the given index, and returns a  new string.
	*/
	public static native String remword(String text, int pos);
	/**	 Removes a matching word from the string, and returns
		 a new string. Note that only ONE match is removed.
			@param text the original text
			@param word the word to remove
				@return the resulting string
      
		@short   Removes a matching word from the string, and returns  a new string.
	*/
	public static native String remword(String text, String word);
	/**	 Capitalizes each word in the string
		 "hello there" becomes "Hello There"        (string)
			@param text the text to capitalize
				@return the resulting string
      
		@short   Capitalizes each word in the string  "hello there" becomes "Hello There"        (string)
	*/
	public static native String capwords(String text);
	/**	 Capitalizes each word in the list
		 [hello, there] becomes [Hello, There]    (list)
			@param list the list to capitalize
				@return the resulting list
      
		@short   Capitalizes each word in the list  [hello, there] becomes [Hello, There]    (list)
	*/
	public static native ArrayList capwords(String[] list);
	/**	 Reverses the order of the words in a string
		 "hello there" becomes "there hello"        (string)
			@param text the text to reverse
				@return the resulting string
      
		@short   Reverses the order of the words in a string  "hello there" becomes "there hello"        (string)
	*/
	public static native String reverse(String text);
	/**	 Reverses the order of the words in a list
		 [hello, there] becomes [there, hello]    (list)
			@param list the list to reverse
				@return the resulting list
      
		@short   Reverses the order of the words in a list  [hello, there] becomes [there, hello]    (list)
	*/
	public static native ArrayList reverse(String[] list);
	/**	 Centers a string and returns a string at least 'width' characters
		 wide.
		 If the string is longer than the <code>width</code>, the original
		 string is returned. It is never truncated.
			@param text the text to justify
			@param width the desired width of the new string
				@return the resulting string
      
		@short   Centers a string and returns a string at least 'width' characters  wide.
	*/
	public static native String center(String text, int width);
	/**	 Substitute characters at the beginning of a string by "...".
			@param str is the string to modify
			@param maxlen is the maximum length the modified string will have
		 If the original string is shorter than "maxlen", it is returned verbatim
				@return the modified string
     
		@short   Substitute characters at the beginning of a string by ".
	*/
	public static native String lsqueeze(String str, int maxlen);
	public static native String lsqueeze(String str);
	/**	 Substitute characters at the beginning of a string by "...". Similar to
		 method above, except that it truncates based on pixel width rather than
		 the number of characters
			@param name is the string to modify
			@param fontMetrics is the font metrics to use to calculate character sizes
			@param maxlen is the maximum length in ems the modified string will have
		 If the original string is shorter than "maxlen", it is returned verbatim
				@return the modified string

		@short   Substitute characters at the beginning of a string by ".
	*/
	public static native String lEmSqueeze(String name, TQFontMetrics fontMetrics, int maxlen);
	public static native String lEmSqueeze(String name, TQFontMetrics fontMetrics);
	/**	 Substitute characters at the beginning of a string by "...". Similar to
		 method above, except that maxlen is the width in pixels to truncate to
			@param name is the string to modify
			@param fontMetrics is the font metrics to use to calculate character sizes
			@param maxPixels is the maximum pixel length the modified string will have
		 If the original string is shorter than "maxlen", it is returned verbatim
				@return the modified string

		@short   Substitute characters at the beginning of a string by ".
	*/
	public static native String lPixelSqueeze(String name, TQFontMetrics fontMetrics, int maxPixels);
	/**	 Substitute characters at the middle of a string by "...".
			@param str is the string to modify
			@param maxlen is the maximum length the modified string will have
		 If the original string is shorter than "maxlen", it is returned verbatim
				@return the modified string
     
		@short   Substitute characters at the middle of a string by ".
	*/
	public static native String csqueeze(String str, int maxlen);
	public static native String csqueeze(String str);
	/**	 Substitute characters in the middle of a string by "...". Similar to
		 method above, except that it truncates based on pixel width rather than
		 the number of characters
			@param name is the string to modify
			@param fontMetrics is the font metrics to use to calculate character sizes
			@param maxlen is the maximum length in ems the modified string will have
		 If the original string is shorter than "maxlen", it is returned verbatim
				@return the modified string

		@short   Substitute characters in the middle of a string by ".
	*/
	public static native String cEmSqueeze(String name, TQFontMetrics fontMetrics, int maxlen);
	public static native String cEmSqueeze(String name, TQFontMetrics fontMetrics);
	/**	 Substitute characters in the middle of a string by "...". Similar to
		 method above, except that maxlen is the width in pixels to truncate to
			@param name is the string to modify
			@param fontMetrics is the font metrics to use to calculate character sizes
			@param maxPixels is the maximum pixel length the modified string will have
		 If the original string is shorter than "maxlen", it is returned verbatim
				@return the modified string

		@short   Substitute characters in the middle of a string by ".
	*/
	public static native String cPixelSqueeze(String name, TQFontMetrics fontMetrics, int maxPixels);
	/**	 Substitute characters at the end of a string by "...".
			@param str is the string to modify
			@param maxlen is the maximum length the modified string will have
		 If the original string is shorter than "maxlen", it is returned verbatim
				@return the modified string
     
		@short   Substitute characters at the end of a string by ".
	*/
	public static native String rsqueeze(String str, int maxlen);
	public static native String rsqueeze(String str);
	/**	 Substitute characters at the end of a string by "...". Similar to
		 method above, except that it truncates based on pixel width rather than
		 the number of characters
			@param name is the string to modify
			@param fontMetrics is the font metrics to use to calculate character sizes
			@param maxlen is the maximum length in ems the modified string will have
		 If the original string is shorter than "maxlen", it is returned verbatim
				@return the modified string

		@short   Substitute characters at the end of a string by ".
	*/
	public static native String rEmSqueeze(String name, TQFontMetrics fontMetrics, int maxlen);
	public static native String rEmSqueeze(String name, TQFontMetrics fontMetrics);
	/**	 Substitute characters at the end of a string by "...". Similar to
		 method above, except that maxlen is the width in pixels to truncate to
			@param name is the string to modify
			@param fontMetrics is the font metrics to use to calculate character sizes
			@param maxPixels is the maximum pixel length the modified string will have
		 If the original string is shorter than "maxlen", it is returned verbatim
				@return the modified string

		@short   Substitute characters at the end of a string by ".
	*/
	public static native String rPixelSqueeze(String name, TQFontMetrics fontMetrics, int maxPixels);
	/**	
		 Match a filename.
			@param filename is the real decoded filename (or dirname
		        without trailing '/').
			@param pattern is a pattern like .txt, .tar.gz, Makefile., README, etc.
		 Patterns with two asterisks like "*.pk" are not supported.
				@return true if the given filename matches the given pattern
     
		@short    Match a filename.
	*/
	public static native boolean matchFileName(String filename, String pattern);
	/**	
		 Split a String into an ArrayList in a similar fashion to the static
		 ArrayList function in Qt, except you can specify a maximum number
		 of tokens. If max is specified (!= 0) then only that number of tokens
		 will be extracted. The final token will be the remainder of the string.
			 Example:
		 <pre>
		 perlSplit("__", "some__string__for__you__here", 4)
		 ArrayList contains: "some", "string", "for", "you__here"
		 </pre>
			@param sep is the string to use to delimit s.
			@param s is the input string
			@param max is the maximum number of extractions to perform, or 0.
				@return An ArrayList containing tokens extracted from s.
     
		@short    Split a String into an ArrayList in a similar fashion to the static  ArrayList function in Qt, except you can specify a maximum number  of tokens.
	*/
	public static native ArrayList perlSplit(String sep, String s, int max);
	public static native ArrayList perlSplit(String sep, String s);
	/**	
		 Split a String into an ArrayList in a similar fashion to the static
		 ArrayList function in Qt, except you can specify a maximum number
		 of tokens. If max is specified (!= 0) then only that number of tokens
		 will be extracted. The final token will be the remainder of the string.
			 Example:
		 <pre>
		 perlSplit(' ', "tdeparts reaches the parts other parts can't", 3)
		 ArrayList contains: "tdeparts", "reaches", "the parts other parts can't"
		 </pre>
			@param sep is the character to use to delimit s.
			@param s is the input string
			@param max is the maximum number of extractions to perform, or 0.
				@return An ArrayList containing tokens extracted from s.
     
		@short    Split a String into an ArrayList in a similar fashion to the static  ArrayList function in Qt, except you can specify a maximum number  of tokens.
	*/
	public static native ArrayList perlSplit(char sep, String s, int max);
	public static native ArrayList perlSplit(char sep, String s);
	/**	
		 Split a String into an ArrayList in a similar fashion to the static
		 ArrayList function in Qt, except you can specify a maximum number
		 of tokens. If max is specified (!= 0) then only that number of tokens
		 will be extracted. The final token will be the remainder of the string.
			 Example:
		 <pre>
		 perlSplit(TQRegExp("[! ]", "Split me up ! I'm bored ! OK ?", 3)
		 ArrayList contains: "Split", "me", "up ! I'm bored, OK ?"
		 </pre>
			@param sep is the regular expression to use to delimit s.
			@param s is the input string
			@param max is the maximum number of extractions to perform, or 0.
				@return An ArrayList containing tokens extracted from s.
     
		@short    Split a String into an ArrayList in a similar fashion to the static  ArrayList function in Qt, except you can specify a maximum number  of tokens.
	*/
	public static native ArrayList perlSplit(TQRegExp sep, String s, int max);
	public static native ArrayList perlSplit(TQRegExp sep, String s);
	/**	
		 This method auto-detects URLs in strings, and adds HTML markup to them
		 so that richtext or HTML-enabled widgets (such as KActiveLabel)
		 will display the URL correctly.
			@param text the string which may contain URLs
				@return the resulting text

		@short    This method auto-detects URLs in strings, and adds HTML markup to them  so that richtext or HTML-enabled widgets (such as KActiveLabel)  will display the URL correctly.
	*/
	public static native String tagURLs(String text);
	/**	
		      Obscure string by using a simple symmetric encryption. Applying the
		      function to a string obscured by this function will result in the original
		      string.
			      The function can be used to obscure passwords stored to configuration
		      files. Note that this won't give you any more security than preventing
		      that the password is directly copied and pasted.
			@param str string to be obscured
				@return obscured string

		@short         Obscure string by using a simple symmetric encryption.
	*/
	public static native String obscure(String str);
	/**	
		      Guess whether a string is UTF8 encoded.
			@param str the string to check
				@return true if UTF8. If false, the string is probably in Local8Bit.

		@short         Guess whether a string is UTF8 encoded.
	*/
	public static native boolean isUtf8(String str);
	/**	
		      Construct String from a c string, guessing whether it is UTF8- or
		      Local8Bit-encoded.
			@param str the input string
				@return the (hopefully correctly guessed) String representation of <code>str</code>

		@short         Construct String from a c string, guessing whether it is UTF8- or       Local8Bit-encoded.
	*/
	public static native String from8Bit(String str);
	/** Deletes the wrapped C++ instance */
	protected native void finalize() throws InternalError;
	/** Delete the wrapped C++ instance ahead of finalize() */
	public native void dispose();
	/** Has the wrapped C++ instance been deleted? */
	public native boolean isDisposed();
}