/**
 *  Generated with Tigerstripe(tm) Tigerstripe Workbench Feature 2.2.0.v20070419-1556-GFEkmUll2-0111E.
 *
 *  Tigerstripe(tm) is a registered trademark of Tigerstripe, Inc.
 *
 *  Plugin  : Sun Microsystems Inc./SunJavaSpecificationPlugin(1.0) (1.0)
 *
 *  DO NOT EDIT THIS CODE WAS AUTOMATICALLY GENERATED
 *
 *  Generated from source Tigerstipe Artifact :
 *        javax.oss.cbe.EntitySpecification
 *
 *  Using template :
 *        templates/1.3/keyResultIteratorInterface.vm
 *
 * Copyright 2002-2007 The Members of the OSS through Java(TM) Initiative.
 * All rights reserved. Use is subject to license terms.
 */
package javax.oss.cbe;
/**
 *  Public interface definition for EntitySpecificationKeyResultIterator.
 *
 * <CODE>EntitySpecificationValue</CODE> is the base for all specification entities.
 * <p>
 * An entity specification captures characteristics and constraints
 * applicable to instances of the same entity type. For example a
 * "<CODE>GoldBroadbandAccessServicespecification</CODE>" will capture the characteristics,
 * configuration and QoS parameter ranges, specific to a "<CODE>Gold</CODE>" Broadband
 * Access service offering. Several specification instances may exist for the same
 * entity type. "<CODE>Gold</CODE>", "<CODE>Silver</CODE>" and "<CODE>Bronze</CODE>" specifications may be defined
 * for a "<CODE>BroadbandAccessService</CODE>".
 * <p>
 * Catalogues are collections of entity specifications (e.g. service catalogue composed
 * of service specifications, product catalogue composed of product specifications, resource
 * catalogue composed of resource specifications).
 * <p>
 * An entity instance is defined by a single entity specification.
 * The same entity specification may be used to define multiple entity instances.
 * An association exists between the entity specification and the entity instances,
 * defined by this specification (the values of the <CODE>describingSpecification</CODE>
 * attributes of the entities are set with the key of the specification).
 * The specification defines default values for all attributes of the corresponding entity type.
 * <p>
 * Entity specifications provide a factory method for the attribute constraints they contain.
 * Note that the CBE package does not specify through how attribute constraints are defined.
 * Specific implementations of the CBE interfaces should define the
 * concrete attribute constraint interfaces and the methods on the entity specification
 * that allow to get and set these constraints.
 * <p>
 * Entity specifications are represented as managed entities
 * (according to the OSS through Java definition of managed entity).
 * <CODE>EntitySpecification</CODE> instances have their own key and can be retrieved through
 * API specific <CODE>JVTSession</CODE> interfaces.
 * The following example show how to use the Inventory API to update a <CODE>ProductSpecification</CODE>:
 * <pre>
 * <CODE>
 * JVTInventorySession jvt = ...;
 * EntitySpecificationKey key = ...;
 * ProductSpecificationValue value = (ProductSpecificationValue)jvt.getEntitySpecificationByKey(key);
 * value.setAttributeValue("...");
 * jvt.setEntitySpecificationByValue(value);
 * </CODE>
 * </pre>
 * <p>
 * The specification for a given entity type may be used as a factory for
 * value objects or for creating entity instances of this entity type.
 * For example using the Inventory API:
 * <pre>
 * <CODE>JVT<...>InventorySession.make<...>EntityValueFromSpecification()</CODE> and the
 * <CODE>JVT<...>InventorySession.create<...>EntityFromSpecification()</CODE> methods.
 * </pre>
 * <p>
 * Entity specifications are uniquely identified by their keys.
 * See {@link EntitySpecificationKey} for more information.
 * <p>
 * <CODE>EntitySpecificationValue</CODE> inherits from <CODE>ManagedEntityValue</CODE> all methods
 * for population, generic attribute access and serialization.
 *
 */
public interface EntitySpecificationKeyResultIterator 
	extends javax.oss.cbe.CBEManagedEntityKeyResultIterator {
    /**
     *  Retrieve the next available values.
     *
     * @param howMany maximum number of values to return.
     * @return an array of EntitySpecificationKeyResult with a size of at most howMany.
     * When no more values are available, an empty array is returned.
     * @throws java.rmi.RemoteException - indicates the implementatiosn has internal errors
     */
 
     public javax.oss.cbe.EntitySpecificationKeyResult[] getNextEntitySpecificationKeyResults (int howMany)
        throws 
        java.rmi.RemoteException;
}
