1 5 package com.teamkonzept.lib; 6 7 10 public class TKXmlConverter extends TKConverter { 11 public final static String CONV_ID = "XML"; 12 public final static String CONV_NAME = "XML-ISO-8859_1"; 13 14 public String getName() 15 { 16 return CONV_NAME; 17 } 18 19 public final static String [] XML_CODES = { 20 null, null, null, null, null, null, null, null, null, null, 21 null, null, null, null, null, null, null, null, null, null, 22 null, null, null, null, null, null, null, null, null, null, 23 null, null, null, null, null, null, null, null, null, null, 24 null, null, null, null, null, null, null, null, null, null, 25 null, null, null, null, null, null, null, null, null, null, 26 "\\<", null, "\\>", null, null, null, null, null, null, null, 27 null, null, null, null, null, null, null, null, null, null, 28 null, null, null, null, null, null, null, null, null, null, 29 null, null, "\\\\", null, null, null, null, null, null, null, 30 null, null, null, null, null, null, null, null, null, null, 31 null, null, null, null, null, null, null, null, null, null, 32 null, null, null, null, null, null, null, null, null, null, 33 null, null, null, null, null, null, null, null, null, null, 34 null, null, null, null, null, null, null, null, null, null, 35 null, null, null, null, null, null, null, null, null, null, 36 null, null, null, null, null, null, null, null, null, null, 37 null, null, null, null, null, null, null, null, null, null, 38 null, null, null, null, null, null, null, null, null, null, 39 null, null, null, null, null, null, null, null, null, null, 40 null, null, null, null, null, null, null, null, null, null, 41 null, null, null, null, null, null, null, null, null, null, 42 null, null, null, null, null, null, null, null, null, null, 43 null, null, null, null, null, null, null, null, null, null, 44 null, null, null, null, null, null, null, null, null, null, 45 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 subst = XML_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 |