001    /**
002     * <copyright>
003     * </copyright>
004     *
005     * $Id$
006     */
007    package com.hammurapi.config;
008    
009    import org.eclipse.emf.common.util.EList;
010    
011    /**
012     * <!-- begin-user-doc -->
013     * A representation of the model object '<em><b>Collection</b></em>'.
014     * <!-- end-user-doc -->
015     *
016     * <!-- begin-model-doc -->
017     * Collection of elements. Configuration runtime can convert collections to arrays, if needed, to match parameter type of setter methods or constructors. 
018     * <!-- end-model-doc -->
019     *
020     * <p>
021     * The following features are supported:
022     * <ul>
023     *   <li>{@link com.hammurapi.config.Collection#getElement <em>Element</em>}</li>
024     *   <li>{@link com.hammurapi.config.Collection#getType <em>Type</em>}</li>
025     *   <li>{@link com.hammurapi.config.Collection#isFactoryCollection <em>Factory Collection</em>}</li>
026     * </ul>
027     * </p>
028     *
029     * @see com.hammurapi.config.ConfigPackage#getCollection()
030     * @model
031     * @generated
032     */
033    public interface Collection extends Factory {
034            /**
035             * Returns the value of the '<em><b>Element</b></em>' containment reference list.
036             * The list contents are of type {@link com.hammurapi.config.Factory}.
037             * <!-- begin-user-doc -->
038             * <!-- end-user-doc -->
039             * <!-- begin-model-doc -->
040             * Collection element.
041             * <!-- end-model-doc -->
042             * @return the value of the '<em>Element</em>' containment reference list.
043             * @see com.hammurapi.config.ConfigPackage#getCollection_Element()
044             * @model containment="true"
045             * @generated
046             */
047            EList<Factory> getElement();
048    
049            /**
050             * Returns the value of the '<em><b>Type</b></em>' attribute.
051             * The default value is <code>"java.util.ArrayList"</code>.
052             * <!-- begin-user-doc -->
053             * <!-- end-user-doc -->
054             * <!-- begin-model-doc -->
055             * Collection type. Default type is java.util.ArrayList.
056             * <!-- end-model-doc -->
057             * @return the value of the '<em>Type</em>' attribute.
058             * @see #setType(String)
059             * @see com.hammurapi.config.ConfigPackage#getCollection_Type()
060             * @model default="java.util.ArrayList"
061             * @generated
062             */
063            String getType();
064    
065            /**
066             * Sets the value of the '{@link com.hammurapi.config.Collection#getType <em>Type</em>}' attribute.
067             * <!-- begin-user-doc -->
068             * <!-- end-user-doc -->
069             * @param value the new value of the '<em>Type</em>' attribute.
070             * @see #getType()
071             * @generated
072             */
073            void setType(String value);
074    
075            /**
076             * Returns the value of the '<em><b>Factory Collection</b></em>' attribute.
077             * <!-- begin-user-doc -->
078             * <!-- end-user-doc -->
079             * <!-- begin-model-doc -->
080             * If this property is set to true, then the collection will contain factories instead of values.
081             * <!-- end-model-doc -->
082             * @return the value of the '<em>Factory Collection</em>' attribute.
083             * @see #setFactoryCollection(boolean)
084             * @see com.hammurapi.config.ConfigPackage#getCollection_FactoryCollection()
085             * @model
086             * @generated
087             */
088            boolean isFactoryCollection();
089    
090            /**
091             * Sets the value of the '{@link com.hammurapi.config.Collection#isFactoryCollection <em>Factory Collection</em>}' attribute.
092             * <!-- begin-user-doc -->
093             * <!-- end-user-doc -->
094             * @param value the new value of the '<em>Factory Collection</em>' attribute.
095             * @see #isFactoryCollection()
096             * @generated
097             */
098            void setFactoryCollection(boolean value);
099    
100    } // Collection