diff -r 9d598f7f02da -r 014f8c42e1d4 java_stubs/javaregistry/clientserver/client/inc/writeablejavaregistrypackageentry.h --- /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& 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& 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 iAttrib; + + +}; + +}// namespace Registry +}// namespace Manager +}// namespace Java + +#endif // WRITEABLEJAVAREGISTRYPACKAGEENTRY_H + +// End of File