diff -r 4526337fb576 -r 3eca7e70b1b8 inc/alf/alfmodeloperation.h --- a/inc/alf/alfmodeloperation.h Tue Feb 02 00:28:09 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,210 +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 ALFMODELOPERATION_H -#define ALFMODELOPERATION_H - - -//INCLUDES -#include -#include - -using namespace osncore; - -namespace Alf - { - -/* Forward declarations*/ -class IAlfVariantType; - -/** @class AlfModelOperation alfmodeloperation.h "alf/alfmodeloperation.h" -* A class for storing information about changes in the model. -* CAlfModelOperation can be used to make changes in a batch mode, -* i.e., executing multiple changes in one call. -* @lib hitchcockwidgetmodel.lib -* @since S60 ?S60_version -* @status Draft -*/ -class AlfModelOperation - { -public: - - /** The operation constants. */ - enum OperationType{EOperationAdd, EOperationRemove, EOperationUpdate}; - - /** - * constructor. The new operation is left on the cleanup stack. - * - * @exception std::bad_alloc - * @since S60 ?S60_version - * @param aOperation The operation to be performed. - * @param aNumContainerIndices The number of indices in aContainerIndices. - * @param aContainerIndices The container indices to find the correct location - * in the data hierarchy. The ownership is transferred. - * @param aData The new data in EOperationAdd and EOperationUpdate operations. - * The ownership is transferred. - */ - OSN_IMPORT static AlfModelOperation* create( OperationType aOperation, - int aNumContainerIndices, - int* aContainerIndices, - IAlfVariantType* aData = 0 ); - - /** - * constructor for adding or updating a map item. - * The new operation is left on the cleanup stack. - * - * @exception std::bad_alloc - * @since S60 ?S60_version - * @param aOperation The operation to be performed. - * @param aNumContainerIndices The number of indices in aContainerIndices. - * @param aContainerIndices The container indices to find the correct location - * in the data hierarchy. The ownership is transferred. - * @param aData The new data. The ownership is transferred. - * @param aDataName The name of the new data in EOperationAdd and EOperationUpdate - * operations. Only needed when adding or updating a map item. - */ - OSN_IMPORT static AlfModelOperation* create( OperationType aOperation, - int aNumContainerIndices, - int* aContainerIndices, - IAlfVariantType* aData, - const UString& aDataName ); - - /** Destructor.*/ - OSN_IMPORT ~AlfModelOperation(); - - /** - * Get the name of the new data field in the container map. - * Panics if the operation is EOperationRemove. - * - * @exception osncore::AlfDataException Thrown with the error code osncore::EInvalidModelOperation\n - * when wrong operation is performed on Model. - * @return The new data. - * @since S60 ?S60_version - */ - OSN_IMPORT const UString& newDataName() const; - - /** - * Get the new data used in EOperationAdd or EOperationUpdate operations. - * Panics if the operation is EOperationRemove. - * - * @exception osncore::AlfDataException Thrown with the error code osncore::EInvalidModelOperation\n - * when wrong operation is performed on Model. - * @return The new data. - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfVariantType& newData() const; - - /** - * Get the new data used in EOperationAdd or EOperationUpdate operations. - * Panics if the operation is EOperationRemove. - * The ownership of the data is transferred to the caller, - * and the data of this operation is set to NULL. - * - * @exception osncore::AlfDataException Thrown with the error code osncore::EInvalidModelOperation\n - * when wrong operation is performed on Model. - * @return The new data. - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfVariantType* getNewData(); - - /** - * Get the Operation. - * - * @return The new data. - * @since S60 ?S60_version - */ - OSN_IMPORT AlfModelOperation::OperationType operation() const; - - /** - * Get the parent data for the operation. The parent data - * is a container for the data to be added, removed or updated. - * The index of the data can be queried using Index(). - * - * @exception osncore::AlfDataException Thrown with the error code osncore::EInvalidContainerOperation\n - * when wrong operation is performed on Model. - * @param aRoot The root of the data hierarchy to perform the operation. - * @return The parent data. - * @since S60 ?S60_version - */ - OSN_IMPORT IAlfVariantType* parentData(IAlfVariantType& aRoot ) const; - - /** - * Get the index of the data inside the parent container. - * The parent container can be queried using ParentData(). - * If the parent container is a branch, index 0 refers to - * the branch data, and index 1 refers to the child data. - * - * @return The new data. - * @since S60 ?S60_version - */ - OSN_IMPORT int index() const; - - /** - * Get the number of container indices to find the - * location in the data hierarchy. - * - * @return The number of container indices. - * @since S60 ?S60_version - */ - OSN_IMPORT int numContainerIndices() const; - - /** - * Get the container index to traverse through the data hierarchy. - * If the container in the hierarchy is a branch, index 0 refers to - * the branch data, and index 1 refers to the child data. - * - * @return The container index. - * @since S60 ?S60_version - */ - OSN_IMPORT int containerIndex( int aIndex ) const; - -private: - - AlfModelOperation( - OperationType aOperation, - int aNumContainerIndices, - int* aContainerIndices, - IAlfVariantType* aData = 0 ); - - AlfModelOperation( - OperationType aOperation, - int aNumContainerIndices, - int* aContainerIndices, - IAlfVariantType* aData, - const UString& aDataName ); - -private: // data - - // Target location in the data hierarchy - int mNumContainerIndices; - int* mContainerIndices; - - // The new data - IAlfVariantType* mData; - // The name of the new data, if adding or updating a map item - UString mDataName; - - // The operation to be performed - OperationType mOperation; - }; - - } // namespace Alf - -#endif // ALFMODELOPERATION_H