harvester/common/src/mdeobjectwrapper.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 13 Oct 2010 15:02:02 +0300
branchRCL_3
changeset 63 e538444823de
parent 53 29d87345eaeb
permissions -rw-r--r--
Revision: 201039 Kit: 201041

/*
* Copyright (c) 2008-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:  
*
*/

#include "mdeobjectwrapper.h"
#include "harvesterlog.h"
#include "mdeobjectdef.h"
#include "mdepropertydef.h"
#include "mdeobject.h"
#include "mdetextproperty.h"

CMdeObjectWrapper::CMdeObjectWrapper()
    {
	// No implementation required
    }


CMdeObjectWrapper::~CMdeObjectWrapper()
    {
    }

EXPORT_C CMdeObjectWrapper* CMdeObjectWrapper::NewLC()
    {
	CMdeObjectWrapper* self = new (ELeave)CMdeObjectWrapper();
	CleanupStack::PushL(self);
	self->ConstructL();
	return self;
    }

EXPORT_C CMdeObjectWrapper* CMdeObjectWrapper::NewL()
    {
	CMdeObjectWrapper* self=CMdeObjectWrapper::NewLC();
	CleanupStack::Pop( self ); // self;
	return self;
    }

void CMdeObjectWrapper::ConstructL()
    {

    }

EXPORT_C void CMdeObjectWrapper::HandleObjectPropertyL(CMdEObject& aMdeObject, const TDesC& aPropertyType, TAny* aData, TBool aIsAdd )
	{
	CMdEObjectDef& mdoDef = aMdeObject.Def();
    CMdEPropertyDef& propertyDef = mdoDef.GetPropertyDefL( aPropertyType );
    
    HandleObjectPropertyL( aMdeObject, propertyDef, aData, aIsAdd );
	}

