lafagnosticuifoundation/uigraphicsutils/tulinc/tulphonenumberutils.h
changeset 0 2f259fa3e83a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lafagnosticuifoundation/uigraphicsutils/tulinc/tulphonenumberutils.h	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,115 @@
+/*
+* Copyright (c) 2006-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:
+*
+*/
+
+
+
+#ifndef __TULPHONENUMBERUTILS_H__
+#define __TULPHONENUMBERUTILS_H__
+
+#include    <coemain.h>
+
+
+/**
+Class offers static methods for parsing and validating phone numbers. 
+Phone Parser API provides methods which are used to parse and validate
+phone numbers. The API consists of the TulPhoneNumberUtils class.
+
+Examples of valid phone numbers:
+1.	+358501234567
+2.	+358 (50) 123 4567
+
+Even though both of the above examples are valid phone numbers, only 1) is 
+accepted as a phone number by many systems. To convert 2) to 1), use the 
+parsing method of the API.
+
+Usage:
+  
+@code
+ #include <tulphonenumberutils.h> 
+
+ // Example shows how to use the parsing method of the API.
+
+ // A number to be parsed. 
+ TBuf<50> number1 = _L("+358 (40) 123 132");
+
+ // Type of the phone number to be parsed is a regular phone number.
+ TBool validNumber1 = 
+ TulPhoneNumberUtils::NormalizePhoneNumber( number1,
+                                      TulPhoneNumberUtils::EPlainPhoneNumber );
+
+ // The phone number number1 is a valid regular phone number.
+ // After parsing validNumber1 is ETrue and 
+ // number1 is "+35840123132".
+ // Do something like SendSMS( number1 ) etc.
+
+ // A number to be parsed. 
+ TBuf<50> number2 = _L("+358 (40) 123p132"); // note 'p'
+
+ // Type of the phone number to be parsed is a regular phone number.
+ TBool validNumber2 = 
+ TulPhoneNumberUtils::NormalizePhoneNumber( number2,
+                                      TulPhoneNumberUtils::EPlainPhoneNumber );
+
+ // The phone number number2 is not a valid regular phone number.
+ // After parsing validNumber2 is EFalse and 
+ // number2 is "+358 (40) 123p132" (unchanged).
+@endcode
+
+@publishedAll
+@released
+*/
+NONSHARABLE_CLASS(TulPhoneNumberUtils)
+    {
+public:
+    /** 
+    * Enumeration for phone number types. 
+    * Used to specify the type of phone numbers in methods of 
+    * TulPhoneNumberUtils class.
+    */
+    enum TPhoneNumberType
+        {
+        /** The supplied phone number is a regular phone number. */
+        EPlainPhoneNumber,
+        /** The supplied phone number is a contact card number. */
+        EContactCardNumber,
+        /** The supplied phone number is is a phone client number. */
+        EPhoneClientNumber,
+        /** The supplied phone number is an SMS number. */
+        ESMSNumber
+        };
+
+    IMPORT_C static TBool Normalize( TDes& aNumber, TPhoneNumberType aType = EPlainPhoneNumber);
+    IMPORT_C static TBool IsValid( const TDesC& aNumber, TPhoneNumberType aType = EPlainPhoneNumber );
+public: // deprecated
+    inline static TBool ParsePhoneNumber( TDes& aNumber, TInt aType );
+    inline static TBool IsValidPhoneNumber( const TDesC& aNumber, TInt aType );
+private:    
+    static TBool IsValidPhoneNumber( const TDesC& aNumber, const TDesC& aValidChars);
+    static void ParseInvalidChars( TDes& aNumber, const TDesC& aInvalidChars);
+    };
+
+// For source compatibility with S60
+
+/** @deprecated */
+inline TBool TulPhoneNumberUtils::ParsePhoneNumber( TDes& aNumber, TInt aType )
+	{ return TulPhoneNumberUtils::Normalize(aNumber, static_cast<TPhoneNumberType>(aType)); }
+/** @deprecated */
+inline TBool TulPhoneNumberUtils::IsValidPhoneNumber( const TDesC& aNumber, TInt aType )
+	{ return TulPhoneNumberUtils::IsValid(aNumber, static_cast<TPhoneNumberType>(aType)); }
+	
+#endif      // __TULPHONENUMBERUTILS_H__
+