java_stubs/javaregistry/clientserver/client/inc/writeablejavaregistrypackageentry.h
branchRCL_3
changeset 8 014f8c42e1d4
parent 0 3fd91c96c86c
child 72 1f0034e370aa
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/java_stubs/javaregistry/clientserver/client/inc/writeablejavaregistrypackageentry.h	Mon Feb 22 17:55:27 2010 +0200
@@ -0,0 +1,421 @@
+/*
+* Copyright (c) 2005-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:  writeablejavaregistrypackageentry definition
+*
+*/
+
+
+#ifndef WRITEABLEJAVAREGISTRYPACKAGEENTRY_H
+#define WRITEABLEJAVAREGISTRYPACKAGEENTRY_H
+
+// INCLUDES
+#include "writeablejavaregistryentry.h"
+#include "javaattributes.h"
+
+using namespace Java;
+
+// FORWARD DECLARATION
+class TAppVersion;
+
+namespace Java
+{
+namespace Manager
+{
+namespace Registry
+{
+
+// CLASS DECLARATION
+/**
+ * This subclass of CWriteableJavaRegistryEntry supports attributes
+ * for packages, that can contain embedded entries.
+ *
+ * @lib javaregistryclient.lib
+ * @since S60 v3.2
+ */
+class CWriteableJavaRegistryPackageEntry :
+        public CWriteableJavaRegistryEntry
+{
+public:
+
+    // constructors
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::NewL method creates a
+     * CWriteableJavaRegistryPackageEntry object. This constructor
+     * sets the type-property to EGeneralPackage.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUid The Uid of this entry.
+     * @return A pointer to a CWriteableJavaRegistryPackageEntry
+     *         object. Caller takes over the ownership of the object
+     *         being transferred.
+     */
+    IMPORT_C static CWriteableJavaRegistryPackageEntry*
+    NewL(const TUid& aUid);
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::NewLC method creates a
+     * CWriteableJavaRegistryPackageEntry object. This constructor
+     * sets the type-property to EGeneralPackage.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUid The Uid of this entry.
+     * @return A pointer to a CWriteableJavaRegistryPackageEntry
+     *         object. Caller takes over the ownership of the object being
+     *         transferred.
+     */
+    IMPORT_C static CWriteableJavaRegistryPackageEntry*
+    NewLC(const TUid& aUid);
+
+    // destructor
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::
+     *                              ~CWriteableJavaRegistryPackageEntry
+     * Destructor
+     *
+     * @since S60 v3.2
+     */
+    IMPORT_C ~CWriteableJavaRegistryPackageEntry();
+
+    // general methods
+    /**
+     * CWriteableJavaRegistryPackageEntry::VersionL method gets the
+     * version of this install package suite.
+     *
+     * @since S60 v3.2
+     * @return A TAppVersion object that represents the version
+     *         of this install package suite.
+     *         Default value if not set: TAppVersion( 0, 0, 0 ).
+     */
+    IMPORT_C TAppVersion Version() const;
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::Vendor method gets the
+     * vendor name of this install package suite.
+     *
+     * @since S60 v3.2
+     * @return Vendor name of the installation package.
+     *         Default value if not set: KNullDesC.
+     */
+    IMPORT_C const TDesC& Vendor() const;
+
+
+    /**
+     * Tells if this package is uninstallable.
+     *
+     * @since S60 v3.2
+     * @return ETrue if the package is uninstallable, EFalse otherwise.
+     *         Default value if not set: ETrue.
+     */
+    IMPORT_C TBool IsUninstallable() const;
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::GetEmbeddedEntries method
+     * returns an array of Uids associated with this install package.
+     * E.g. if this entry represents a MIDlet suite this method returns
+     * an array of MIDlet Uids.
+     *
+     * @since S60 v3.2
+     * @param aUids [out] Returns Uids of the embedded entries in this
+     *                    install package.
+     */
+    IMPORT_C void GetEmbeddedEntries(RArray<TUid>& aUids) const;
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::DownloadPlugin method gets
+     * the downloadplugin of this package.
+     *
+     * @since S60 v3.2
+     * @return Descriptor identifying the downloadplugin of this package.
+     *         Default value if not set: KNullDesC8.
+     */
+    IMPORT_C const TDesC8& DownloadPlugin() const;
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::InstallPlugin method gets
+     * the installplugin of this package.
+     *
+     * @since S60 v3.2
+     * @return Descriptor identifying the installplugin of this package.
+     *         Default value if not set: KNullDesC8.
+     */
+    IMPORT_C const TDesC8& InstallPlugin() const;
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::Size method gets the size of
+     * this package.
+     *
+     * @since S60 v3.2
+     * @return The size of this package.
+     *         Default value if not set: 0.
+     */
+    IMPORT_C TInt Size() const;
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::SetVersionL method sets the
+     * version of this install package suite.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aVersion the version of this install package suite.
+     */
+    IMPORT_C void SetVersionL(const TAppVersion& aVersion);
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::SetVendorL method sets the
+     * vendor name of this install package suite.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aVendor Vendor name of the installation package.
+     */
+    IMPORT_C void SetVendorL(const TDesC& aVendor);
+
+
+    /**
+     * Tells if this package is uninstallable.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUninstallable ETrue if the package is uninstallable,
+     *                       EFalse otherwise.
+     */
+    IMPORT_C void SetUninstallableL(TBool aUninstallable);
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::SetDownloadPluginL method sets
+     * the downloadplugin of this package.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aDownloadPlugin Descriptor identifying the downloadplugin of
+     *          this package.
+     */
+    IMPORT_C void SetDownloadPluginL(const TDesC8& aDownloadPlugin);
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::SetInstallPluginL method sets
+     * the installplugin of this package.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aInstallPlugin Descriptor identifying the installplugin of
+     *           this package.
+     */
+    IMPORT_C void SetInstallPluginL(const TDesC8& aInstallPlugin);
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::SetSizeL method sets the size of
+     * this package.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aSize The size of this package.
+     */
+    IMPORT_C void SetSizeL(TInt aSize);
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::AddEmbeddedEntryL method adds
+     * the given Uid to the embedded entries.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUid Adds the given Uid to the embedded entries.
+     */
+    IMPORT_C void AddEmbeddedEntryL(const TUid& aUid);
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::NumberOfEmbeddedEntries method
+     * Gets the number of embedded entries in this install package.
+     *
+     * @since S60 v3.2
+     * @return The number of embedded entries.
+     */
+    IMPORT_C TInt NumberOfEmbeddedEntries() const;
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::RemoveEmbeddedEntryL method
+     * removes the embedded entry specified by the given Uid.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aUid The Uid of the embedded entry to be removed.
+     */
+    IMPORT_C void RemoveEmbeddedEntryL(const TUid& aUid);
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::EmbeddedEntryByUidL method
+     * Returns the corresponding embedded entry for the given Uid.
+     * The returned entry can be casted to the appropriate subclass
+     * according to the type property. If type is in the package range
+     * ( EGeneralPackage <= entryType < EGeneralApplication ), it can
+     * be casted to CWriteableJavaRegistryPackageEntry, and if type is
+     * in the application range ( EGeneralApplication <= entryType ),
+     * it can be casted to CWriteableJavaRegistryApplicationEntry.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aEntryUid The Uid of the embedded entry to be retrieved.
+     * @return The returned embedded entry or null if entry is not found.
+     *         Caller takes over the ownership of the object being
+     *         transferred.
+     */
+    IMPORT_C CWriteableJavaRegistryEntry* EmbeddedEntryByUidL(
+        const TUid& aEntryUid) const;
+
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::EmbeddedEntryByNumberL method
+     * Returns the corresponding embedded entry for the given application
+     * number.
+     * The returned entry can be casted to the appropriate subclass
+     * according to the type property. If type is in the package range
+     * ( EGeneralPackage <= entryType < EGeneralApplication ), it can
+     * be casted to CWriteableJavaRegistryPackageEntry, and if type is
+     * in the application range ( EGeneralApplication <= entryType ),
+     * it can be casted to CWriteableJavaRegistryApplicationEntry.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aEntryNum Number of the embedded entry to be retrieved
+     *                  ( NOTE: Starting from 0 )
+     * @return The returned embedded entry or null if entry is not found.
+     *         Caller takes over the ownership of the object being
+     *         transferred.
+     */
+    IMPORT_C CWriteableJavaRegistryEntry* EmbeddedEntryByNumberL(
+        TInt aEntryNum) const;
+    /**
+     * CWriteableJavaRegistryPackageEntry::SetPropertyL method sets a new,
+     * or updtates a stored property if already exists.
+     * This is a temporary overload of
+     * CWriteableJavaRegistryEntry::SetPropertyL
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v3.2
+     * @param aProperty Property to be setted. Pointer ownership taken.
+     */
+    IMPORT_C virtual void SetPropertyL(CJavaProperty* aProperty);
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::SetAttribute method sets a new,
+     * or updtates a stored attribute if already exists.
+     * The function may leave with one of the system-wide error codes.
+     *
+     * @since S60 v5.0
+     * @param aProperty Property to be setted. Pointer ownership taken.
+     */
+    IMPORT_C void SetAttributeL(const TDesC& aName, const TDesC& aValue, TBool aTrusted);
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::Attribute method gets the
+     * additional attribute.
+     *
+     * @since S60 v5.0
+     * @param aName The name 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;
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::Attributes method gets the
+     * additional attributes array.
+     *
+     * @since S60 v5.0
+     * @return RPointerArray& with all additional attributes.
+     */
+    IMPORT_C virtual const RPointerArray<MJavaAttribute>& AttributesL() const;
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::SerializeAttributes method gets the
+     * streamed attributes and store stream to CJavaProperty as
+     * special ESerializedAttribute
+     * If don't exists any attribute method do nothing
+     *
+     * @since S60 v5.0
+     *
+     */
+    IMPORT_C virtual void SerializeAttributesL();
+
+
+
+protected:
+
+    // constructor
+    /**
+     * CWriteableJavaRegistryPackageEntry::
+     *                        CWriteableJavaRegistryPackageEntry constructor
+     *
+     * @since S60 v3.2
+     * @param aUid The Uid of this entry.
+     */
+    IMPORT_C CWriteableJavaRegistryPackageEntry(const TUid& aUid);
+
+    /**
+    * CWriteableJavaRegistryEntry::iAttributes member stores the
+    * additional attributes. The addtional attributes is also stored in the
+    * iProperties as BLOB, and are synchronised at every modification.
+    */
+    CJavaAttributes* iAttributes;
+
+private: // Data
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::iDownloadPlugin member
+     * stores the 8bit descriptor represented downloadplugin
+     * property. This property is stored also in the
+     * iProperties, and are synchronised at every modification.
+     *
+     * @since S60 v3.2
+     */
+    HBufC8* iDownloadPlugin;
+
+    /**
+     * CWriteableJavaRegistryPackageEntry::iInstallPlugin member
+     * stores the 8bit descriptor represented installplugin
+     * property. This property is stored also in the
+     * iProperties, and are synchronised at every modification.
+     *
+     * @since S60 v3.2
+     */
+    HBufC8* iInstallPlugin;
+
+    RPointerArray<MJavaAttribute> iAttrib;
+
+
+};
+
+}// namespace Registry
+}// namespace Manager
+}// namespace Java
+
+#endif // WRITEABLEJAVAREGISTRYPACKAGEENTRY_H
+
+// End of File