View Javadoc

1   package org.qedeq.kernel.bo.module;
2   
3   import org.qedeq.kernel.bo.common.Element2Latex;
4   import org.qedeq.kernel.bo.common.Element2Utf8;
5   import org.qedeq.kernel.bo.common.QedeqBo;
6   import org.qedeq.kernel.se.common.ModuleDataException;
7   import org.qedeq.kernel.se.common.ModuleService;
8   import org.qedeq.kernel.se.common.Service;
9   import org.qedeq.kernel.se.common.SourceFileException;
10  import org.qedeq.kernel.se.common.SourceFileExceptionList;
11  import org.qedeq.kernel.se.state.DependencyState;
12  import org.qedeq.kernel.se.state.FormallyProvedState;
13  import org.qedeq.kernel.se.state.LoadingImportsState;
14  import org.qedeq.kernel.se.state.WellFormedState;
15  
16  /**
17   * Kernel internal QedeqBo with additional methods.
18   *
19   * @author  Michael Meyling
20   */
21  public interface KernelQedeqBo extends QedeqBo {
22  
23      /**
24       * Get internal kernel services.
25       *
26       * @return  Internal kernel services.
27       */
28      public InternalKernelServices getKernelServices();
29  
30      /**
31       * Get labels and URLs of all referenced modules.
32       *
33       * @return  URLs of all referenced modules.
34       */
35      public KernelModuleReferenceList getKernelRequiredModules();
36  
37      /**
38       * Get label references for QEDEQ module.
39       *
40       * @return  Label references.
41       */
42      public ModuleLabels getLabels();
43  
44      /**
45       * Return mapper for transforming elements into LaTeX.
46       *
47       * @return  Transformer to get LaTeX out of elements.
48       */
49      public Element2Latex getElement2Latex();
50  
51      /**
52       * Return mapper for transforming elements into UTF-8 text.
53       *
54       * @return  Transformer to get UTF-8 text out of elements.
55       */
56      public Element2Utf8 getElement2Utf8();
57  
58      /**
59       * Create exception out of {@link ModuleDataException}.
60       *
61       * @param   service      This service generated the error.
62       * @param   exception   Take this exception.
63       * @return  Newly created instance.
64       */
65      public SourceFileException createSourceFileException(Service service, ModuleDataException
66              exception);
67  
68      /**
69       * Add errors and warnings for service.
70       *
71       * @param plugin    Add errors for this service.
72       * @param errors    These errors occurred.
73       * @param warnings  These warnings occurred.
74       */
75      public void addPluginErrorsAndWarnings(ModuleService plugin, SourceFileExceptionList errors,
76              SourceFileExceptionList warnings);
77  
78      /**
79       * Remove all errors and warnings for all services.
80       */
81      public void clearAllPluginErrorsAndWarnings();
82  
83      /**
84       * Get the predicate and function existence checker. Is only not <code>null</code>
85       * if logic was successfully checked.
86       *
87       * @return  Checker. Checks if a predicate or function constant is defined.
88       */
89      public ModuleConstantsExistenceChecker getExistenceChecker();
90  
91      /**
92       * Set failure module state.
93       *
94       * @param   loadImportsFailed       Module state.
95       * @param   sfl                     Exception that occurred during loading required modules.
96       * @throws  IllegalArgumentException  <code>state</code> is no failure state
97       */
98      public void setLoadingImportsFailureState(LoadingImportsState loadImportsFailed,
99              SourceFileExceptionList sfl);
100 
101     /**
102      * Set logical well formed module state. Must not be <code>null</code>.
103      *
104      * @param   stateLoadImports        module state
105      */
106     public void setLoadingImportsProgressState(LoadingImportsState stateLoadImports);
107 
108     /**
109      * Set loaded imports state. All directly required modules were loaded.
110      *
111      * @param   imports                 These imports were loaded.
112      * @throws  IllegalStateException   Module is not yet loaded.
113      */
114     public void setLoadedImports(final KernelModuleReferenceList imports);
115 
116     /**
117      * Set dependency failure module state.
118      *
119      * @param   loadRequiredFailed      Module state.
120      * @param   sfl                     Exception that occurred during loading required modules.
121      * @throws  IllegalArgumentException  <code>loadRequiredFailed</code> is no failure state
122      * @throws  IllegalStateException   Module is not yet loaded.
123      * @throws  NullPointerException    <code>loadRequiredFailed</code> is <code>null</code>.
124      */
125     public void setDependencyFailureState(DependencyState loadRequiredFailed,
126             SourceFileExceptionList sfl);
127 
128     /**
129      * Set dependency module state. Must not be <code>null</code>.
130      *
131      * @param   state                       Module state
132      * @throws  IllegalStateException       Module is not yet loaded.
133      * @throws  IllegalArgumentException    <code>state</code> is failure state or loaded required
134      *                                      state.
135      * @throws  NullPointerException        <code>state</code> is <code>null</code>.
136      */
137     public void setDependencyProgressState(DependencyState state);
138 
139     /**
140      * Set loaded required requirements state.
141      *
142      * @throws  IllegalStateException   Module is not yet loaded.
143      */
144     public void setLoadedRequiredModules();
145 
146     /**
147      * Set failure module state.
148      *
149      * @param   stateExternalCheckingFailed   Module state.
150      * @param   sfl                           Exception that occurred during loading.
151      * @throws  IllegalArgumentException    <code>state</code> is no failure state
152      */
153     public void setWellfFormedFailureState(WellFormedState stateExternalCheckingFailed,
154             SourceFileExceptionList sfl);
155 
156     /**
157      * Set logical well formed module state. Must not be <code>null</code>.
158      *
159      * @param   stateInternalChecking   module state
160      */
161     public void setWellFormedProgressState(WellFormedState stateInternalChecking);
162 
163     /**
164      * Set logical formally proved module progress state. Must not be <code>null</code>.
165      *
166      * @param   state                       module state
167      * @throws  IllegalArgumentException    <code>state</code> is no failure state
168      */
169     public void setFormallyProvedProgressState(FormallyProvedState state);
170 
171     /**
172      * Set logical formally proved module failure state. Must not be <code>null</code>.
173      *
174      * @param   state                       module state
175      * @param   sfl                          Exception that occurred during loading.
176      * @throws  IllegalArgumentException    <code>state</code> is no failure state
177      */
178     public void setFormallyProvedFailureState(FormallyProvedState state,
179             SourceFileExceptionList sfl);
180 
181     /**
182      * Set {@link ModuleConstantsExistenceChecker}. Doesn't do any status handling.
183      *
184      * @param   existence   Set this checker.
185      */
186     public void setExistenceChecker(ModuleConstantsExistenceChecker existence);
187 
188     /**
189      * Set logic well formed state. Also set the predicate and function existence checker.
190      *
191      * @param   checker Checks if a predicate or function constant is defined.
192      */
193     public void setWellFormed(ModuleConstantsExistenceChecker checker);
194 
195 
196     /**
197      * Set currently running service.
198      *
199      * @param   service  Set currently running service. Might be <code>null</code>.
200      */
201 // TODO 20130520 m31: we must decide about the location of the service at this module
202 //    public void setCurrentlyRunningService(Service service);
203 
204 }