ModuleReferenceList.java
01 /* This file is part of the project "Hilbert II" - http://www.qedeq.org
02  *
03  * Copyright 2000-2011,  Michael Meyling <mime@qedeq.org>.
04  *
05  * "Hilbert II" is free software; you can redistribute
06  * it and/or modify it under the terms of the GNU General Public
07  * License as published by the Free Software Foundation; either
08  * version 2 of the License, or (at your option) any later version.
09  *
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 }