// Copyright (C) 2002 IAIK // email: jce-info@iaik.tu-graz.ac.at // // All rights reserved. // // This source is provided for inspection purposes and recompilation only, // unless specified differently in a contract with IAIK. This source has to // be kept in strict confidence and must not be disclosed to any third party // under any circumstances. Redistribution in source and binary forms, with // or without modification, are permitted in any case! // // THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE // ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // package at.gv.egovernment.moa.util; import java.util.StringTokenizer; /** * Utitility functions for string manipulations. * * @author Harald Bratko */ public class StringUtils { /** * Removes all blanks and tabs from the given string. * * @param s The string to remove all blanks and tabs from. * @return The input string with all blanks and tabs removed from. */ public static String removeBlanks(String s) { StringTokenizer st = new StringTokenizer(s); StringBuffer sb = new StringBuffer(s.length()); while (st.hasMoreTokens()) { sb.append(st.nextToken()); } return sb.toString(); } /** * Removes all occurences of the specified token from the the given string. * * @param s The string to remove all occurences of the specified token from. * @return The input string with all occurences of the specified token removed from. */ public static String removeToken(String s, String token) { StringTokenizer st = new StringTokenizer(s, token); StringBuffer sb = new StringBuffer(s.length()); while (st.hasMoreTokens()) { sb.append(st.nextToken()); } return sb.toString(); } /** * Removes all leading zeros from the input string. * * @param s The string remove the leading zeros from. * @return The input string with the leading zeros removed from. */ public static String deleteLeadingZeros(String s) { StringBuffer sb = new StringBuffer(s); int l = sb.length(); int j = 0; for (int i=0; is that matches the given * search string by the given replace string. * * @param s The string where the replacment should take place. * @param search The pattern that should be replaced. * @param replace The string that should replace all each search * string within s. * @return A string whrer all occurrence of search are * replaced with replace. */ public static String replaceAll (String s, String search, String replace) { StringBuffer sb = new StringBuffer(); int i = 0, j = 0; int len = search.length(); while (j > -1) { j = s.indexOf(search, i); if (j > -1) { sb.append(s.substring(i,j)); sb.append(replace); i = j + len; } } sb.append(s.substring(i, s.length())); return sb.toString(); } /** * Changes the SecurityLayer version in the given string. * This method usually takes as input an XML structure represented in a string * format and changes the SecurityLayer namespaces prefixes and URIs from * one SecurityLayer version to another. * e.g.: code>sl10 to sl and * http://www.buergerkarte.at/namespaces/securitylayer/20020225# * to * http://www.buergerkarte.at/namespaces/securitylayer/1.2# * * @param s The string (usally an XML structure) where the * SecurityLayer version should be changed. * @param slPrefixOld The SecurityLayer namespace prefix that should be * replaced by the new one. * @param slPrefixNew The new SecurityLayer namespace prefix that should * replace the old one. * @param slNSUriOld The SecurityLayer namespace URI that should be * replaced by the new one. * @param slNSUriNew The new SecurityLayer namespace URI that should * replace the old one. * @return A string where the SecurityLayer namespace prefixes * and URIs are replaced by new ones. */ public static String changeSLVersion(String s, String slPrefixOld, String slPrefixNew, String slNSUriOld, String slNSUriNew) { String retString = replaceAll(s, slPrefixOld, slPrefixNew); retString = replaceAll(retString, slNSUriOld, slNSUriNew); return retString ; } /** * Removes the XML declaration from an XML expression. * * @param xmlString XML expression as String * * @return XML expression, XML declaration removed */ public static String removeXMLDeclaration(String xmlString) { if (xmlString.startsWith("