diff -r f5050f1da672 -r 04becd199f91 javaextensions/pim/common/inc.s60/mpimrepeatruledata.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javaextensions/pim/common/inc.s60/mpimrepeatruledata.h Tue Apr 27 16:30:29 2010 +0300 @@ -0,0 +1,219 @@ +/* +* 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: Access interface to RepeatRule data representation. + * +*/ + + +#ifndef MPIMREPEATRULEDATA_H +#define MPIMREPEATRULEDATA_H + +// INCLUDES +#include +#include "pimcommon.h" +#include "pimrepeatrule.h" + +// FORWARD DECLARATIONS +class MPIMItemData; + +/** + * Interface for accessing the repeat rule data associated with an item. + * See \ref MPIMEventItemData class. + */ +class MPIMRepeatRuleData +{ +public: + // Destructor + + /** + * Destructor. + */ + virtual ~MPIMRepeatRuleData() + { + } + +public: + // New functions + + /** + * Add an exception date. If the date has a time portion, it is ignored + * and also cleared when the item is committed to the Agenda Model. + * Note that even it is possible to set an exception date that + * is outside the agenda model's valid date range + * (from 1st January 1980 to 31st December 2100), when committing an + * item with such a repeat rule into the agenda model those non-valid + * exception dates are discarded. + * + * @param aDate Exception date. + * + * @par Leaving: + * The method leaves on error. Error codes should be interpreted as + * follows: + * @li Any - The date could not be added. + */ + virtual void AddExceptDateL(TPIMDate aDate) = 0; + + /** + * Remove an exception date. + * + * @param aDate Exception date. + * + * @par Leaving: + * The method leaves on error. Error codes should be interpreted as + * follows: + * @li Any - The date could not be removed. + */ + virtual void RemoveExceptDate(TPIMDate aDate) = 0; + + /** + * Provides all exception dates set for this repeat rule. + * The ownership of the array stays with the repeat rule. + * + * @return Array of exception dates. + * + * @par Leaving: + * The method leaves on error. Error codes should be interpreted as + * follows: + * @li Any - The array could not be created. + */ + virtual const CArrayFix& GetExceptDatesL() const = 0; + + /** + * Gets the value in an integer field. + * + * @param aField The field. + * + * @return Integer value in \a aField. + * + * @par Leaving: + * The method leaves on error. Error codes should be interpreted as + * follows: + * @li \c KErrArgument - \a aField is not valid. + * @li \c KErrNotFound - \a aField has no value. + */ + virtual TInt GetIntL(TPIMField aField) const = 0; + + /** + * Sets the value of an integer field. + * + * @param aField The field. + * @param aValue The value to be set for \a aField. + * + * @par Leaving: + * The method leaves on error. Error codes should be interpreted as + * follows: + * @li \c KErrArgument - \a aField is not valid. + * @li \c KErrTooBig - \a aValue is not valid for the field. + * @li Other - The value could not be set. + */ + virtual void SetIntL(TPIMField aField, TInt aValue) = 0; + + /** + * Gets the value of a date field. + * + * @param aField The field. + * + * @return Date value in \a aField. + * + * @par Leaving: + * The method leaves on error. Error codes should be interpreted as + * follows: + * @li \c KErrArgument - \a aField is not valid. + * @li \c KErrNotFound - \a aField has no value. + */ + virtual TPIMDate GetDateL(TPIMField aField) const = 0; + + /** + * Sets the value of a date field. + * Note that the given dates have to be in the agenda model's valid + * date range (from 1st January 1980 to 31st December 2100). + * + * @param aField The field. + * @param aDate The value to be set for \a aField. + * + * @par Leaving: + * The method leaves on error. Error codes should be interpreted as + * follows: + * @li \c KErrArgument - \a aField is not valid. + * @li \c KErrTooBig - \a aValue is not valid for the field. + * @li Other - The value could not be set. + */ + virtual void SetDateL(TPIMField aField, TPIMDate aDate) = 0; + + /** + * Provides an array of fields currently in use. + * The ownership of the array is transferred to the caller. + * + * @return An array of fields. + * The \b ownership of the array is transferred to the caller. + * + * @par Leaving: + * The method leaves on error. Error codes should be interpreted as + * follows: + * @li Any - The array could not be created. + */ + virtual CArrayFix* GetFieldsL() const = 0; + + /** + * Clears a field. The value in that field is discarded. + * + * @param aField The field. + * + * @par Leaving: + * The method leaves on error. Error codes should be interpreted as + * follows: + * @li \c KErrArgument - \a aField is not valid. + */ + virtual void ClearFieldL(TPIMField aField) = 0; + + /** + * Clears all fields. The values in all fields are discarded. + */ + virtual void clear() = 0; + + /** + * Copies all the fields from the Agenda model's Repeat definition. + */ + virtual void BackupRepeatL() = 0; + + /** + * Checks if the Repeat rule has been changed or not. + */ + virtual TBool IsModified() const = 0; + +protected: + // Non-public operations + + // Allow derivation with protected default constructor. + MPIMRepeatRuleData() + { + } + +private: + // Prohibited operations + // Prohibit copy constructor. + MPIMRepeatRuleData(const MPIMRepeatRuleData&) + { + } + + // Prohibit assigment operator. + MPIMRepeatRuleData& operator=(const MPIMRepeatRuleData&) + { + return *this; + } + +}; + +#endif // MPIMREPEATRULEDATA_H +// End of File