EXPORT_C void CMdeObjectWrapper::HandleObjectPropertyL(CMdEObject& aMdeObject, CMdEPropertyDef& aPropertyDef, TAny* aData, TBool aIsAdd )
	{
	if( ! aData )
		{
#ifdef _DEBUG
		WRITELOG1("CMdeObjectWrapper::HandleObjectPropertyL - aData is null for property: %S", &aPropertyDef.Name() );
#endif
		return;
		}
	
    TPropertyType pt = aPropertyDef.PropertyType();
    
    // check if edit and readonly property then do nothing
    if( ! aIsAdd )
    	{
    	if ( aPropertyDef.ReadOnly() != 0 )
    		{
#ifdef _DEBUG
    		WRITELOG1("CMdeObjectWrapper::HandleObjectPropertyL - property: %S is readonly", &aPropertyDef.Name() );
#endif
    		return;
    		}
 
	    CMdEProperty* property = NULL;
	    const TInt error = aMdeObject.Property( aPropertyDef, property );

	    if ( error >= KErrNone && property )
	        {
	        switch ( pt )
		        {
				case EPropertyBool:
					{
					TBool* value = static_cast<TBool*>( aData );
					WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Edit property: %S with value %d", &aPropertyDef.Name(), *value );
					property->SetBoolValueL( *value );
					}
				break;
				
				case EPropertyInt8:
					{
					TInt8* value = static_cast<TInt8*>( aData );
					WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Edit property: %S with value %d", &aPropertyDef.Name(), *value );
					property->SetInt8ValueL( *value );
					}
				break;
				
				case EPropertyUint8:
					{
					TUint8* value = static_cast<TUint8*>( aData );
					WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Edit property: %S with value %d", &aPropertyDef.Name(), *value );
					property->SetUint8ValueL( *value );
					}
				break;
				
				case EPropertyInt16:
					{
					TInt16* value = static_cast<TInt16*>( aData );
					WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Edit property: %S with value %d", &aPropertyDef.Name(), *value );
					property->SetInt16ValueL( *value );
					}
				break;
				
				case EPropertyUint16:
					{
					TUint16* value = static_cast<TUint16*>( aData );
					WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Edit property: %S with value %d", &aPropertyDef.Name(), *value );
					property->SetUint16ValueL( *value );
					}
				break;
				
				case EPropertyInt32:
					{
					TInt32* value = static_cast<TInt32*>( aData );
					WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Edit property: %S with value %d", &aPropertyDef.Name(), *value );
					property->SetInt32ValueL( *value );
					}
				break;
				
				case EPropertyUint32:
					{
					TUint32* value = static_cast<TUint32*>( aData );
					WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Edit property: %S with value %d", &aPropertyDef.Name(), *value );
					property->SetUint32ValueL( *value );
					}
				break;
				
				case EPropertyInt64:
					{
					TInt64* value = static_cast<TInt64*>( aData );
					WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Edit property: %S with value %d", &aPropertyDef.Name(), *value );
					property->SetInt64ValueL( *value );
					}
				break;
				
				case EPropertyReal32:
					{
					TReal32* value = static_cast<TReal32*>( aData );
					WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Edit property: %S with value %d", &aPropertyDef.Name(), *value );
					property->SetReal32ValueL( *value );
					}
				break;
				
				case EPropertyReal64:
					{
					TReal64* value = static_cast<TReal64*>( aData );
					WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Edit property: %S with value %d", &aPropertyDef.Name(), *value );
					property->SetReal64ValueL( *value );
					}
				break;
				
				case EPropertyTime:
					{
					TTime* value = static_cast<TTime*>( aData );
#ifdef _DEBUG
					WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Edit property: %S with value %d", &aPropertyDef.Name(), value->Int64() );
#endif
					property->SetTimeValueL( *value );
					}
				break;
				
				case EPropertyText:
					{
					const TDesC16* value = static_cast<const TDesC16*>( aData );
					if( value->Length() > 0 )
						{
						WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Edit property: %S with value %S", &aPropertyDef.Name(), value );
						property->SetTextValueL( *value );
						}
					else
						{
#ifdef _DEBUG
						WRITELOG1("CMdeObjectWrapper::HandleObjectPropertyL - property: %S was empty and not edited", &aPropertyDef.Name() );
#endif
						}
					}
				break;
				
				default:
				break;
				}
	        
	        return;
	        }
    	}
   
    switch ( pt )
        {
		case EPropertyBool:
			{
			TBool* value = static_cast<TBool*>( aData );
			WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Add property: %S with value %d", &aPropertyDef.Name(), *value );
			aMdeObject.AddBoolPropertyL( aPropertyDef, *value );
			}
		break;

		case EPropertyInt8:
			{
			TInt8* value = static_cast<TInt8*>( aData );
			WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Add property: %S with value %d", &aPropertyDef.Name(), *value );
			aMdeObject.AddInt8PropertyL( aPropertyDef, *value );
			}
		break;

		case EPropertyUint8:
			{
			TUint8* value = static_cast<TUint8*>( aData );
			WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Add property: %S with value %d", &aPropertyDef.Name(), *value );
			aMdeObject.AddUint8PropertyL( aPropertyDef, *value );
			}
		break;
		
		case EPropertyInt16:
			{
			TInt16* value = static_cast<TInt16*>( aData );
			WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Add property: %S with value %d", &aPropertyDef.Name(), *value );
			aMdeObject.AddInt16PropertyL( aPropertyDef, *value );
			}
		break;
		
		case EPropertyUint16:
			{
			TUint16* value = static_cast<TUint16*>( aData );
			WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Add property: %S with value %d", &aPropertyDef.Name(), *value );
			aMdeObject.AddUint16PropertyL( aPropertyDef, *value );
			}
		break;
		
		case EPropertyInt32:
			{
			TInt32* value = static_cast<TInt32*>( aData );
			WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Add property: %S with value %d", &aPropertyDef.Name(), *value );
			aMdeObject.AddInt32PropertyL( aPropertyDef, *value );
			}
		break;
		
		case EPropertyUint32:
			{
			TUint32* value = static_cast<TUint32*>( aData );
			WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Add property: %S with value %d", &aPropertyDef.Name(), *value );
			aMdeObject.AddUint32PropertyL( aPropertyDef, *value );
			}
		break;
		
		case EPropertyInt64:
			{
			TInt64* value = static_cast<TInt64*>( aData );
			WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Add property: %S with value %d", &aPropertyDef.Name(), *value );
			aMdeObject.AddInt64PropertyL( aPropertyDef, *value );
			}
		break;
		
		case EPropertyReal32:
			{
			TReal32* value = static_cast<TReal32*>( aData );
			WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Add property: %S with value %d", &aPropertyDef.Name(), *value );
			aMdeObject.AddReal32PropertyL( aPropertyDef, *value );
			}
		break;
		
		case EPropertyReal64:
			{
			TReal64* value = static_cast<TReal64*>( aData );
			WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Add property: %S with value %d", &aPropertyDef.Name(), *value );
			aMdeObject.AddReal64PropertyL( aPropertyDef, *value );
			}
		break;
		
		case EPropertyTime:
			{
			TTime* value = static_cast<TTime*>( aData );
			WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Add property: %S with value %d", &aPropertyDef.Name(), value->Int64() );
			aMdeObject.AddTimePropertyL( aPropertyDef, *value );
			}
		break;
		
		case EPropertyText:
			{
			const TDesC16* value = static_cast<const TDesC16*>( aData );
			if( value->Length() > 0 )
				{
				WRITELOG2("CMdeObjectWrapper::HandleObjectPropertyL - Add property: %S with value %S", &aPropertyDef.Name(), value );
				aMdeObject.AddTextPropertyL( aPropertyDef, *value );
				}
			else
				{
#ifdef _DEBUG
				WRITELOG1("CMdeObjectWrapper::HandleObjectPropertyL - property: %S was empty and not added", &aPropertyDef.Name() );
#endif
				}
			}
		break;
		
		default:
		break;
		}
	}