2 * Funambol is a mobile platform developed by Funambol, Inc.
3 * Copyright (C) 2003 - 2007 Funambol, Inc.
5 * This program is free software; you can redistribute it and/or modify it under
6 * the terms of the GNU Affero General Public License version 3 as published by
7 * the Free Software Foundation with the addition of the following permission
8 * added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
9 * WORK IN WHICH THE COPYRIGHT IS OWNED BY FUNAMBOL, FUNAMBOL DISCLAIMS THE
10 * WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
12 * This program is distributed in the hope that it will be useful, but WITHOUT
13 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
17 * You should have received a copy of the GNU Affero General Public License
18 * along with this program; if not, see http://www.gnu.org/licenses or write to
19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
22 * You can contact Funambol, Inc. headquarters at 643 Bair Island Road, Suite
23 * 305, Redwood City, CA 94063, USA, or at email address info@funambol.com.
25 * The interactive user interfaces in modified source and object code versions
26 * of this program must display Appropriate Legal Notices, as required under
27 * Section 5 of the GNU Affero General Public License version 3.
29 * In accordance with Section 7(b) of the GNU Affero General Public License
30 * version 3, these Appropriate Legal Notices must retain the display of the
31 * "Powered by Funambol" logo. If the display of the logo is not reasonably
32 * feasible for technical reasons, the Appropriate Legal Notices must display
33 * the words "Powered by Funambol".
37 #ifndef INCL_PIM_TYPED_PROPERTY
38 #define INCL_PIM_TYPED_PROPERTY
41 #include "base/util/ArrayElement.h"
42 #include "vocl/vCard/vCardProperty.h"
43 #include "base/globalsdef.h"
48 * An association between a property and a string representing the property type.
52 class TypedProperty : public ArrayElement {
53 // ------------------------------------------------------------ Private data
59 // -------------------------------------------- Constructors and Destructors
63 * Creates an empty TypedProperty
66 virtual ~TypedProperty();
68 // ---------------------------------------------------------- Public methods
71 * Returns the property
73 * @return this property content
75 vCardProperty* getProperty();
78 * Sets the property content. The given Property is cloned, so that the
79 * caller can independently release it as needed.
81 void setProperty(vCardProperty& p);
84 * Returns the property type
86 * @param buf if not NULL, the value is copied in this buffer
87 * @param size buffer size
89 * @return the property type for this property
91 WCHAR* getType(WCHAR* buf = NULL, int size = -1);
94 * Sets the property type
96 * @param type the property type
98 void setType(WCHAR* type);
101 * Creates a new instance of TypedProperty from the content of this
102 * object. The new instance is created the the C++ new operator and
103 * must be removed with the C++ delete operator.
105 ArrayElement* clone() { return NULL;}; //FIXME