package org.eclipse.example.library;

import java.util.List;
import java.util.Map;

import org.eclipse.emf.common.util.URI;

/**
 * @model
 */
public interface Library
{
  /**
   * @model
   */
  String getName();

  /**
   * @model containment="true"
   */
  List<Writer> getWriters();

  /**
   * @model containment="true"
   */
  List<Book> getBooks();
  
  /**
   * @model
   */
  List<Book> getSpecialBooks();

  /**
   * @model
   */
  Map<String, Book> getBookByTitleMap();
  
  /**
   * @model mapType="WriterNameMap"
   */
  Map<String, Writer> getWriterByNameMap();
    
  /**
   * @model mapType="MapOfDataTypes<WriterNumber, WriterID>"
   */  
  Map<Integer, String> getWriterByIDMap();
  
  /**
   * @model kind="attribute"
   */
  Map<String, String> getOptions();
    
  /**
   * @model
   */
  Map<org.eclipse.emf.ecore.EObject, List<URI>> getMap1();
  
  /**
   * @model dataType="ManyURIs"
   */
  List<URI> getURIs_1();  
}