ncdengine/provider/protocol/src/ncd_pp_dataentityimpl.cpp
changeset 0 ba25891c3a9e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ncdengine/provider/protocol/src/ncd_pp_dataentityimpl.cpp	Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,248 @@
+/*
+* Copyright (c) 2006 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:   CNcdPreminetProtocolDataEntityImpl implementation
+*
+*/
+
+
+#include "ncd_pp_purchaseoption.h"
+#include "ncd_pp_dataentityimpl.h"
+#include "ncd_pp_dataentitycontent.h"
+#include "ncd_pp_skin.h"
+#include "ncd_pp_icon.h"
+#include "ncd_pp_download.h"
+#include "ncd_cp_query.h"
+#include "ncdprotocolutils.h"
+#include "catalogsdebug.h"
+#include "ncd_cp_detail.h"
+
+CNcdPreminetProtocolDataEntityImpl* 
+CNcdPreminetProtocolDataEntityImpl::NewL() 
+    {
+    CNcdPreminetProtocolDataEntityImpl* self =
+        new (ELeave) CNcdPreminetProtocolDataEntityImpl;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+    
+CNcdPreminetProtocolDataEntityImpl* 
+CNcdPreminetProtocolDataEntityImpl::NewLC() 
+    {
+    CNcdPreminetProtocolDataEntityImpl* self =
+        new (ELeave) CNcdPreminetProtocolDataEntityImpl;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    return self;
+    }
+    
+void CNcdPreminetProtocolDataEntityImpl::ConstructL()
+    {
+    NcdProtocolUtils::AssignEmptyDesL( iId );
+    NcdProtocolUtils::AssignEmptyDesL( iTimestamp );
+    NcdProtocolUtils::AssignEmptyDesL( iNamespace );
+    NcdProtocolUtils::AssignEmptyDesL( iServerUri );
+    NcdProtocolUtils::AssignEmptyDesL( iName );
+    NcdProtocolUtils::AssignEmptyDesL( iDescription );
+    NcdProtocolUtils::AssignEmptyDesL( iLayoutType );
+    
+    }
+
+CNcdPreminetProtocolDataEntityImpl::~CNcdPreminetProtocolDataEntityImpl()
+    {
+    DLTRACEIN((""));
+    delete iId;
+    delete iTimestamp;
+    delete iNamespace;
+    delete iServerUri;
+    delete iName;
+    delete iDescription;
+    delete iDisclaimer;
+    delete iIcon;
+    
+    iPurchaseOptions.ResetAndDestroy();    
+    iScreenshots.ResetAndDestroy();
+    iPreviews.ResetAndDestroy();
+    
+    delete iDownloadableContent;
+    delete iSubscribableContent;
+    
+    if( iDetails )
+        {
+        iDetails->ResetAndDestroy();
+        }
+    delete iDetails;    
+    delete iLayoutType;
+    delete iSkin;
+    delete iMoreInfo;
+    }
+
+TNcdDataEntityType CNcdPreminetProtocolDataEntityImpl::Type() const
+    {
+    return iType;
+    }
+    
+const TDesC& CNcdPreminetProtocolDataEntityImpl::Id() const
+    {
+    DASSERT( iId );
+    return *iId;
+    }
+
+const TDesC& CNcdPreminetProtocolDataEntityImpl::Timestamp() const
+    {
+    DASSERT( iTimestamp );
+    return *iTimestamp;
+    }
+
+const TDesC& CNcdPreminetProtocolDataEntityImpl::Namespace() const
+    {
+    DASSERT( iNamespace );
+    return *iNamespace;
+    }
+
+const TDesC& CNcdPreminetProtocolDataEntityImpl::ServerUri() const
+    {
+    DASSERT( iServerUri );
+    return *iServerUri;
+    }
+
+const TDesC& CNcdPreminetProtocolDataEntityImpl::Name() const
+    {
+    DASSERT( iName );
+    return *iName;    
+    }
+
+const TDesC& CNcdPreminetProtocolDataEntityImpl::Description() const
+    {
+    DASSERT( iDescription );
+    return *iDescription;
+    }
+    
+const MNcdConfigurationProtocolQuery* 
+CNcdPreminetProtocolDataEntityImpl::Disclaimer() const
+    {
+    return iDisclaimer;
+    }
+    
+const MNcdPreminetProtocolDownload* 
+CNcdPreminetProtocolDataEntityImpl::HelpInformation() const
+    {
+    return 0;
+    //return iHelpInformation;
+    }
+    
+const MNcdPreminetProtocolDataEntityContent* 
+CNcdPreminetProtocolDataEntityImpl::DownloadableContent() const 
+    {
+    return iDownloadableContent;
+    }
+
+const MNcdPreminetProtocolDataEntityContent* 
+CNcdPreminetProtocolDataEntityImpl::SubscribableContent() const 
+    {
+    return iSubscribableContent;
+    }
+
+    
+const MNcdPreminetProtocolIcon* 
+CNcdPreminetProtocolDataEntityImpl::Icon() const
+    {    
+    return iIcon;
+    }
+
+TInt CNcdPreminetProtocolDataEntityImpl::PurchaseOptionCount() const 
+    {
+    return iPurchaseOptions.Count();
+    }
+    
+const MNcdPreminetProtocolPurchaseOption&
+CNcdPreminetProtocolDataEntityImpl::PurchaseOptionL(TInt aIndex) const 
+    {
+    DASSERT( aIndex >= 0 && aIndex < iPurchaseOptions.Count() );
+    if (aIndex < 0 || aIndex >= iPurchaseOptions.Count()) 
+        {
+        User::Leave(KErrArgument);
+        }
+    return *iPurchaseOptions[aIndex];
+    }
+    
+const MNcdPreminetProtocolSkin* 
+CNcdPreminetProtocolDataEntityImpl::Skin() const 
+    {
+    return iSkin;
+    }
+    
+const TDesC& CNcdPreminetProtocolDataEntityImpl::LayoutType() const
+    {
+    return *iLayoutType;
+    }
+
+TInt CNcdPreminetProtocolDataEntityImpl::ScreenshotCount() const 
+    {
+    return iScreenshots.Count();
+    }
+
+const MNcdPreminetProtocolDownload&
+CNcdPreminetProtocolDataEntityImpl::ScreenshotL(TInt aIndex) const
+    {
+    if ( aIndex < 0 || aIndex >= iScreenshots.Count() ) 
+        {
+        User::Leave(KErrArgument);
+        }
+    return *iScreenshots[aIndex];
+    }
+
+TInt CNcdPreminetProtocolDataEntityImpl::PreviewCount() const 
+    {
+    return iPreviews.Count();
+    }
+
+const MNcdPreminetProtocolDownload&
+CNcdPreminetProtocolDataEntityImpl::PreviewL(TInt aIndex) const
+    {
+    if ( aIndex < 0 || aIndex >= iPreviews.Count() ) 
+        {
+        User::Leave(KErrArgument);
+        }
+    return *iPreviews[aIndex];
+    }
+
+const MNcdConfigurationProtocolQuery* 
+CNcdPreminetProtocolDataEntityImpl::MoreInfo() const
+    {
+    return iMoreInfo;
+    }
+
+TInt CNcdPreminetProtocolDataEntityImpl::DetailCount() const
+    {
+    if( iDetails )
+        {
+        return iDetails->Count();
+        }
+    else
+        {
+        return 0;
+        }
+    }
+
+const MNcdConfigurationProtocolDetail&
+CNcdPreminetProtocolDataEntityImpl::DetailL( TInt aIndex ) const
+    {
+    if( aIndex < 0 || !iDetails || aIndex >= iDetails->Count() )
+        {
+        User::Leave( KErrArgument );
+        }
+    return *iDetails->At( aIndex );
+    }