|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModuleLabelsCreator | Line # 42 | 28 | 16 | 90.7% |
0.90697676
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
(19) | |||
Result | |||
0.90697676
|
org.qedeq.kernel.xml.dao.GenerateXmlTest.testGeneration
![]() |
1 PASS | |
0.8604651
|
org.qedeq.kernel.bo.service.latex.GenerateLatexTest.testGeneration
![]() |
1 PASS | |
0.8604651
|
org.qedeq.kernel.bo.service.latex.GenerateLatexTest.testGeneration
![]() |
1 PASS | |
0.627907
|
org.qedeq.kernel.bo.service.heuristic.DynamicHeuristicCheckerPluginTest.testQedeqSampleScript1
![]() |
1 PASS | |
0.55813956
|
org.qedeq.kernel.bo.service.unicode.GenerateUtf8Test.testGeneration1
![]() |
1 PASS | |
0.55813956
|
org.qedeq.kernel.bo.service.unicode.Qedeq2UnicodeTextExecutorTest.testGeneration1
![]() |
1 PASS | |
0.55813956
|
org.qedeq.kernel.bo.service.basis.QedeqBoFactoryTest.testCreateStringQedeq1
![]() |
1 PASS | |
0.55813956
|
org.qedeq.kernel.bo.service.heuristic.HeuristicCheckerPluginTest.testQedeqLogicScript1
![]() |
1 PASS | |
0.5116279
|
org.qedeq.kernel.bo.service.latex.Qedeq2LatexTest.testQ2L001_v1
![]() |
1 PASS | |
0.5116279
|
org.qedeq.kernel.bo.service.logic.QedeqBoFormalLogicCheckerTest.testCheckModule
![]() |
1 PASS | |
0.4883721
|
org.qedeq.kernel.bo.service.logic.SimpleProofFinderPluginTest.testPlugin
![]() |
1 PASS | |
0.4883721
|
org.qedeq.kernel.bo.logic.proof.checker.ProofCheckerTest.testCheck1
![]() |
1 PASS | |
0.4883721
|
org.qedeq.kernel.bo.logic.proof.finder.ProofFinderImplTest.testFind
![]() |
1 PASS | |
0.4883721
|
org.qedeq.kernel.bo.service.logic.FormalProofCheckerPluginTest.testPlugin
![]() |
1 PASS | |
0.3488372
|
org.qedeq.kernel.bo.service.basis.ModuleConstantsExistenceCheckerTest.testModuleConstantsExistenceChecker_01
![]() |
1 PASS | |
0.3255814
|
org.qedeq.kernel.bo.service.logic.QedeqBoFormalLogicCheckerDirectTest.testNegative02
![]() |
1 PASS | |
0.3255814
|
org.qedeq.kernel.xml.parser.CharsetParserTest.testParse1
![]() |
1 PASS | |
0.3255814
|
org.qedeq.kernel.bo.logic.wf.FormulaCheckerContextTest.testNegative02
![]() |
1 PASS | |
0.18604651
|
org.qedeq.kernel.bo.service.basis.LoadRequiredModulesTest.testLoadRequiredModules_01
![]() |
1 PASS | |
1 | /* This file is part of the project "Hilbert II" - 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.service.basis; | |
17 | ||
18 | import org.qedeq.base.trace.Trace; | |
19 | import org.qedeq.kernel.bo.module.InternalServiceJob; | |
20 | import org.qedeq.kernel.bo.module.KernelQedeqBo; | |
21 | import org.qedeq.kernel.bo.module.ModuleLabels; | |
22 | import org.qedeq.kernel.se.base.module.Axiom; | |
23 | import org.qedeq.kernel.se.base.module.ChangedRule; | |
24 | import org.qedeq.kernel.se.base.module.ChangedRuleList; | |
25 | import org.qedeq.kernel.se.base.module.FunctionDefinition; | |
26 | import org.qedeq.kernel.se.base.module.Import; | |
27 | import org.qedeq.kernel.se.base.module.Node; | |
28 | import org.qedeq.kernel.se.base.module.PredicateDefinition; | |
29 | import org.qedeq.kernel.se.base.module.Proposition; | |
30 | import org.qedeq.kernel.se.base.module.Rule; | |
31 | import org.qedeq.kernel.se.common.ModuleDataException; | |
32 | import org.qedeq.kernel.se.common.Service; | |
33 | import org.qedeq.kernel.se.common.SourceFileExceptionList; | |
34 | import org.qedeq.kernel.se.dto.module.NodeVo; | |
35 | ||
36 | ||
37 | /** | |
38 | * Create mapping from labels to {@link org.qedeq.kernel.se.dto.module.NodeVo} for a QEDEQ module. | |
39 | * | |
40 | * @author Michael Meyling | |
41 | */ | |
42 | public final class ModuleLabelsCreator extends ControlVisitor { | |
43 | ||
44 | /** This class. */ | |
45 | private static final Class CLASS = ModuleLabelsCreator.class; | |
46 | ||
47 | /** QEDEQ module labels, definitions, references, etc. */ | |
48 | private ModuleLabels labels; | |
49 | ||
50 | /** Current node id. */ | |
51 | private String nodeId = ""; | |
52 | ||
53 | /** | |
54 | * Constructor. | |
55 | * | |
56 | * @param service This service we work for. | |
57 | * @param prop Internal QedeqBo. | |
58 | */ | |
59 | 648 |
![]() |
60 | 648 | super(service, prop); |
61 | } | |
62 | ||
63 | /** | |
64 | * Visit import. Loads referenced QEDEQ module and saves reference. | |
65 | * | |
66 | * @param imp Begin visit of this element. | |
67 | */ | |
68 | 514 |
![]() |
69 | 514 | try { |
70 | 514 | this.labels.addLabel(getCurrentContext(), |
71 | imp.getLabel()); | |
72 | } catch (ModuleDataException me) { | |
73 | 0 | addError(me); |
74 | 0 | Trace.trace(CLASS, this, "visitEnter(Import)", me); |
75 | } | |
76 | } | |
77 | ||
78 | 3647 |
![]() |
79 | 3647 | setBlocked(true); // block further traverse |
80 | } | |
81 | ||
82 | 9939 |
![]() |
83 | 9939 | setBlocked(true); // block further traverse |
84 | } | |
85 | ||
86 | /** | |
87 | * Increase function definition counter. | |
88 | * | |
89 | * @param funcDef Begin visit of this element. | |
90 | */ | |
91 | 2634 |
![]() |
92 | 2634 | setBlocked(true); // block further traverse |
93 | // we always save the definition, even if there already exists an entry | |
94 | 2634 | labels.addFunction(funcDef, getCurrentContext()); |
95 | } | |
96 | ||
97 | 1316 |
![]() |
98 | 1316 | setBlocked(true); // block further traverse |
99 | // we always save the definition, even if there already exists an entry | |
100 | 1316 | labels.addPredicate(predDef, getCurrentContext()); |
101 | } | |
102 | ||
103 | 1909 |
![]() |
104 | 1909 | setBlocked(true); // block further traverse |
105 | // we always save the definition, even if there already exists an entry | |
106 | 1909 | labels.addRule(nodeId, rule, getCurrentContext()); |
107 | 1909 | if (rule.getChangedRuleList() != null) { |
108 | 11 | final ChangedRuleList list = rule.getChangedRuleList(); |
109 | 99 | for (int i = 0; i < list.size() && list.get(i) != null; i++) { |
110 | 88 | final ChangedRule r = list.get(i); |
111 | 88 | labels.addChangedRule(nodeId, rule, r, getCurrentContext()); |
112 | } | |
113 | } | |
114 | } | |
115 | ||
116 | 19834 |
![]() |
117 | 19834 | nodeId = node.getId(); |
118 | } | |
119 | ||
120 | 19834 |
![]() |
121 | 19834 | nodeId = ""; |
122 | 19834 | try { |
123 | 19834 | labels.addNode(getCurrentContext(), (NodeVo) node, getKernelQedeqBo(), |
124 | getCurrentNumbers()); | |
125 | } catch (ModuleDataException me) { | |
126 | 4 | addError(me); |
127 | 4 | Trace.trace(CLASS, this, "visitEnter(Node)", me); |
128 | } | |
129 | 19834 | setBlocked(false); // allow further traverse |
130 | } | |
131 | ||
132 | /** | |
133 | * Fill QEDEQ module labels. | |
134 | * | |
135 | * @param process We work for this process. | |
136 | * @param labels Herein the labels are filled. | |
137 | * @throws SourceFileExceptionList Traverse lead to errors. | |
138 | */ | |
139 | 648 |
![]() |
140 | throws SourceFileExceptionList { | |
141 | 648 | this.labels = labels; |
142 | 648 | traverse(process); |
143 | } | |
144 | ||
145 | /** | |
146 | * Get QEDEQ module labels. | |
147 | * | |
148 | * @return QEDEQ module labels. */ | |
149 | 0 |
![]() |
150 | 0 | return labels; |
151 | } | |
152 | ||
153 | } | |
154 |
|