diff -r 000000000000 -r c6ad3d501b91 java_stubs/javaregistry/clientserver/client/inc/writeablejavaregistryentry.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java_stubs/javaregistry/clientserver/client/inc/writeablejavaregistryentry.h Mon Jan 18 20:12:38 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: writeablejavaregistryentry definition +* +*/ + + +#ifndef WRITEABLEJAVAREGISTRYENTRY_H +#define WRITEABLEJAVAREGISTRYENTRY_H + +// INCLUDES +#include +#include +#include "javaregistryentrytype.h" +#include "javaattributes.h" + +using namespace Java; + +namespace Java +{ +namespace Manager +{ +namespace Registry +{ +// FORWARD DECLARATION +class CJavaProperty; + +// CLASS DECLARATION +/** + * This class provides the Internal API for entries in JavaRegistry. + * It supports common attributes only. + * + * @lib javaregistryclient.lib + * @since S60 v3.2 + */ +class CWriteableJavaRegistryEntry : + public CBase +{ +public: + + // destructor + /** + * CWriteableJavaRegistryEntry::~CWriteableJavaRegistryEntry destructor + * + * @since S60 v3.2 + */ + IMPORT_C virtual ~CWriteableJavaRegistryEntry(); + + // general methods + /** + * CWriteableJavaRegistryEntry::Properties method returns all the + * properties the entry has. + * + * @since S60 v3.2 + * @return The properties stored in RPointerArray. + * The ownership of objects is NOT subject to change. + */ + const RPointerArray& Properties() const; + + + /** + * CWriteableJavaRegistryEntry::Uid method gets the Uid of + * this registry entry. + * + * @since S60 v3.2 + * @return A TUid object. + */ + IMPORT_C TUid Uid() const; + + + /** + * Gets the name of the entity (midlet, suite, etc.) this entry + * represents. + * + * @since S60 v3.2 + * @return Name of the entity this entry represents. + * Default value if not set: KNullDesC. + */ + IMPORT_C const TDesC& Name() const; + + + /** + * CWriteableJavaRegistryEntry::Type method gets the type of this + * registry entry. Enumeration TJavaRegistryEntryType defines + * the currently possible options. Mandatory property. + * + * @since S60 v3.2 + * @return Type of this registry entry. + */ + IMPORT_C TJavaRegistryEntryType Type() const; + + + /** + * CWriteableJavaRegistryEntry::Drive method gets the letter + * of drive where the install package has been installed. + * + * @since S60 v3.2 + * @return Letter of drive where the install package has been + * installed. + * Default value if not set: EDriveC. + */ + IMPORT_C TDriveNumber Drive() const; + + + /** + * CWriteableJavaRegistryEntry::NumberOfCertificateChains method + * returns the number of certificate chains of this Java application. + * + * @since S60 v3.2 + * @return Number of certificate chains. + */ + IMPORT_C TInt NumberOfCertificateChains() const; + + + /** + * CWriteableJavaRegistryEntry::CertificateChain method returns the + * n-th certificate chain of this Java application. + * + * @since S60 v3.2 + * @param aIndex Index of the certificate chain to be retrieved. + * @return N-th certificate chain + * Default value if not set: KNullDesC. + */ + IMPORT_C const TDesC8& CertificateChain(TInt aIndex) const; + + + /** + * Returns the content id of the entity this entry represents. + * The content id can be used to check if a DRM protected entity + * has enough right to be launched or not. + * The method can also be used to check if the entity is DRM + * protected or not. + * + * @since S60 v3.2 + * @return Content id of the entity this entry represent or + * KNullDesC if the entity is not DRM protected. + */ + IMPORT_C const TDesC& DrmContentId() const; + + + /** + * CWriteableJavaRegistryEntry::SetNameL method sets the name of + * this registry entry. + * The function may leave with one of the system-wide error codes. + * + * @since S60 v3.2 + * @param aName The name to be setted. + */ + IMPORT_C void SetNameL(const TDesC& aName); + + /** + * CWriteableJavaRegistryEntry::SetTypeL method sets the type of this + * registry entry. Enumeration TJavaRegistryEntryType defines + * the currently possible options. + * The function may leave with one of the system-wide error codes. + * + * + * @since S60 v3.2 + * @param aType The type to be setted. + */ + IMPORT_C void SetTypeL(TJavaRegistryEntryType aType); + + /** + * CWriteableJavaRegistryEntry::SetDriveL method sets the letter + * of drive where the install package has been installed. + * The function may leave with one of the system-wide error codes. + * + * @since S60 v3.2 + * @param aDrive Letter of drive where the install package has been + * installed. + */ + IMPORT_C void SetDriveL(const TDriveNumber& aDrive); + + + /** + * CWriteableJavaRegistryEntry::AddCertificateChainL method adds + * a certificate chain to this Java application. + * The function may leave with one of the system-wide error codes. + * + * @since S60 v3.2 + * @param aChain The new certificate chain. + */ + IMPORT_C void AddCertificateChainL(const TDesC8& aChain); + + + /** + * CWriteableJavaRegistryEntry::SetDrmContentIdL sets DRM content + * id of this entry. If the entity represented by this entry is + * not DRM protected this content id should not be set + * + * @since S60 v3.2 + * @param aDrmContentId DRM content id to be set + */ + IMPORT_C void SetDrmContentIdL(const TDesC& aDrmContentId); + + + /** + * CWriteableJavaRegistryEntry::PropertyL method gets a property, + * specified by the Id parameter. + * + * @since S60 v3.2 + * @param aId The Id of the property to be returned. + * @return The pointer of the property specified by the Id parameter, + * or NULL if it is not set. + * The ownership of the object being transferred is NOT + * subject to change. + */ + IMPORT_C const CJavaProperty* Property(TInt32 aId) const; + + + /** + * CWriteableJavaRegistryEntry::SetPropertyL method sets a new, or + * updtates a stored property if already exists. + * 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); + + + /** + * CWriteableJavaRegistryEntry::SetPropertyL method sets a new, or + * updtates a stored property if already exists. + * The function may leave with one of the system-wide error codes. + * + * @since S60 v3.2 + * @param aId The Id of the Property. + * @param aValue Value for the Property. + */ + IMPORT_C void SetPropertyL(TInt32 aId, const TDesC& aValue); + + /** + * CWriteableJavaRegistryEntry::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; + + /** + * CWriteableJavaRegistryEntry::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; + + /** + * CWriteableJavaRegistryEntry::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: + + // constructors + + /** + * CWriteableJavaRegistryEntry::CWriteableJavaRegistryEntry constructor + * + * @since S60 v3.2 + * @param aUid The Uid of this entry. + */ + IMPORT_C CWriteableJavaRegistryEntry(const TUid& aUid); + + /** + * 2nd phase constructor. Used by the subclasses. + * The function may leave with one of the system-wide error codes. + * + * @since S60 v3.2 + * @param aType The type to be setted. + */ + IMPORT_C void ConstructL(TJavaRegistryEntryType aType); + + // general methods + + /** + * CWriteableJavaRegistryEntry::IntegerProperty method gets an + * integer propertyvalue, specified by the Id parameter. + * + * @since S60 v3.2 + * @param aId The Id of the property to be returned. + * @param aDefault The value to be returned if aValue does'nt + * contain valid data. + * @return The integer value of the property. + */ + IMPORT_C TInt32 IntegerProperty(TInt32 aId, TInt32 aDefault) const; + + /** + * CWriteableJavaRegistryEntry::BooleanProperty method gets a + * boolean propertyvalue, specified by the Id parameter. + * + * @since S60 v3.2 + * @param aId The Id of the property to be returned. + * @param aDefault The value to be returned if aValue does'nt + * contain valid data. + * @return The boolean value of the property. + */ + IMPORT_C TBool BooleanProperty(TInt32 aId, TBool aDefault) const; + + + /** + * CWriteableJavaRegistryEntry::SetBooleanPropertyL method sets a new, + * or updtates a stored boolean property if already exists. + * Used by some specialized boolean property setter methods. + * The function may leave with one of the system-wide error codes. + * + * @since S60 v3.2 + * @param aId The Id of the Property. + * @param aBoolValue Boolean value for the Property. + */ + IMPORT_C void SetBooleanPropertyL(TInt32 aId, TBool aBoolValue); + + /** + * CWriteableJavaRegistryEntry::SetDescriptorPropertyL method sets + * a new, or updtates a stored descriptor property if already exists. + * Used by some specialized descriptor property setter methods. + * The function may leave with one of the system-wide error codes. + * + * @since S60 v3.2 + * @param aId The Id of the Property. + * @param aDescValue Descriptor value for the Property. + */ + IMPORT_C void SetDescriptorPropertyL(TInt32 aId, + const TDesC& aDescValue); + + /** + * CWriteableJavaRegistryEntry::SetIntegerPropertyL method sets a new, + * or updtates a stored integer property if already exists. + * Used by some specialized integer/Uid property setter methods. + * The function may leave with one of the system-wide error codes. + * + * @since S60 v3.2 + * @param aId The Id of the Property. + * @param aIntValue Value for the Property. + */ + IMPORT_C void SetIntegerPropertyL(TInt32 aId, TInt32 aIntValue); + + /** + * CWriteableJavaRegistryEntry::DeleteProperty method deletes + * a property, specified by the index parameter. + * + * @since S60 v3.2 + * @param aIndex The index of the property to be deleted. + * @return + */ + IMPORT_C void DeleteProperty(TInt aIndex); + + /** + * CWriteableJavaRegistryEntry::GetPropertyIndex method gets the + * index of the property specified by the Id. + * + * @since S60 v3.2 + * @param aId The id of the searched property. + * @return The index of the searched property. If not found, -1 is + * returned. + */ + IMPORT_C TInt GetPropertyIndex(TInt32 aId) const; + + + +protected: // Data + + + /** + * CWriteableJavaRegistryEntry::iProperties member stores all the + * properties, whether processed here or in subclasses. + */ + RPointerArray iProperties; + + /** + * CWriteableJavaRegistryEntry::iCertificates member stores the + * certificate chains. The certificate chains are also stored in the + * iProperties, and are synchronised at every modification. + */ + RPointerArray iCertificates; + + + +private: // Data + /** + * CWriteableJavaRegistryEntry::iUid member, representing the Uid + * of this entry. + */ + TUid iUid; + + RPointerArray iAttributes; + +}; + +}// namespace Registry +}// namespace Manager +}// namespace Java + + +#endif // WRITEABLEJAVAREGISTRYENTRY_H + +// End of File