diff -r 5b6f26637ad3 -r f4a778e096c2 phonebookui/Phonebook2/CommandsExtension/inc/Pbk2SendCmdUtils.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookui/Phonebook2/CommandsExtension/inc/Pbk2SendCmdUtils.h Wed Sep 01 12:29:52 2010 +0100 @@ -0,0 +1,111 @@ +/* +* Copyright (c) 2005-2007 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: Send command's utility functions +* +*/ + + +#ifndef PBK2SENDCMDUTILS_H +#define PBK2SENDCMDUTILS_H + +// INCLUDES +#include + +// FORWARD DECLARATIONS +class MVPbkBaseContact; +class MVPbkFieldType; +class MVPbkBaseContactField; +class MVPbkFieldTypeList; + +// CLASS DECLARATIONS +/** + * Send command's utility functions + */ +class Pbk2SendCmdUtils + { + public: + /** + * Finds if contact has any data in its fields. + * @param aContact contact to be checked + * @return ETrue if contact is empty, otherwise EFalse. + * @see MVPbkContactFieldData::IsEmpty + */ + static TBool IsContactEmpty(const MVPbkBaseContact* aContact); + + /** + * Finds specified field from contact. + * @param aContact contact where to search + * @param aResIdForFieldType VPBK_FIELD_TYPE_MAPPING resource id + * @param master field type list from contact manager. + * @return contact field of type aResIdForFieldType, NULL if + * field does not found + */ + static const MVPbkBaseContactField* FindFieldL( + const MVPbkBaseContact& aContact, + TInt aResIdForFieldType, + const MVPbkFieldTypeList& aMasterFieldTypeList); + + /** + * Finds specified field from contact. + * @param aContact contact where to search + * @param aFieldType a field type to find from contact + * @param master field type list from contact manager. + * @return contact field of type aFieldType, NULL if + * field does not found + */ + static const MVPbkBaseContactField* FindField( + const MVPbkBaseContact& aContact, + const MVPbkFieldType& aFieldType, + const MVPbkFieldTypeList& aMasterFieldTypeList); + + + /** + * Reads field type mapping from resource file + * @param aResId VPBK_FIELD_TYPE_MAPPING resource id + * @param master field type list from contact manager. + * @return field type + * @exception If field type not found leaves with KErrNotFound + */ + static const MVPbkFieldType& ReadFieldTypeFromResL( + TInt aResId, + const MVPbkFieldTypeList& aMasterFieldTypeList); + + /** + * Returns the contact field's field type. + * @param field from where to find field type + * @param master field type list from contact manager. + * @return field's field type + * @see MVPbkBaseContactField::MatchFieldType + */ + static const MVPbkFieldType* FieldType( + const MVPbkBaseContactField& aField, + const MVPbkFieldTypeList& aMasterFieldTypeList); + + /** + * Checks if aField's field type and aFieldType are matching + * @param field from where to find field type + * @param aFieldType a field type to match with contact's field type + * @param master field type list from contact manager. + * @return field's field type + * @see MVPbkBaseContactField::MatchFieldType + */ + static TBool IsFieldMatching( + const MVPbkBaseContactField& aField, + const MVPbkFieldType& aFieldType, + const MVPbkFieldTypeList& aMasterFieldTypeList); + }; + +#endif // PBK2SENDCMDUTILS_H + +// End of file