KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > enhydra > xml > Utils


1 /*
2     Copyright (C) 2003 Together
3     This library is free software; you can redistribute it and/or
4     modify it under the terms of the GNU Lesser General Public
5     License as published by the Free Software Foundation; either
6     version 2.1 of the License, or (at your option) any later version.
7     This library is distributed in the hope that it will be useful,
8     but WITHOUT ANY WARRANTY; without even the implied warranty of
9     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10     Lesser General Public License for more details.
11     You should have received a copy of the GNU Lesser General Public
12     License along with this library; if not, write to the Free Software
13     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
14  */

15
16 package org.enhydra.xml;
17
18 import java.io.*;
19 import java.util.*;
20
21 /**
22  * Utility methods for xml jdbc.
23  *
24  * @author Zoran Milakovic
25  * @version $Id: Utils.java,v 1.1 2006/06/23 10:40:51 sinisa Exp $
26  */

27
28 public class Utils {
29
30   public static String JavaDoc handleQuotedString( String JavaDoc quotedString ) {
31     String JavaDoc retVal = quotedString;
32     if ( ( retVal.startsWith( "'" ) && retVal.endsWith( "'" ) ) ) {
33       if ( !retVal.equals( "''" ) ) {
34         retVal = retVal.substring( retVal.indexOf( "'" ) + 1,
35                                    retVal.lastIndexOf( "'" ) );
36       }
37       else {
38         retVal = "";
39       }
40     }
41     return retVal;
42   }
43
44   /**
45    * Replace all occurence of forReplace with replaceWith in input string.
46    * @param input
47    * @param forReplace
48    * @param replaceWith
49    * @return String with replaced values
50    */

51   public static String JavaDoc replaceAll( String JavaDoc input, String JavaDoc forReplace,
52                                    String JavaDoc replaceWith ) {
53     StringBuffer JavaDoc result = new StringBuffer JavaDoc();
54     boolean hasMore = true;
55     while ( hasMore ) {
56       int start = input.indexOf( forReplace );
57       int end = start + forReplace.length();
58       if ( start != -1 ) {
59         result.append( input.substring( 0, start ) + replaceWith );
60         input = input.substring( end );
61       }
62       else {
63         hasMore = false;
64         result.append( input );
65       }
66     }
67     if ( result.toString().equals( "" ) )
68       return input; //nothing is changed
69
else
70       return result.toString();
71   }
72
73   //Helper methods to work with BinaryStream object.
74

75   /**
76    * This method transform binary object to string object
77    * @param b is array of bytes which represents binary object
78    * @return string representation of binary object
79    */

80   public static String JavaDoc bytesToHexString( byte[] b ) {
81     String JavaDoc hexString = null;
82     try {
83       if ( b != null ) {
84         ByteArrayInputStream is = new ByteArrayInputStream( b );
85         hexString = streamToHexString( is );
86         return hexString;
87       }
88       else {
89         return null;
90       }
91     }
92     catch ( Exception JavaDoc e ) {
93     }
94     return hexString;
95   }
96
97   /**
98    * This method transform string object to binary object (array of bytes)
99    * @param val is string representation of binary object
100    * @return binary object
101    */

102   public static byte[] hexStringToBytes( String JavaDoc val ) {
103     byte[] buf = new byte[val.length() / 2];
104     final char[] hexBytes = {
105         '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D',
106         'E', 'F'
107     };
108     byte[] hexMap = new byte[256];
109     for ( int i = 0; i < hexBytes.length; i++ ) {
110       hexMap[hexBytes[i]] = ( byte ) i;
111     }
112     int pos = 0;
113     for ( int i = 0; i < buf.length; i++ ) {
114       buf[i] = ( byte ) ( hexMap[val.charAt( pos++ )] << 4 );
115       buf[i] += hexMap[val.charAt( pos++ )];
116     }
117     return buf;
118   }
119
120   /**
121    *
122    * @param is
123    * @return String that represent InputStream is.
124    * @throws IOException
125    */

126   public static String JavaDoc streamToHexString( InputStream is ) throws IOException {
127     try {
128       char[] hexBytes = {
129           '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D',
130           'E', 'F'};
131       int c;
132       StringBuffer JavaDoc hexString = new StringBuffer JavaDoc();
133       while ( ( c = is.read() ) >= 0 ) {
134         hexString.append( hexBytes[ ( c >> 4 ) & 0xf] );
135         hexString.append( hexBytes[c & 0xf] );
136       }
137       return hexString.toString();
138     }
139     catch ( Exception JavaDoc e ) {
140       throw new IOException( e.getMessage() );
141     }
142   }
143
144 }
Popular Tags