code: /*
   * Copyright (c) 2008-2019 Emmanuel Dupuy.
   * This project is distributed under the GPLv3 license.
   * This is a Copyleft license that gives the user the right to use,
   * copy and modify the code freely for non-commercial purposes.
   */
  
  package org.jd.gui.api.model;
  
  import java.util.Collection;
  import java.util.Map;
  
  /**
   * Whatever the language/file format (Java|Groovy|Scala/Class|DEX, Java|Javascript/Source, C#/CIL, ...), type names,
   * stored in the indexes, use the JVM internal format (package separator = '/', inner class separator = '$').<br>
   * <br>
   * List of default indexes:
   * <ul>
   *     <li>
   *         Map "strings"<br>
   *         key: a string<br>
   *         value: a list of entries containing the string
   *     </li>
   *     <li>
   *         Map "typeDeclarations"<br>
   *         key: a type name using internal JVM internal format<br>
   *         value: a list of entries containing the type declaration
   *     </li>
   *     <li>
   *         Map "constructorDeclarations"<br>
   *         key: a type name using internal JVM internal format<br>
   *         value: a list of entries containing the constructor declaration
   *     </li>
   *     <li>
   *         Map "constructorReferences"<br>
   *         key: a type name using internal JVM internal format<br>
   *         value: a list of entries containing the constructor reference
   *     </li>
   *     <li>
   *         Map "methodDeclarations"<br>
   *         key: a method name<br>
   *         value: a list of entries containing the method declaration
   *     </li>
   *     <li>
   *         Map "methodReferences"<br>
   *         key: a method name<br>
   *         value: a list of entries containing the method reference
   *     </li>
   *     <li>
   *         Map "fieldDeclarations"<br>
   *         key: a field name<br>
   *         value: a list of entries containing the field declaration
   *     </li>
   *     <li>
   *         Map "fieldReferences"<br>
   *         key: a field name<br>
   *         value: a list of entries containing the field reference
   *     </li>
   *     <li>
   *         Map "subTypeNames"<br>
   *         key: a super type name using internal JVM internal format<br>
   *         value: a list of sub type names using internal JVM internal format
   *     </li>
   * </ul>
   */
  public interface Indexes {
      Map<String, Collection> getIndex(String name);
  }
  