javamanager/javaregistry/client/inc/writeablejavaregistryapplicationentry.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 27 Apr 2010 16:30:29 +0300
branchRCL_3
changeset 19 04becd199f91
permissions -rw-r--r--
Revision: v2.1.22 Kit: 201017

/*
* Copyright (c) 2005-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:  writeablejavaregistryapplicationentry definition
*
*/


#ifndef WRITEABLEJAVAREGISTRYAPPLICATIONENTRY_H
#define WRITEABLEJAVAREGISTRYAPPLICATIONENTRY_H

// INCLUDES
#include <e32cmn.h>
#include "writeablejavaregistryentry.h"
#include "javastorage.h"

using namespace Java;

namespace Java
{
namespace Manager
{
namespace Registry
{

// FORWARD DECLARATION
class CWriteableJavaRegistry;
class CWriteableJavaRegistryPackageEntry;


// CLASS DECLARATION
/**
 * This subclass of CWriteableJavaRegistryEntry supports attributes
 * for single applications, that can't contain embedded entries.
 *
 * @lib javaregistryclient.lib
 * @since S60 v3.2
 */
class CWriteableJavaRegistryApplicationEntry :
        public CWriteableJavaRegistryEntry
{
public:

    // constructors

    CWriteableJavaRegistryApplicationEntry(
        java::storage::JavaStorageApplicationEntry_t& aEntry,
        TJavaRegistryEntryType aType);

    // destructor
    /**
     * CWriteableJavaRegistryApplicationEntry::
     * ~CWriteableJavaRegistryApplicationEntry destructor
     *
     * @since S60 v3.2
     */
    IMPORT_C ~CWriteableJavaRegistryApplicationEntry();

    // general methods
    /**
     * Tells if this application is startable.
     *
     * @since S60 v3.2
     * @return ETrue if the application is startable, EFalse otherwise.
     *         Default value if not set: ETrue.
     */
    IMPORT_C TBool IsStartable() const;


    /**
     * Tells if this application must be shown in Application Shell or
     * it must rather be hidden.
     *
     * @since S60 v3.2
     * @return ETrue if the application is shown in Application Shell,
     *         EFalse otherwise.
     *         Default value if not set: ETrue.
     */
    IMPORT_C TBool IsVisible() const;


    /**
     * Tells if this application is resident.
     *
     * @since S60 v3.2
     * @return ETrue if the application is resident, EFalse otherwise.
     *         Default value if not set: EFalse.
     */
    IMPORT_C TBool IsResident() const;


    /**
     * CWriteableJavaRegistryApplicationEntry::PackageEntryL method
     * gets a reference to the install package entry, which is the parent
     * of this application.
     * The function may leave with one of the system-wide error codes.
     *
     * @since S60 v3.2
     * @return A pointer to a CJavaRegistryEntry object. Caller takes
     *         over the ownership of the object being transferred.
     */
    IMPORT_C CWriteableJavaRegistryPackageEntry* PackageEntryL() const;

    /**
     * CWriteableJavaRegistryAplicationEntry::AttributeL method gets the
     * additional attribute.
     *
     * @since S60 v5.0
     * @param aName The name of the searched attribute.
     * @return MJavaAttribute poiter to instance, which contain attribute.
     * If attribute doesn't exist return NULL.
     */
    IMPORT_C virtual const MJavaAttribute* AttributeL(const TDesC& aName) const;

    /**
     * CWriteableJavaRegistryApplicationEntry::AttributesL method gets the
     * additional attributes array.
     *
     * @since S60 v5.0
     * @return RPointerArray& with all additional attributes.
     */
    IMPORT_C virtual const RPointerArray<MJavaAttribute>& AttributesL() const;


private: // Data

    CWriteableJavaRegistryPackageEntry* iWriteablePackage;

};

} // namespace Registry
} // namespace Manager
} // namespace Java

#endif // WRITEABLEJAVAREGISTRYAPPLICATIONENTRY_H

// End of File