--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/javamanager/javaregistry/client/inc/writeablejavaregistryentry.h Tue Apr 27 16:30:29 2010 +0300
@@ -0,0 +1,241 @@
+/*
+* 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: writeablejavaregistryentry definition
+*
+*/
+
+
+#ifndef WRITEABLEJAVAREGISTRYENTRY_H
+#define WRITEABLEJAVAREGISTRYENTRY_H
+
+// INCLUDES
+#include <e32base.h>
+#include <f32file.h>
+#include "javaregistryentrytype.h"
+#include "javaattribute.h"
+#include "javastorage.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:
+
+ /**
+ * CWriteableJavaRegistryEntry::CWriteableJavaRegistryEntry
+ * constructor.
+ *
+ * @since S60 v3.2
+ * @param aEntry application entry attributes.
+ * @param aType application entry type.
+ */
+ CWriteableJavaRegistryEntry(
+ java::storage::JavaStorageApplicationEntry_t& aEntry,
+ TJavaRegistryEntryType aType);
+
+ // destructor
+ /**
+ * CWriteableJavaRegistryEntry::~CWriteableJavaRegistryEntry destructor
+ *
+ * @since S60 v3.2
+ */
+ IMPORT_C virtual ~CWriteableJavaRegistryEntry();
+
+ // general methods
+ /**
+ * 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::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;
+
+protected:
+
+ /**
+ * 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);
+
+ /**
+ * Read attribute value from entry. Value is left empty if no value exists.
+ *
+ * @param aEntry application entry.
+ * @param aName attribute name to read value.
+ * @param[out] aValue to be populated.
+ */
+ void EntryAttributeValue(
+ const java::storage::JavaStorageApplicationEntry_t& aEntry,
+ const std::wstring& aName,
+ std::wstring& aValue) const;
+
+ /**
+ * Read application suite entry from JavaStorage. Entry is read based
+ * on its uid.
+ *
+ * @param aUid uid used to identify application suite entry.
+ * @param aTableName table where entry is read.
+ * @param[out] aSuiteEntry to be populated.
+ */
+ void StorageEntry(
+ const java::util::Uid& aUid,
+ const std::string& aTableName,
+ java::storage::JavaStorageApplicationEntry_t& aSuiteEntry) const;
+
+
+protected: // Data
+ java::storage::JavaStorageApplicationEntry_t iEntry;
+
+private:
+ /**
+ * CJavaRegistryEntry::readAttributes method gets the
+ * array of additional attributes.
+ *
+ * @param aUid identifying attributes.
+ * @param[out] aAttributes entry attributes.
+ */
+ void ReadAttributesL(const std::wstring& aUid,
+ java::storage::JavaStorageApplicationList_t& aAttributes) const;
+
+ void PopulateCertChains() const;
+
+private: // Data
+ mutable HBufC16* iName;
+ mutable HBufC16* iDrmContentId;
+ TJavaRegistryEntryType iType;
+ mutable RPointerArray<MJavaAttribute> iAttributes;
+ mutable RPointerArray<HBufC8> iCertificates;
+
+};
+
+} // namespace Registry
+} // namespace Manager
+} // namespace Java
+
+
+#endif // WRITEABLEJAVAREGISTRYENTRY_H
+
+// End of File