View Javadoc

1   /* This file is part of the project "Hilbert II" - http://www.qedeq.org" target="alexandria_uri">http://www.qedeq.org
2    *
3    * Copyright 2000-2014,  Michael Meyling <mime@qedeq.org>.
4    *
5    * "Hilbert II" is free software; you can redistribute
6    * it and/or modify it under the terms of the GNU General Public
7    * License as published by the Free Software Foundation; either
8    * version 2 of the License, or (at your option) any later version.
9    *
10   * This program is distributed in the hope that it will be useful,
11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13   * GNU General Public License for more details.
14   */
15  
16  package org.qedeq.kernel.bo.common;
17  
18  import org.qedeq.kernel.se.common.ModuleContext;
19  
20  
21  /**
22   * Represents a reference list of modules. Every entry has a symbolic name for one referenced QEDEQ
23   * module. This module label acts as a prefix for all references to that module. The module label
24   * must be an unique String.
25   *
26   * @author Michael Meyling
27   */
28  public interface ModuleReferenceList {
29  
30      /**
31       * Get number of module references.
32       *
33       * @return  Number of module references.
34       */
35      public int size();
36  
37      /**
38       * Get label for certain module.
39       *
40       * @param   index   Entry index.
41       * @return  Label of module.
42       */
43      public String getLabel(int index);
44  
45      /**
46       * Get properties of referenced module.
47       *
48       * @param   index   Entry index.
49       * @return  Module properties for that module.
50       */
51      public QedeqBo getQedeqBo(int index);
52  
53      /**
54       * Get import context of referenced module.
55       *
56       * @param   index   Entry index.
57       * @return  Context for that module.
58       */
59      public ModuleContext getModuleContext(int index);
60  
61      /**
62       * Get QedeqBo of referenced module via label. Might be <code>null</code>.
63       *
64       * @param   label   Label for referenced module or <code>null</code> if not found.
65       * @return  Module properties for that module.
66       */
67      public QedeqBo getQedeqBo(String label);
68  
69  }