messagingfw/msgtestfw/Framework/inc/CMtfEnumeratorConverter.h
changeset 62 db3f5fa34ec7
parent 0 8e480a14352b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingfw/msgtestfw/Framework/inc/CMtfEnumeratorConverter.h	Wed Nov 03 22:41:46 2010 +0530
@@ -0,0 +1,89 @@
+/**
+* Copyright (c) 2003-2009 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:
+*
+*/
+
+
+
+/**
+ @file
+*/
+
+
+#ifndef __CMTF_ENUMERATOR_CONVERTER_H__
+#define __CMTF_ENUMERATOR_CONVERTER_H__
+
+
+#include <e32base.h>
+
+/** CMtfEnumeratorConverter provides the functionality to convert a descriptor containing 
+an enumerator value to the correct numerical value. This class contains the description of 
+an enumeration. */
+class CMtfEnumeratorConverter: public CBase
+{
+public:
+
+	/** TMtfEnumeratorPart defines the different component parts of an enumerator value
+	that is contained in a descriptor. */
+	enum TMtfEnumeratorPart
+	{
+		EMtfEnumeratorClassName,
+		EMtfEnumeratorEnumerationName,
+		EMtfEnumeratorValueName
+	};
+	
+	/** Creates a new empty object. aEnumeratorValue must be full enumerator value, e.g.,
+	CMtfClass::TMtfEnumeratorXYZ::EMtfValueXYZ. */
+	static CMtfEnumeratorConverter* NewL(const TDesC& aEnumeratorValue);
+	
+	/** Creates a new empty object from the class name and enumeration name. Class name is
+	optional and may be empty. */
+	static CMtfEnumeratorConverter* NewL(const TDesC& aClassName, const TDesC& aEnumerationName);	
+	
+	/** Returns true if the given parameter is a constant enumerator value of any enumeration. */
+	static TBool IsConstantEnumerator(const TDesC& aParameter);
+	
+	/** Extracts the required part from the given enumerator value. */
+	static TPtrC ParseEnumeratorValueL(const TDesC& aEnumeratorValue, TMtfEnumeratorPart aPart);
+	
+	virtual ~CMtfEnumeratorConverter();
+	
+	/* Compares two enumerator converters. Only the names are compared. */
+	TBool operator==(const CMtfEnumeratorConverter& aConverter) const;
+	
+	/* Compares two enumerator converters. Only the names are compared. */
+	TBool operator!=(const CMtfEnumeratorConverter& aConverter) const;
+
+	
+	/** Adds a new enumerator constant and its associated value. */
+	void AddEnumeratorValueL(const TDesC& aEnumeratorValue, TInt aValue);
+	
+	/** Convert a constant enumerator value to the associated numerical value. The
+	enumerator value can be full name (i.e., including class name, enumeration name and constant, 
+	or just the constant name. */
+	TInt ConvertL(const TDesC& aEnumeratorValue) const;
+	
+private:
+	CMtfEnumeratorConverter();
+	void ConstructL(const TDesC& aClassName, const TDesC& aEnumerationName);
+			
+private:
+	HBufC*					iClassName;
+	HBufC*					iEnumerationName;
+	RPointerArray<HBufC>	iEnumeratorValues;
+	RArray<TInt>			iValues;
+};
+
+#endif