diff -r 4526337fb576 -r 3eca7e70b1b8 mmuifw_plat/alf_widgetmodel_api/inc/alf/alfvarianttype.h --- a/mmuifw_plat/alf_widgetmodel_api/inc/alf/alfvarianttype.h Tue Feb 02 00:28:09 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1102 +0,0 @@ -/* -* Copyright (c) 2004 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: This interface defines a generic data type -* -*/ - - - -#ifndef ALFVARIANTTYPE_H -#define ALFVARIANTTYPE_H - - -// INCLUDES -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -namespace osncore - { -class UString; - } -namespace std - { -template class auto_ptr; - } - -using namespace osncore; -using std::auto_ptr; - -namespace Alf - { - -// FORWARD DECLARATIONS -class IAlfContainer; -class IAlfMap; -class AlfBranch; -class AlfVariantDataImpl; -class AlfContainerDataImpl; -class AlfMapDataImpl; -class AlfBranchDataImpl; -class IAlfModelBase; -// CLASS DECLARATIONS - -/** - * @class AlfVariantType alfvarianttype.h "alf/alfvarianttype.h" - * Concrete implementation of the variant data type interface. - * AlfVariantType can hold data of integer,real,string and unsigned integer types. - * @see IAlfVariantType - * - * @lib alfwidgetmodel.lib - * @since S60 ?S60_version - * @status Draft - */ -class AlfVariantType: public IAlfVariantType - { -public: - - /** - * Constructor for variant data type creation for a descriprtor type of data - * @exception std::bad_alloc - * - * @param aValue - Descriptor to be assigned for the variant data - * @since S60 ?S60_version - */ - OSN_IMPORT AlfVariantType(const UString& aValue); - - - /** - * Constructor for variant data type creation for a integer type of data - * @exception std::bad_alloc - * - * @param aValue - integer to be assigned for the variant data - * @since S60 ?S60_version - */ - OSN_IMPORT AlfVariantType(const int& aValue); - - - /** - * Constructor for variant data type creation for a Unsigned integer type of data - * @exception std::bad_alloc - * - * @param aValue - unsigned integer to be assigned for the variant data - * @since S60 ?S60_version - */ - OSN_IMPORT AlfVariantType(const uint& aValue); - - - /** - * Constructor for variant data type creation for a real type of data - * @exception std::bad_alloc - * - * @param aValue - Real value to be assigned for the variant data - * @since S60 ?S60_version - */ - OSN_IMPORT AlfVariantType(const double& aValue); - - - /** - * Constructor for variant data type creation for a user defined type of data - * @exception std::bad_alloc - * - * @param aValue - IAlfModelBase* to be assigned for the variant data - * @since S60 ?S60_version - */ - OSN_IMPORT AlfVariantType(IAlfModelBase* aValue) ; - - /** - * Constructor for variant data type creation for a bool type of data - * @exception std::bad_alloc - * - * @param aValue - Boolean value to be assigned for the variant data - * @since S60 ?S60_version - */ - OSN_IMPORT AlfVariantType(const bool& aValue); - - //from IAlfVariantType Interface - /** - * Set the Data the variantData. From IAlfVariantType Interface - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType if aValue - * is of invalid type. - * @exception std::bad_alloc - * - * @param aValue The new value. - * @return void - * @since S60 ?S60_version - */ - OSN_IMPORT void set(IAlfVariantType& aValue); - - /** - * Get the data type.From IAlfVariantType Interface - * - * @since S60 ?S60_version - * @return The data type. - */ - OSN_IMPORT IAlfVariantType::Type type() const; - - /** - * Get the data value as an bool .From IAlfVariantType Interface - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType if aValue - * is not of boolean type. - * - * @return bool data value. - * @since S60 ?S60_version - */ - OSN_IMPORT bool boolean() const; - - /** - * Get the data value as an Integer .From IAlfVariantType Interface - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType if aValue - * is not of integer type. - * - * @return Integer data value. - * @since S60 ?S60_version - */ - OSN_IMPORT int integer() const; - - /** - * Get the data value as unsigned int.From IAlfVariantType Interface - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType if aValue - * is not of unsigned integer type. - * - * @return unsigned integer value. - * @since S60 ?S60_version - */ - OSN_IMPORT uint uinteger() const; - - /** - * Get the data value as an bool .From IAlfVariantType Interface - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType if aValue - * is not of real type. - * - * @return real data value. - * @since S60 ?S60_version - */ - OSN_IMPORT double real() const; - - /** - * Get the data value as an Descriptor .From IAlfVariantType Interface - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType if aValue - * is not of string type. - * - * @return string data value. - * @since S60 ?S60_version - */ - OSN_IMPORT const UString& string() const; - - /** - * Get the data value as an Container .From IAlfVariantType Interface. - * Always throws an exception. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfVariantType is not a container. - * - * @return AlfContainer . - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfContainer* container(); - - /** - * Get the data value as Map .From IAlfVariantType Interface. - * Always throws an exception. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfVariantType is not a map. - * - * @return Map - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfMap* map() ; - - /** - * Get the data value as Branch .From IAlfVariantType Interface - * Always throws an exception. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfVariantType is not a branch. - * - * @return Map - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfBranch* branch() ; - - /** - * Get the data value as a User Defined Data Pointer. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType if aValue - * is not of custom type. - * - * @return IAlfModelBase interface. - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfModelBase* customData(); - - /** - * Destructor - * - * @return - * @since S60 ?S60_version - */ - OSN_IMPORT ~AlfVariantType(); - - - /** - * The default constructor. - * - * @since S60 ?S60_version - */ - OSN_IMPORT AlfVariantType(); - - /** - * Equality comparison operator. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType if aValue - * is of invalid type. - * - * @param aOther object to compare against. - * @since S60 ?S60_version - */ - OSN_IMPORT bool operator==(const IAlfVariantType& aOther) const; - -private: - - - /** - * 2nd Phase Constructor - * - * @since S60 ?S60_version - * @param aType - */ - void construct(Type aType); - - -private: - //data owned - auto_ptr mVarData; - - }; - - -/** - * @class AlfVariantType alfvarianttype.h "alf/alfvarianttype.h" - * Concrete implementation of the variant data type interface. - * Simple default container of variant types. - * @see IAlfContainer - * - * @lib alfwidgetmodel.lib - * @since S60 ?S60_version - * @status Draft - */ -class AlfContainer : public IAlfContainer - { -public: - - /** - * Constructor for creating a variant data type which can store a alfcontainer - * @exception std::bad_alloc - * - * @since S60 ?S60_version - */ - OSN_IMPORT AlfContainer(); - - /** - * Destructor - * @since S60 ?S60_version - */ - OSN_IMPORT ~AlfContainer(); - - //IAlfContainer APIs - - /** - * Adds a variantData item into the container .From IAlfContainer interface - * @aData variant data to be added into the container. Ownership is transferred - * if the method completes without exceptions. If there is an exception - * (e.g. due to out of memory), the client code is responsible for cleaning up the object. - * @exception std::bad_alloc - * - * @return void. - * @since S60 ?S60_version - */ - OSN_IMPORT void addItem(IAlfVariantType* aData); - - /** - * Adds a variantData item into the container .From IAlfContainer interface - * @aIndex index where the data is added - * @aData variant data to be added into the container. Ownership is transferred - * if the method completes without exceptions. If there is an exception - * (e.g. due to out of memory), the client code is responsible for cleaning up the object. - * @exception std::bad_alloc - * - * @return void. - * @since S60 ?S60_version - */ - OSN_IMPORT void addItem(uint aIndex, IAlfVariantType* aData); - - /** - * Gets the Number of items in the container . From IAlfContainer interface - * - * @return number of items in the container - * @since S60 ?S60_version - */ - OSN_IMPORT int count(); - - /** - * Gets the Item at a given index in the container From IAlfContainer interface - * @param aIndex - index at which the element is required - * @return item as a MlfVariantType - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfVariantType* item(uint aIndex); - - /** - * Clones the entire container From IAlfContainer interface - * @exception std::bad_alloc - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType if - * there is an invalid data type in the container. - * - * @return the cloned container - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfContainer* clone(); - - - /** - * Removes an item from given index in the container. From IAlfContainer interface - * @param aIndex - index at which the element is to be removed. - * @return item as a IAlfVariantType - * @since S60 ?S60_version - */ - OSN_IMPORT void removeItem(uint aIndex); - - /** - * Clear the Container. From IAlfContainer interface - * - * @return void - * @since S60 ?S60_version - */ - OSN_IMPORT void clear() ; - - /** - * Replace an item from given index in the container. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidContainerOperation if - * the replaceItem fails. - * - * @param aIndex - index at which the element is to be replaced - * @param aNewData - new Data to be replaced - * @return void - * @since S60 ?S60_version - */ - OSN_IMPORT void replaceItem(uint aIndex, IAlfVariantType* aNewData ); - - /** - * sorts the container using user defined sort function. - * - * @param aSortFunction - sort function. - * @since S60 ?S60_version - */ - OSN_IMPORT void sort( const IAlfSortFunction& aSortFunction ); - - //from IAlfVariantType Interface - /** - * Set the Data the variantData. From IAlfVariantType Interface. - * Always throws an exception always. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidContainerOperation always. - * Use the addItem API. - * - * @param aValue The new value. - * @return void - * @since S60 ?S60_version - */ - OSN_IMPORT void set(IAlfVariantType& aValue); - - /** - * Get the data type.From IAlfVariantType Interface - * - * @return The data type. - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfVariantType::Type type() const; - - /** - * Get the data value as an bool .From IAlfVariantType Interface. - * Always throws an exception. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfContainer is not boolean. - * - * @return bool data value. - * @since S60 ?S60_version - */ - OSN_IMPORT bool boolean() const; - - /** - * Get the data value as an Integer .From IAlfVariantType Interface. - * Always throws an exception. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfContainer is not an integer. - * - * @return Integer data value. - * @since S60 ?S60_version - */ - OSN_IMPORT int integer() const; - - /** - * Get the data value as unsigned int.From IAlfVariantType Interface. - * Always throws an exception. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfContainer is not an unsigned integer. - * - * @return unsigned integer data value. - * @since S60 ?S60_version - */ - OSN_IMPORT uint uinteger() const; - - /** - * Get the data value as an bool .From IAlfVariantType Interface. - * Always throws an exception. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfContainer is not a real value. - * - * @return real data value. - * @since S60 ?S60_version - */ - OSN_IMPORT double real() const; - - /** - * Get the data value as an Descriptor .From IAlfVariantType Interface. - * Always throws an exception. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfContainer is not a string. - * - * @return string data value. - * @since S60 ?S60_version - */ - OSN_IMPORT const UString& string() const; - - /** - * Get the data value as an Conatiner .From IAlfVariantType Interface. - * - * @return AlfContainer . - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfContainer* container(); - - /** - * Get the data value as Map .From IAlfVariantType Interface. - * Always throws an exception. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfContainer is not a map. - * - * @return Map - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfMap* map(); - - /** - * Get the data value as Branch .From IAlfVariantType Interface. - * Always throws an exception. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfContainer is not a map. - * - * @return Map - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfBranch* branch(); - - /** - * Get the data value as a User Defined Data Pointer. - * Always throws an exception. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfContainer is not a custom data type. - * - * @return IAlfModelBase interface. - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfModelBase* customData(); - - /** - * Equality comparison operator. - * Always throws an exception. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidContainerOperation always. - * - * @param aOther object to compare against. - * @since S60 ?S60_version - */ - OSN_IMPORT bool operator==(const IAlfVariantType& aOther) const; -private: - void construct(); - //Data owned - auto_ptr mContainerData; - - }; - -/** - * @class AlfMap alfvarianttype.h "alf/alfvarianttype.h" - * Concrete implementation of the variant data type interface. - * Simple map of variant types.The map is contains data and a key. - * @see IAlfMap - * - * @lib alfwidgetmodel.lib - * @since S60 ?S60_version - * @status Draft - */ -class AlfMap : public IAlfMap - { -public: - - - /** - * 1st phase Constructor for creating a variant data type which can store a AlfMap - * @exception std::bad_alloc - * - * @since S60 ?S60_version - */ - OSN_IMPORT AlfMap(); - - - - //IAlfContainer APIs - - /** - * Gets the Number of items in the container . From IAlfContainer interface - * - * @return number of items in the container - * @since S60 ?S60_version - */ - OSN_IMPORT int count() const; - - /** - * Gets the Item at a given index in the container From IAlfContainer interface - * @param aIndex - index at which the element is required - * @return item as a MlfVariantType - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfVariantType* item(uint aIndex); - - /** - * Clones the entire container From IAlfContainer interface - * @exception std::bad_alloc - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType if - * there is an invalid data type in the container. - * - * @return the cloned container - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfMap* clone(); - - - /** - * Removes an item from given index in the container. From IAlfContainer interface. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidMapOperation if - * the removeItem fails. - * - * @param aIndex - index at which the element is to be removed - * @return void - * @since S60 ?S60_version - */ - OSN_IMPORT void removeItem(uint aIndex); - - /** - * Clear the Container. From IAlfContainer interface - * - * @return void - * @since S60 ?S60_version - */ - OSN_IMPORT void clear() ; - - /** - * Replace an item from given index in the container - * @exception std::bad_alloc - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidMapOperation if - * the replaceItem fails. - * @param aIndex - index at which the element is to be replaced - * @param aNewData - new Data to be replaced - * @return void - * @since S60 ?S60_version - */ - OSN_IMPORT void replaceItem(uint aIndex, IAlfVariantType* aNewData ); - - - - //IAlfMap Interface APis - - /** - * Gets the Item for a given name in the map. From IAlfContainer interface - * @param aName - name of the element that is required - * @return item as a IAlfVariantType - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfVariantType* item(const UString& aName); - - /** - * Gets the index of the item by the given name. - * @param aName The name associated with requested item. - * @return The index corresponding to the name of the item. - * @since S60 ?S60_version - */ - OSN_IMPORT int itemIndex(const UString& aName); - - /** - * Removes an item for a given Name in map. From IAlfContainer interface - * @exception std::bad_alloc - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidMapOperation if - * the removeItem fails. - * - * @param aName - name of the element that is to be removed - * @return item as a MlfVariantType - * @since S60 ?S60_version - */ - OSN_IMPORT void removeItem(const UString& aName); - - /** - * Replace an item for a given name in the container - * @exception std::bad_alloc - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidMapOperation if - * the replaceItem fails. - * - * @param aName - name of the element that is to be replaced - * @param aNewData - new Data to be replaced - * @return void - * @since S60 ?S60_version - */ - OSN_IMPORT void replaceItem(const UString& aName,IAlfVariantType* aNewData); - - /** - * Adds a variantData item into the container .From IAlfContainer interface - * @exception std::bad_alloc - * - * @param aName - name of the data that needs to be added - * @param aData- variant data to be added into the container. Ownership is transferred - * if the method completes without exceptions. If there is an exception - * (e.g. due to out of memory), the client code is responsible for cleaning up the object. - * @return void. - * @since S60 ?S60_version - */ - OSN_IMPORT void addItem(IAlfVariantType* aData, const UString& aName); - - /** - * Adds a variantData item into the container .From IAlfContainer interface - * @exception std::bad_alloc - * - * @aIndex index where the data is added - * @param aName - name of the data that needs to be added - * @param aData- variant data to be added into the container. Ownership is transferred - * if the method completes without exceptions. If there is an exception - * (e.g. due to out of memory), the client code is responsible for cleaning up the object. - * @return void. - * @since S60 ?S60_version - */ - OSN_IMPORT void addItem(uint aIndex, IAlfVariantType* aData, const UString& aName); - - /** - * Gets the Name at a given index in the container - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidArrayIndex if - * aIndex is invalid. - * - * @param aIndex - index at which the name of the element in the map is required - * @return item name as a TPtr - * @since S60 ?S60_version - */ - const UString& name(uint aIndex) const; - - //class methods - /** - * Destructor - * @since S60 ?S60_version - */ - OSN_IMPORT ~AlfMap(); - - - //from IAlfVariantType Interface - /** - * Set the Data the variantData. From IAlfVariantType Interface. - * Always throws an exception always. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidMapOperation always. - * Use the addItem API. - * @param aValue The new value. - * @return void - * @since S60 ?S60_version - */ - OSN_IMPORT void set(IAlfVariantType& aValue); - - /** - * Get the data type.From IAlfVariantType Interface - * - * @return The data type. - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfVariantType::Type type() const; - - /** - * Get the data value as an bool .From IAlfVariantType Interface - * Always throws an exception. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfMap is not boolean. - * - * @return bool data value. - * @since S60 ?S60_version - */ - OSN_IMPORT bool boolean() const; - - /** - * Get the data value as an Integer .From IAlfVariantType Interface - * Always throws an exception. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfMap is not an integer. - * - * @return Integer data value. - * @since S60 ?S60_version - */ - OSN_IMPORT int integer() const; - - /** - * Get the data value as unsigned int.From IAlfVariantType Interface - * Always throws an exception. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfMap is not an unsigned integer. - * - * @return unsigned integer data value. - * @since S60 ?S60_version - */ - OSN_IMPORT uint uinteger() const; - - /** - * Get the data value as an bool .From IAlfVariantType Interface - * Always throws an exception. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfMap is not a real value. - * - * @return double data value. - * @since S60 ?S60_version - */ - OSN_IMPORT double real() const; - - /** - * Get the data value as an Descriptor .From IAlfVariantType Interface - * Always throws an exception. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfMap is not a string value. - * - * @return string data value. - * @since S60 ?S60_version - */ - OSN_IMPORT const UString& string() const; - - /** - * Get the data value as an Conatiner .From IAlfVariantType Interface - * Always throws an exception. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfMap is not a container. - * - * @return AlfContiner . - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfContainer* container(); - - /** - * Get the data value as Map .From IAlfVariantType Interface - * - * @return Map - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfMap* map(); - - /** - * Get the data value as Branch .From IAlfVariantType Interface - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfMap is not a branch. - * - * @return Branch - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfBranch* branch(); - - /** - * Get the data value as a User Defined Data Pointer. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfMap is not a custom data type. - * - * @return IAlfModelBase interface. - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfModelBase* customData(); - - /** - * Equality comparison operator. - * - * @since S60 ?S60_version - */ - OSN_IMPORT bool operator==(const IAlfVariantType& aOther) const; - -private: - void construct(); - //data - auto_ptr mMapDataImpl; - }; - -/** - * @class AlfBranch alfvarianttype.h "alf/alfvarianttype.h" - * Concrete implementation of the variant data type interface. - * @see IAlfBranch - * - * @lib alfwidgetmodel.lib - * @since S60 ?S60_version - * @status Draft - */ -class AlfBranch: public IAlfBranch - { -public: - - - /** - * Parameterized Constructor - * @exception std::bad_alloc - * - * @since S60 ?S60_version - */ - OSN_IMPORT AlfBranch( IAlfMap* aData, IAlfMap* aChildData); - - /** - * Default Constructor - * @exception std::bad_alloc - * - * @since S60 ?S60_version - */ - OSN_IMPORT AlfBranch(); - - /** - * - * @return - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfMap* data(); - - /** - * - * @param aData - - * @return void. - * @since S60 ?S60_version - */ - OSN_IMPORT void setData( IAlfMap* aData ); - - /** - * - * @param aIndex - - * @return . - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfVariantType* childData(int aIndex); - - /** - * - * @param aIndex - - * @return . - * @since S60 ?S60_version - */ - OSN_IMPORT const UString& childName(int aIndex); - - /** - * - * @return . - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfMap* childData(); - - /** - * - * @param aChildData - - * @return void - * @since S60 ?S60_version - */ - OSN_IMPORT void setChildData( IAlfMap* aChildData ); - - /** - * - * @return - * @since S60 ?S60_version - */ - OSN_IMPORT uint childrenCount(); - - /** - * Destructor - * @since S60 ?S60_version - */ - OSN_IMPORT ~AlfBranch(); - - /** - * sorts the branch using user defined sort function. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidBranchOperation if - * sorting fails. - * - * @param aSortFunction - sort function. - * return void - * @since S60 ?S60_version - */ - OSN_IMPORT void sort( const IAlfSortFunction& aSortFunction ); - - /** - * Function to Clone the Branch - * @exception std::bad_alloc - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidBranchOperation if - * cloning fails. - * - * @return - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfBranch* clone(); - - - //from IAlfVariantType Interface - /** - * Set the Data the variantData. From IAlfVariantType Interface - * Always throws an exception always. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidBranchOperation always. - * Use the setData API. - * - * @param aValue The new value. - * @return void - * @since S60 ?S60_version - */ - OSN_IMPORT void set(IAlfVariantType& aValue); - - /** - * Get the data type.From IAlfVariantType Interface - * - * @return The data type. - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfVariantType::Type type() const; - - /** - * Get the data value as an bool .From IAlfVariantType Interface - * Always throws an exception. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfBranch is not boolean. - * @return bool data value. - * @since S60 ?S60_version - */ - OSN_IMPORT bool boolean() const; - - /** - * Get the data value as an Integer .From IAlfVariantType Interface - * Always throws an exception. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfBranch is not an integer. - * - * @return Integer data value. - * @since S60 ?S60_version - */ - OSN_IMPORT int integer() const; - - /** - * Get the data value as unsigned int.From IAlfVariantType Interface - * Always throws an exception. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfBranch is not an unsigned integer. - * - * @return unsigned integer data value. - * @since S60 ?S60_version - */ - OSN_IMPORT uint uinteger() const; - - /** - * Get the data value as an bool .From IAlfVariantType Interface - * Always throws an exception. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfBranch is not a real value. - * - * @return real data value. - * @since S60 ?S60_version - */ - OSN_IMPORT double real() const; - - /** - * Get the data value as an Descriptor .From IAlfVariantType Interface - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfBranch is not a string value. - * - * @return string data value. - * @since S60 ?S60_version - */ - OSN_IMPORT const UString& string() const; - - /** - * Get the data value as an Conatiner. From IAlfVariantType Interface - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfBranch is not a container. - * - * @return AlfContiner . - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfContainer* container(); - - /** - * Get the data value as Map. From IAlfVariantType Interface - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfBranch is not a map. - * - * @return Map - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfMap* map(); - - /** - * Get the data value as Branch. From IAlfVariantType Interface - * - * @return Map - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfBranch* branch(); - - /** - * Get the data value as a User Defined Data Pointer. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidVariantDataType always - * since AlfBranch is not a custom value. - * - * @return IAlfModelBase interface. - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfModelBase* customData(); - - /** - * Equality comparison operator. - * Always throws an exception. - * @exception osncore::AlfDataException Thrown with error code osncore::EInvalidBranchOperation always. - * - * @param aOther object to compare against. - * @since S60 ?S60_version - */ - OSN_IMPORT bool operator==(const IAlfVariantType& aOther) const; -private: - /** - * 2nd Phase Constructor - * @return - * @since S60 ?S60_version - */ - void construct( IAlfMap* aData, IAlfMap* aChildData); - -private: - - //Data - owned - auto_ptr mBranchData; - - - }; - - } // namespace Alf - -#endif // ALFVARIANTTYPE_H - -// End of File