package org.eclipse.example.library;
import java.util.List;
import java.util.Map;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.EMap;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
/**
* @model
*/
public interface Library extends EObject
{
/**
* @model
*/
String getName();
/**
* Sets the value of the '{@link org.eclipse.example.library.Library#getName <em>Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Name</em>' attribute.
* @see #getName()
* @generated
*/
void setName(String value);
/**
* @model containment="true"
*/
EList<Writer> getWriters();
/**
* @model containment="true"
*/
EList<Book> getBooks();
/**
* @model
*/
EList<Book> getSpecialBooks();
/**
* @model
*/
Map<String, Book> getBookByTitleMap();
/**
* Sets the value of the '{@link org.eclipse.example.library.Library#getBookByTitleMap <em>Book By Title Map</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Book By Title Map</em>' attribute.
* @see #getBookByTitleMap()
* @generated
*/
void setBookByTitleMap(Map<String, Book> value);
/**
* @model mapType="WriterNameMap"
*/
EMap<String, Writer> getWriterByNameMap();
/**
* @model mapType="MapOfDataTypes<WriterNumber, WriterID>"
*/
EMap<Integer, String> getWriterByIDMap();
/**
* @model kind="attribute"
*/
Map<String, String> getOptions();
/**
* Sets the value of the '{@link org.eclipse.example.library.Library#getOptions <em>Options</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Options</em>' attribute.
* @see #getOptions()
* @generated
*/
void setOptions(Map<String, String> value);
/**
* @model
*/
Map<EObject, List<URI>> getMap1();
/**
* Sets the value of the '{@link org.eclipse.example.library.Library#getMap1 <em>Map1</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Map1</em>' attribute.
* @see #getMap1()
* @generated
*/
void setMap1(Map<EObject, List<URI>> value);
/**
* @model dataType="ManyURIs"
*/
List<URI> getURIs_1();
/**
* Sets the value of the '{@link org.eclipse.example.library.Library#getURIs_1 <em>UR Is 1</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>UR Is 1</em>' attribute.
* @see #getURIs_1()
* @generated
*/
void setURIs_1(List<URI> value);
}