diff -r 48060abbbeaf -r b3cee849fa46 creator/inc/creator_scriptelement.h --- a/creator/inc/creator_scriptelement.h Thu Aug 19 09:55:38 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,349 +0,0 @@ -/* -* Copyright (c) 2008 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: -* -*/ - - - -#ifndef CREATORSCRIPTELEMENT_H_ -#define CREATORSCRIPTELEMENT_H_ - -#include "creator_randomdatafield.h" -#include "creator_modulebase.h" -#include "creator_model.h" -#include - -class CCreatorScriptElement; -class CCreatorEngine; - -_LIT(KEmpty, ""); -_LIT(KContextSep, "::"); - -// Common attributes: -_LIT(KAmount, "amount"); -_LIT(KRandomLength, "randomlength"); -_LIT(KId, "id"); -_LIT(KMaxAmount, "maxamount"); - -// Common element names: -_LIT(KScript, "creatorscript"); -_LIT(KFields, "fields"); -_LIT(KContactSetRef, "contact-set-reference"); -_LIT(KExistingContacts, "numberofexistingcontacts"); - -// Common attribute values: -_LIT(KMax, "max"); -_LIT(KDefault, "default"); -_LIT(KIncrease, "incvalueforeachcopy"); - -class CCreatorScriptElementCache : public CBase -{ -public: - static CCreatorScriptElementCache* CCreatorScriptElementCache::NewL(); - virtual ~CCreatorScriptElementCache(); - - void RemoveElements(); - void AddElementL(CCreatorScriptElement* aElement); -private: - CCreatorScriptElementCache(); - void ConstructL(); - RPointerArray iElementCache; - -}; - - -class CCreatorScriptAttribute : public CBase -{ -public: - static CCreatorScriptAttribute* NewL(const TDesC& aName, const TDesC& aValue); - static CCreatorScriptAttribute* NewLC(const TDesC& aName, const TDesC& aValue); - virtual ~CCreatorScriptAttribute(); - - TPtrC Name() const; - void SetNameL(const TDesC& aName); - TPtrC Value() const; - void SetValueL(const TDesC& aValue); - -protected: - - CCreatorScriptAttribute(); - virtual void ConstructL(const TDesC& aName, const TDesC& aValue); - -private: - HBufC* iName; - HBufC* iValue; -}; - -/** - * Base class for all elements - */ -class CCreatorScriptElement : public CBase -{ -public: - - static CCreatorScriptElement* CCreatorScriptElement::NewL(CCreatorEngine* aEngine, const TDesC& aName, const TDesC& aContext = KNullDesC); - - /** - * Destructor - */ - virtual ~CCreatorScriptElement(); - - /** - * Returns the array of sub-elements. - * @return Reference to the sub-element array. - */ - virtual RPointerArray const& SubElements() const; - virtual RPointerArray& SubElements(); - - /** - * Returns a sub-element. - * @param aIndex Sub-element array index. - * @return Pointer to a sub-element - */ - virtual CCreatorScriptElement* SubElement(TInt aIndex); - - /** - * Finds a sub-element by a name. - * @param aName Name of the sub-element - * @return Pointer to the first matching sub-element. NULL if not found. - */ - virtual CCreatorScriptElement* FindSubElement(const TDesC& aName); - - /** - * Removes all sub-elements. - */ - virtual void RemoveSubElements(); - - /** - * Removes a sub-element - * @param aIndex Index of the element to be removed - */ - virtual void RemoveSubElementL(TInt aIndex); - - /** - * Adds an element to the sub-element list. - * Leaves with error KErrNotSupported, if sub-element is illegal. - * Leaves with error KErrArgument, if the index in out of bounds. - * @param aElem Pointer to the element to be added. Takes ownership of the pointer. - * @param aIndex Sub-element array index where to add the element. -1 means that - * the element is added to the end of the array. - */ - virtual void AddSubElementL(CCreatorScriptElement* aElem, TInt aIndex = -1); - - /** - * Returns the array of attributes. - * @return Reference to the attribute array. - */ - virtual RPointerArray const& Attributes() const; - - /** - * Returns an attribute. - * @param aIndex Attribute array index. - * @return Pointer to a attribute - */ - virtual CCreatorScriptAttribute* Attribute(TInt aIndex); - - /** - * Removes all attributes. - */ - virtual void RemoveAttributes(); - - /** - * Removes an attribute - * @param aIndex Index of the attribute to be removed - */ - virtual void RemoveAttributeL(TInt aIndex); - - /** - * Adds an attribute to the attribute list. - * Leaves with error KErrNotSupported, if attribute is illegal. - * @param aAttribute Pointer to the element to be added. Takes ownership of the pointer. - * @param aIndex Attribute array index where to add the attribute. -1 means that - * the attribute is added to the end of the array. - */ - virtual void AddAttributeL(CCreatorScriptAttribute* aAttribute, TInt aIndex = -1); - - /** - * Finds attribute with the given name. First match is returned. - */ - virtual const CCreatorScriptAttribute* FindAttributeByName(const TDesC& aName) const; - virtual CCreatorScriptAttribute* FindAttributeByName(const TDesC& aName); - - /** - * Returns element name - * @return Element name - */ - virtual TPtrC Name() const; - - /** - * Sets the element name. - * @param aName Element name - */ - virtual void SetNameL(const TDesC& aName); - - /** - * Returns element content - * @return Element content - */ - virtual TPtrC Content() const; - - /** - * Set the content of the element. - * @param aContenct Element content - */ - virtual void SetContentL(const TDesC& aContent); - virtual void AppendContentL(const TDesC& aContent); - - /** - * Returns element context - * @return Element context - */ - virtual TPtrC Context() const; - - /** - * Set the context of the element. - * @param aContenct Element context - */ - virtual void SetContextL(const TDesC& aContext); - - /** - * Tells whether the element should be cached for future use. - * @return ETrue if the element should be cached for future use, EFalse otherwise. - */ - virtual TBool IsCacheNeeded(); - virtual void AddToCacheL(CCreatorScriptElementCache& aCache); - virtual void AddToCacheL(); - virtual TBool IsCommandElement() const; - virtual void ExecuteCommandL(); - //virtual void SaveCommandResultsL(); - //virtual void DiscardCommandResultsL(); - virtual TBool IsRoot() const; - virtual RPointerArray& CommandParameters(); - virtual const RPointerArray& CommandParameters() const; - -protected: - - /** - * Constructors. - */ - CCreatorScriptElement(CCreatorEngine* aEngine = 0); - - /** - * @param aName Name of the element. - */ - virtual void ConstructL(const TDesC& aName, const TDesC& aContext = KNullDesC); - - /** - * Tells whethet the sub-element is allowed or not. - * @param aElem Sub-element to be tested. - * @return Boolean value telling whether the sub-element is allowed - * to be added or not. - */ - virtual TBool IsSubElementSupported(const CCreatorScriptElement& aElem) const; - - virtual MCreatorRandomDataField::TRandomLengthType ResolveRandomDataTypeL(const CCreatorScriptAttribute& aAttr, TInt& aRandomLen ) const; - - virtual TBool ConvertStrToBooleanL(const TDesC& aStr) const; - virtual TInt ConvertStrToIntL(const TDesC& aStr) const; - virtual TUint ConvertStrToUintL(const TDesC& aStr) const; - virtual void ConvertStrToReal64L(const TDesC& aStr, TReal64& aVal) const; - virtual void ConvertStrToReal32L(const TDesC& aStr, TReal32& aVal) const; - - virtual void AppendContactSetReferenceL(const CCreatorScriptElement& aContactSetRefElem, RArray& aLinkArray ) const; - - virtual void SetContentToTextParamL(HBufC*& aPtr, const TDesC& aContent ); - - virtual TTime ConvertToDateTimeL(const TDesC& aDtStr) const; - - virtual TInt CompareIgnoreCase(const TDesC& aStr1, const TDesC& aStr2 ) const; - - /** - * Increases phonenumber by aDelta. - * - * Special cases, that are handled: - * +9 -> +9, +10, +11... - * +3584098#99 -> +3584098#99, +3584098#100, +3584098#101... - * # -> #0, #1, #2... - * 123# -> 123#0, 123#1, 123#2... - * 099 -> 099, 100, 101... - * - * @param aOriginal original phonenumber - * @param aDelta number to be added to original number. Must be >= 0. - * @param aIncreased on return contains the increased number. - * The buffer must be allocated by the caller. - */ - void IncreasePhoneNumL( const TDesC& aOriginal, TInt aDelta, HBufC* aIncreased ) const; - -protected: - - // Sub-element array - RPointerArray iSubElements; - // Attribute array - RPointerArray iAttributes; - // Element name (e.g. "contact") - HBufC* iName; - // Element content - HBufC* iContent; - // Context - HBufC* iContext; - - TBool iIsCommandElement; - TBool iIsRoot; - CCreatorEngine* iEngine; - RPointerArray iParameters; -}; - -/** - * Script element - */ -class CCreatorScriptRoot : public CCreatorScriptElement -{ -public: - static CCreatorScriptRoot* NewL(CCreatorEngine* aEngine, const TDesC& aName, const TDesC& aContext = KNullDesC); -protected: - CCreatorScriptRoot(CCreatorEngine* aEngine); -}; - -/** - * Calendar elements - */ - -/** - * Base class for calendar elements - */ -class CCreatorCalendarElementBase : public CCreatorScriptElement -{ -public: - static CCreatorCalendarElementBase* NewL(CCreatorEngine* aEngine, const TDesC& aName, const TDesC& aContext = KNullDesC); -protected: - CCreatorCalendarElementBase(CCreatorEngine* aEngine); -}; - -/** - * Message elements - */ - -/** - * Base class for message elements - */ -class CCreatorMessageElementBase : public CCreatorScriptElement -{ -public: - static CCreatorMessageElementBase* NewL(CCreatorEngine* aEngine, const TDesC& aName, const TDesC& aContext = KNullDesC); -protected: - CCreatorMessageElementBase(CCreatorEngine* aEngine); -}; - -#endif /*CREATORSCRIPTELEMENT_H_*/