diff -r b4183b61e0c7 -r 58764cb313d3 themeinstaller/source/src/com/nokia/tools/themeinstaller/odtconverter/PropertyValue.java --- a/themeinstaller/source/src/com/nokia/tools/themeinstaller/odtconverter/PropertyValue.java Tue Jan 26 13:19:36 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,233 +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: Single property value for property value list. - * -*/ - - -package com.nokia.tools.themeinstaller.odtconverter; - -import java.awt.Color; -import java.io.IOException; - -/** - * Property value stores style related data before it is externalized - * to a binary format. - */ -public class PropertyValue - { - - // CONSTANTS - // Ident types - public static final String STRING_AUTO = "auto"; - public static final String STRING_NONE = "none"; - public static final String STRING_INHERIT = "inherit"; - - public static final int E_NOT_SET = 0; - public static final int E_AUTO = 1; - public static final int E_NONE = 2; - public static final int E_INHERIT = 3; - - // Property value type - private Short iValueType; - - // Flag to identify ident - private int iIdentType; - - // Rgb color value - private Color iRgbValue; - - // Real value - private double iRealValue; - - // String pool index to a string value - private int iStringRef; - - // Reference to the String Pool - private StringPool iStringPool; - - /** - * Constructor. - * @param aStringPool Reference to the String Pool - */ - public PropertyValue( StringPool aStringPool ) - { - iStringPool = aStringPool; - } - - /** - * Set rgb value. - * @param aRgbValue the value to set - * @param aValueType primitive value type - * @throws ODTException - * @throws ODTException if primitive value type is not a rgb color type - */ - public void setRgbValue( Color aRgbValue ) - throws ODTException - { - iRgbValue = aRgbValue; - iValueType = new Short( ValueTypeResolver.E_RGB_COLOR ); - } - - /** - * Set real value. - * @param aRealValue the value to set - * @param aValueType primitive value type - * @throws ODTException if primitive value type is not a real value type - */ - public void setRealValue( double aRealValue, short aValueType ) - throws ODTException - { - // Verify the value type - switch( aValueType ) - { - case ValueTypeResolver.E_NUMBER: - case ValueTypeResolver.E_PERCENTAGE: - case ValueTypeResolver.E_EMS: - case ValueTypeResolver.E_EXS: - case ValueTypeResolver.E_PX: - case ValueTypeResolver.E_CM: - case ValueTypeResolver.E_MM: - case ValueTypeResolver.E_IN: - case ValueTypeResolver.E_PT: - case ValueTypeResolver.E_PC: - case ValueTypeResolver.E_DEG: - case ValueTypeResolver.E_RAD: - case ValueTypeResolver.E_GRAD: - case ValueTypeResolver.E_MS: - case ValueTypeResolver.E_S: - case ValueTypeResolver.E_HZ: - case ValueTypeResolver.E_KHZ: - case ValueTypeResolver.E_UNIT_VALUE: - break; - - default: - throw new ODTException( - "Property value type is not compatible with real: " - + aValueType ); - } - - iRealValue = aRealValue; - iValueType = new Short( aValueType ); - } - - /** - * Set string value. - * @param aString the string to set - * @param aValueType primitive value type - * @throws ODTException if primitive value type is not a string type - */ - public void setString( String aString, short aValueType ) - throws ODTException - { - // Verify the value type - switch( aValueType ) - { - case ValueTypeResolver.E_STRING: - case ValueTypeResolver.E_IDENT: - case ValueTypeResolver.E_URI: - case ValueTypeResolver.E_ATTR: - case ValueTypeResolver.E_UNKNOWN: - break; - - default: - throw new ODTException( - "Property value type is not compatible with string: " - + aValueType ); - } - - // Add string to the pool - iStringRef = iStringPool.addString( aString ); - - // Resolve ident type - if ( aString.equals( STRING_AUTO ) ) - { - iIdentType = E_AUTO; - } - else if ( aString.equals( STRING_INHERIT ) ) - { - iIdentType = E_INHERIT; - } - else if ( aString.equals( STRING_NONE ) ) - { - iIdentType = E_NONE; - } - else - { - iIdentType = E_NOT_SET; - } - iValueType = new Short( aValueType ); - } - - /** - * Externalize the property value to a stream. - * @param aStream stream to use for externalization - * @throws IOException if writing to a stream fails - * @throws ODTException if value type can not be resolved - */ - public void externalize( ODTDataOutputStream aStream ) - throws IOException, ODTException - { - // Write property value type - int8 - aStream.writeByte( iValueType.byteValue() ); - - // Write property value data - real/int16/rgb - switch( iValueType.intValue() ) - { - // Real value - case ValueTypeResolver.E_NUMBER: - case ValueTypeResolver.E_PERCENTAGE: - case ValueTypeResolver.E_EMS: - case ValueTypeResolver.E_EXS: - case ValueTypeResolver.E_PX: - case ValueTypeResolver.E_CM: - case ValueTypeResolver.E_MM: - case ValueTypeResolver.E_IN: - case ValueTypeResolver.E_PT: - case ValueTypeResolver.E_PC: - case ValueTypeResolver.E_DEG: - case ValueTypeResolver.E_RAD: - case ValueTypeResolver.E_GRAD: - case ValueTypeResolver.E_MS: - case ValueTypeResolver.E_S: - case ValueTypeResolver.E_HZ: - case ValueTypeResolver.E_KHZ: - case ValueTypeResolver.E_UNIT_VALUE: - aStream.writeTReal64( iRealValue ); - break; - - // String value and ident type - case ValueTypeResolver.E_STRING: - case ValueTypeResolver.E_IDENT: - case ValueTypeResolver.E_URI: - case ValueTypeResolver.E_ATTR: - case ValueTypeResolver.E_UNKNOWN: - aStream.writeInt16( iStringRef ); - aStream.writeByte( iIdentType ); - break; - - // Rgb value - case ValueTypeResolver.E_RGB_COLOR: - aStream.writeByte( iRgbValue.getRed() ); - aStream.writeByte( iRgbValue.getGreen() ); - aStream.writeByte( iRgbValue.getBlue() ); - break; - default: - throw new ODTException( "Property value can not be resolved: " - + iValueType ); - } - - } - - }