KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > teamkonzept > lib > TKStringConverter


1 /*
2  * $Header: /cvsroot/webman-cms/source/webman/com/teamkonzept/lib/TKStringConverter.java,v 1.5 2000/05/22 15:01:21 careck Exp $
3  *
4  */

5 package com.teamkonzept.lib;
6
7 /**
8     Konvertierungsklasse fuer String-Text-Codierung
9 */

10 public class TKStringConverter extends TKConverter {
11     public final static String JavaDoc CONV_ID = "STRING";
12     public final static String JavaDoc CONV_NAME = "STRING-ISO-8859_1";
13
14     public String JavaDoc getName()
15     {
16         return CONV_NAME;
17     }
18     
19     public final static String JavaDoc[] STRING_CODES = {
20 /* 0*/ null, null, null, null, null, null, null, null, null, null,
21 /* 10*/ null, null, null, null, null, null, null, null, null, null,
22 /* 20*/ null, null, null, null, null, null, null, null, null, null,
23 /* 30*/ null, null, null, null, "\\\"", null, null, null, null, null,
24 /* 40*/ null, null, null, null, null, null, null, null, null, null,
25 /* 50*/ null, null, null, null, null, null, null, null, null, null,
26 /* 60*/ null, null, null, null, null, null, null, null, null, null,
27 /* 70*/ null, null, null, null, null, null, null, null, null, null,
28 /* 80*/ null, null, null, null, null, null, null, null, null, null,
29 /* 90*/ null, null, "\\\\", null, null, null, null, null, null, null,
30 /*100*/ null, null, null, null, null, null, null, null, null, null,
31 /*110*/ null, null, null, null, null, null, null, null, null, null,
32 /*120*/ null, null, null, null, null, null, null, null, null, null,
33 /*130*/ null, null, null, null, null, null, null, null, null, null,
34 /*140*/ null, null, null, null, null, null, null, null, null, null,
35 /*150*/ null, null, null, null, null, null, null, null, null, null,
36 /*160*/ null, null, null, null, null, null, null, null, null, null,
37 /*170*/ null, null, null, null, null, null, null, null, null, null,
38 /*180*/ null, null, null, null, null, null, null, null, null, null,
39 /*190*/ null, null, null, null, null, null, null, null, null, null,
40 /*200*/ null, null, null, null, null, null, null, null, null, null,
41 /*210*/ null, null, null, null, null, null, null, null, null, null,
42 /*220*/ null, null, null, null, null, null, null, null, null, null,
43 /*230*/ null, null, null, null, null, null, null, null, null, null,
44 /*240*/ null, null, null, null, null, null, null, null, null, null,
45 /*250*/ null, null, null, null, null, null, null, null, null, null
46     };
47     
48     public final static byte BACKSLASH = (byte) '\\';
49     
50     public int getMaxBytesPerChar()
51     {
52         return 8;
53     }
54     
55     public int minCharSize(int byteCount)
56     {
57         return byteCount;
58     }
59     
60     public int charsToBytes(char src[], byte dst[], int srcBegin, int length, int dstBegin)
61     {
62         int lastPos = srcBegin+length;
63         int firstPos = dstBegin;
64         for( int i=srcBegin; i<lastPos; i++ ) {
65             char c = src[i];
66             byte b = (byte) c;
67             int code = (int) c;
68             String JavaDoc subst = STRING_CODES[ code ];
69             if( subst == null ) {
70                 dst[ dstBegin++ ] = b;
71             }
72             else {
73                 int len = subst.length();
74                 subst.getBytes( 0, len, dst, dstBegin );
75                 dstBegin += len;
76             }
77         }
78         
79         return dstBegin - firstPos;
80     }
81
82     public int bytesToChars(byte src[], char dst[], int srcBegin, int length, int dstBegin)
83     {
84         int lastPos = srcBegin+length;
85         int firstPos = dstBegin;
86         int i=srcBegin;
87         
88         while( i<lastPos ) {
89             byte b = src[i++];
90
91             if( b == BACKSLASH ) {
92                 if (i >= lastPos) break;
93                 b = src[i++];
94             }
95                 
96             dst[dstBegin++] = (char) b;
97         }
98         return dstBegin - firstPos;
99     }
100     
101 }
102
103
Popular Tags