diff -r b685c59de105 -r fe49e33862e2 themeinstaller/source/src/com/nokia/tools/themeinstaller/odtconverter/StringPool.java --- a/themeinstaller/source/src/com/nokia/tools/themeinstaller/odtconverter/StringPool.java Thu Aug 19 09:43:47 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,112 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: String pool for DOM Externalizer. - * -*/ - - -package com.nokia.tools.themeinstaller.odtconverter; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.util.Vector; - -/** - * String pool is a set of strings where a string is only listed once. - */ -public class StringPool - { - - // The pool for storing the strings - private Vector iStringPool; - - /** - * Constructor. - */ - public StringPool() - { - iStringPool = new Vector(); - } - - /** - * Add a string to the pool. Each string is added only once. - * @param aString String to add - * @return Index in the pool - */ - public int addString( String aString ) - { - if( aString == null ) - { - aString = ""; - } - if( !iStringPool.contains( aString ) ) - { - iStringPool.addElement( aString ); - } - return iStringPool.lastIndexOf( aString ); - } - - /** - * Get a string from the pool. - * @param aIndex Index number of the string - * @return The requested string - */ - public String getString( int aIndex ) - { - return ( String ) iStringPool.elementAt( aIndex ); - } - - - /** - * Get string pool contents in a byte array. - * @return String pool contents in a byte array - * @throws IOException if writing to a stream fails - * @throws ODTException if writing to a stream fails - */ - public byte[] toByteArray() throws IOException, ODTException - { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - ODTDataOutputStream dos = new ODTDataOutputStream( baos ); - int count = iStringPool.size(); - byte[] result = null; - - try - { - // Write string count and each string to the stream - dos.writeInt16( count ); - for( int i = 0; i < count; i++ ) - { - String string = ( String ) iStringPool.elementAt( i ); - dos.writeInt16( string.length() ); - dos.writeString8( string ); - } - - result = baos.toByteArray(); - } - finally - { - if( dos != null ) - { - dos.close(); - } - if( baos != null ) - { - baos.close(); - } - } - - return result; - } - - }