phonebookengines/VirtualPhonebook/VPbkVCardEng/inc/CVPbkVCardContactFieldData.h
changeset 0 e686773b3f54
equal deleted inserted replaced
-1:000000000000 0:e686773b3f54
       
     1 /*
       
     2 * Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Classes for storing contact field data of different types.
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #ifndef CVPBKVCARDCONTACTFIELDDATA_H
       
    20 #define CVPBKVCARDCONTACTFIELDDATA_H
       
    21 
       
    22 // INCLUDES
       
    23 #include <e32base.h>
       
    24 
       
    25 // FORWARD DECLARATIONS
       
    26 class MVPbkContactAttribute;
       
    27 class MVPbkFieldType;
       
    28 class TVersitDateTime;
       
    29 
       
    30 // CLASS DECLARATIONS
       
    31 
       
    32 /** 
       
    33  * Base class for all concrete contact field data classes.
       
    34  * Managing data from parsed contact field data.
       
    35  */    
       
    36 NONSHARABLE_CLASS( CVPbkVCardContactFieldData ): public CBase
       
    37     {
       
    38     public:
       
    39         ~CVPbkVCardContactFieldData();
       
    40     
       
    41     protected:
       
    42         CVPbkVCardContactFieldData( const MVPbkFieldType& aFieldType );
       
    43         
       
    44     public:
       
    45         virtual TUid Uid() =0;
       
    46         
       
    47         virtual const MVPbkFieldType& FieldType();
       
    48         virtual MVPbkContactAttribute* Attribute();
       
    49         virtual void AppendAttribute( MVPbkContactAttribute* aAttribute );
       
    50 
       
    51     private:
       
    52         /// Ref:
       
    53         const MVPbkFieldType& iFieldType;
       
    54         /// Ref:
       
    55         MVPbkContactAttribute* iAttribute;
       
    56     };
       
    57 
       
    58 /** 
       
    59  * Concrete contact field data class for TDesC type data.
       
    60  *
       
    61  */    
       
    62 NONSHARABLE_CLASS( CVPbkVCardContactFieldDesCData ): 
       
    63     public CVPbkVCardContactFieldData
       
    64     {
       
    65     public:
       
    66         static CVPbkVCardContactFieldDesCData* NewLC
       
    67             ( const MVPbkFieldType& aFieldType, const TDesC& aValue );
       
    68         ~CVPbkVCardContactFieldDesCData();
       
    69         
       
    70     public:
       
    71         const TDesC& Value() const;        
       
    72         TUid Uid();
       
    73         
       
    74     private:
       
    75         CVPbkVCardContactFieldDesCData
       
    76             ( const MVPbkFieldType& aFieldType );
       
    77         void ConstructL( const TDesC& aValue );
       
    78             
       
    79     private:
       
    80         HBufC* iValue;
       
    81     };
       
    82     
       
    83 /** 
       
    84  * Concrete contact field data class for TDesC8 type data.
       
    85  *
       
    86  */    
       
    87 NONSHARABLE_CLASS( CVPbkVCardContactFieldBinaryData ): 
       
    88     public CVPbkVCardContactFieldData
       
    89     {
       
    90     public:
       
    91         static CVPbkVCardContactFieldBinaryData* NewLC
       
    92             ( const MVPbkFieldType& aFieldType, const TDesC8& aValue );
       
    93         ~CVPbkVCardContactFieldBinaryData();
       
    94         
       
    95     public:
       
    96         const TDesC8& Value() const;  
       
    97         TUid Uid();      
       
    98         
       
    99     private: 
       
   100         CVPbkVCardContactFieldBinaryData    
       
   101             ( const MVPbkFieldType& aFieldType );
       
   102         void ConstructL( const TDesC8& aValue );
       
   103         
       
   104     private:
       
   105         HBufC8* iValue;
       
   106     }; 
       
   107     
       
   108 /** 
       
   109  * Concrete contact field data class for TVersitDateTime type data.
       
   110  *
       
   111  */    
       
   112 NONSHARABLE_CLASS( CVPbkVCardContactFieldDateTimeData ): 
       
   113     public CVPbkVCardContactFieldData
       
   114     {
       
   115     public:
       
   116         static CVPbkVCardContactFieldDateTimeData* NewLC
       
   117             ( const MVPbkFieldType& aFieldType, const TVersitDateTime& aValue );
       
   118         ~CVPbkVCardContactFieldDateTimeData();
       
   119         
       
   120     public:
       
   121         const TVersitDateTime& Value() const;        
       
   122         TUid Uid();
       
   123 
       
   124     private:
       
   125         CVPbkVCardContactFieldDateTimeData
       
   126             ( const MVPbkFieldType& aFieldType, const TVersitDateTime& aValue );
       
   127     private:
       
   128         const TVersitDateTime& iValue;
       
   129     };            
       
   130 
       
   131 #endif // CVPBKVCARDCONTACTFIELDDATA_H    
       
   132 // End of file
       
   133