uidesigner/com.nokia.sdt.uimodel/src/com/nokia/sdt/component/IComponentSet.java
changeset 0 fb279309251b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uidesigner/com.nokia.sdt.uimodel/src/com/nokia/sdt/component/IComponentSet.java	Fri Apr 03 23:33:03 2009 +0100
@@ -0,0 +1,90 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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: 
+*
+*/
+
+package com.nokia.sdt.component;
+
+import com.nokia.sdt.datamodel.IDesignerDataModel;
+
+import java.util.Iterator;
+import java.util.Map;
+
+/**
+ * A component set represents a collection of components
+ * from a given component provider. For example, the set
+ * of components matching a given SDK version.
+ */
+public interface IComponentSet extends Iterable<IComponent> {
+	
+	/**
+	 * Returns the provider that created this component set
+	 */
+	IComponentProvider	getProvider();
+	
+	/**
+	 * Returns the component with the given id, if it's a
+	 * member of this set.
+	 */
+	IComponent	lookupComponent(String id);
+	
+	/**
+	 * Returns an iterator that returns all components
+	 * in the set.
+	 */
+	Iterator<IComponent> iterator();
+	
+	/**
+	 * Returns the type descriptor with the given id,
+	 * if it's a member of this set.
+	 * @param typeId the id of the type or null
+	 * @return the type descriptor or null
+	 */
+	ITypeDescriptor lookupTypeDescriptor(String typeId);
+	
+	/**
+	 * @return the number of contained components
+	 */
+	int numComponents();
+	
+	/**
+	 * @return the number of contained type descriptors
+	 */
+	int numTypeDescriptors();
+	
+	/**
+	 * Allow the component set to do any initialization tasks on the data model.
+	 * 
+	 * @param dataModel
+	 */
+	void initializeDataModel(IDesignerDataModel dataModel);
+	
+	/**
+	 * Return a set of properties that may be used to
+	 * recreate the query parameters of this component
+	 * set. The list of actual components do not need to
+	 * be saved. All properties must begin with the prefix
+	 * returned by IComponentProvider.getPropertyPrefix.
+	 * All values will be saved using the text returned by toString().
+	 */
+	Map  getPropertiesForPersistence();
+
+	/**
+	 * Return true if the given persistence properties are compatible with
+	 * this set, i.e. the components selected by these properties are all in
+	 * this component set.
+	 */
+	boolean arePropertiesCompatible(Map properties);
+}