diff -r 000000000000 -r ba25891c3a9e ncdengine/inc/ncdqueryitem.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ncdengine/inc/ncdqueryitem.h Thu Dec 17 08:51:10 2009 +0200 @@ -0,0 +1,178 @@ +/* +* Copyright (c) 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: +* +*/ + + +#ifndef M_NCD_QUERY_ITEM_H +#define M_NCD_QUERY_ITEM_H + +#include + +#include "catalogsbase.h" +#include "ncdinterfaceids.h" + +/** + * Describes a query item. + * + * A common interface for all query items. A query item defines + * one element of a whole query e.g. credit card number in a purchase + * information query. + * + * All query items that are not optional must be answered/filled before + * completing a query. + * + * @see MNcdQuery + */ +class MNcdQueryItem : public virtual MCatalogsBase + { +public: + + /** + * Unique identifier for the interface, required for all MCatalogsBase interfaces. + * + * + */ + enum { KInterfaceUid = ENcdQueryItemUid }; + + /** + * Query item semantics + */ + enum TSemantics + { + /** No specific semantics specified */ + ESemanticsNone, + + /** Unknown/unsupported semantics specified */ + ESemanticsUnknown, + + /** MSISDN (phone number) */ + ESemanticsMsisdn, + + /** Email address */ + ESemanticsEmailAddress, + + /** Credit card number */ + ESemanticsCreditCardNumber, + + /** Credit card expiration year */ + ESemanticsCreditCardExpirationYear, + + /** Credit card expiration month */ + ESemanticsCreditCardExpirationMonth, + + /** Credit card owner */ + ESemanticsCreditCardOwner, + + /** Credit card verification code */ + ESemanticsCreditCardVerificationCode, + + /** Credit card type */ + ESemanticsCreditCardType, + + /** Street address */ + ESemanticsAddressStreet, + + /** ZIP code */ + ESemanticsAddressZipCode, + + /** City */ + ESemanticsAddressCity, + + /** Country */ + ESemanticsAddressCountry, + + /** User name */ + ESemanticsUserName, + + /** Password */ + ESemanticsPassword, + + /** PIN code */ + ESemanticsPinCode, + + /** IMEI */ + ESemanticsImei + }; + + /** + * Type of the query. + * + * + * @return Interface id of the operation. + */ + virtual TNcdInterfaceId Type() const = 0; + + /** + * Semantics of the query item. + * + * This can be used to act differently for semantically + * different query items that have the same basic type + * (as indicated by Type()). + * + * + * @return Semantics for the item. + */ + virtual TSemantics Semantics() const = 0; + + /** + * Getter for query item label. Labels are used to identify the + * what the query item is e.g. "username" or "credit card owner". + * Typically displayed next to the actual item. + * + * + * @return Label text. KNullDesC() if no label available. + */ + virtual const TDesC& Label() const = 0; + + /** + * Getter for query item message. Optionally displayed in a question + * dialog body close to the query item. Can offer information/advice on what + * the user should input e.g. "Please enter the cardholder's name". + * + * + * @return Message text. KNullDesC() if no message available. + */ + virtual const TDesC& Message() const = 0; + + /** + * Getter for query item description. Additional longer description text + * about the query element, intended for context help + * + * + * @return Message text. KNullDesC() if no description available. + */ + virtual const TDesC& Description() const = 0; + + /** + * Checks whether this query item is optional i.e. does not need + * to be answered/filled before the query is accepted. + * + * @return ETrue if the item is optional, EFalse if it is mandatory. + */ + virtual TBool IsOptional() const = 0; + +protected: + + /** + * Destructor. + * + * @see MCatalogsBase::~MCatalogsBase + */ + virtual ~MNcdQueryItem() {} + + }; + +#endif // M_NCD_QUERY_ITEM_H