/** * Copyright 2012 Markus Scheidgen * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package de.hub.emffrag.model.emffrag; import java.util.Iterator; import org.eclipse.emf.ecore.EObject; import de.hub.emffrag.datastore.KeyType; /** * <!-- begin-user-doc --> * A representation of the model object '<em><b>Indexed Map</b></em>'. * <!-- end-user-doc --> * * <p> * The following features are supported: * <ul> * <li>{@link de.hub.emffrag.model.emffrag.IndexedMap#getFirstKey <em>First Key</em>}</li> * <li>{@link de.hub.emffrag.model.emffrag.IndexedMap#getLastKey <em>Last Key</em>}</li> * <li>{@link de.hub.emffrag.model.emffrag.IndexedMap#getPrefix <em>Prefix</em>}</li> * <li>{@link de.hub.emffrag.model.emffrag.IndexedMap#getKeytype <em>Keytype</em>}</li> * </ul> * </p> * * @see de.hub.emffrag.model.emffrag.EmfFragPackage#getIndexedMap() * @model * @generated */ public interface IndexedMap<K, V> extends EObject { /** * Returns the value of the '<em><b>First Key</b></em>' attribute. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>First Key</em>' attribute isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>First Key</em>' attribute. * @see #isSetFirstKey() * @see de.hub.emffrag.model.emffrag.EmfFragPackage#getIndexedMap_FirstKey() * @model unsettable="true" transient="true" changeable="false" derived="true" * @generated */ K getFirstKey(); /** * Returns whether the value of the '{@link de.hub.emffrag.model.emffrag.IndexedMap#getFirstKey <em>First Key</em>}' attribute is set. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @return whether the value of the '<em>First Key</em>' attribute is set. * @see #getFirstKey() * @generated */ boolean isSetFirstKey(); /** * Returns the value of the '<em><b>Last Key</b></em>' attribute. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Last Key</em>' attribute isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>Last Key</em>' attribute. * @see #isSetLastKey() * @see de.hub.emffrag.model.emffrag.EmfFragPackage#getIndexedMap_LastKey() * @model unsettable="true" transient="true" changeable="false" derived="true" * @generated */ K getLastKey(); /** * Returns whether the value of the '{@link de.hub.emffrag.model.emffrag.IndexedMap#getLastKey <em>Last Key</em>}' attribute is set. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @return whether the value of the '<em>Last Key</em>' attribute is set. * @see #getLastKey() * @generated */ boolean isSetLastKey(); /** * Returns the value of the '<em><b>Prefix</b></em>' attribute. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Prefix</em>' attribute isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>Prefix</em>' attribute. * @see #setPrefix(String) * @see de.hub.emffrag.model.emffrag.EmfFragPackage#getIndexedMap_Prefix() * @model * @generated */ String getPrefix(); /** * Sets the value of the '{@link de.hub.emffrag.model.emffrag.IndexedMap#getPrefix <em>Prefix</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Prefix</em>' attribute. * @see #getPrefix() * @generated */ void setPrefix(String value); /** * Returns the value of the '<em><b>Keytype</b></em>' attribute. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Keytype</em>' attribute isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> * @return the value of the '<em>Keytype</em>' attribute. * @see #isSetKeytype() * @see de.hub.emffrag.model.emffrag.EmfFragPackage#getIndexedMap_Keytype() * @model unsettable="true" dataType="de.hub.emffrag.model.emffrag.KeyType<K>" transient="true" changeable="false" derived="true" * @generated */ KeyType<K> getKeytype(); /** * Returns whether the value of the '{@link de.hub.emffrag.model.emffrag.IndexedMap#getKeytype <em>Keytype</em>}' attribute is set. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @return whether the value of the '<em>Keytype</em>' attribute is set. * @see #getKeytype() * @generated */ boolean isSetKeytype(); /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @model dataType="de.hub.emffrag.model.emffrag.Iterator<V>" * @generated */ Iterator<V> iterator(); /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @model dataType="de.hub.emffrag.model.emffrag.Iterator<V>" * @generated */ Iterator<V> iterator(K from, K to); /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @model keyRequired="true" * @generated */ V exact(K key); /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @model keyRequired="true" * @generated */ V next(K key); /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @model keyRequired="true" * @generated */ void put(K key, V value); /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @model * @generated */ V remove(K key); } // IndexedMap