Clover Coverage Report
Coverage timestamp: Sa Aug 2 2008 13:56:27 CEST
../../../../../img/srcFileCovDistChart6.png 69% of files have more coverage
26   135   12   3,71
2   71   0,46   7
7     1,71  
1    
 
  ModuleLabelsCreator       Line # 40 26 12 57,1% 0.5714286
 
  (34)
 
1    /* $Id: ModuleLabelsCreator.java,v 1.1 2008/07/26 07:58:28 m31 Exp $
2    *
3    * This file is part of the project "Hilbert II" - http://www.qedeq.org
4    *
5    * Copyright 2000-2008, Michael Meyling <mime@qedeq.org>.
6    *
7    * "Hilbert II" is free software; you can redistribute
8    * it and/or modify it under the terms of the GNU General Public
9    * License as published by the Free Software Foundation; either
10    * version 2 of the License, or (at your option) any later version.
11    *
12    * This program is distributed in the hope that it will be useful,
13    * but WITHOUT ANY WARRANTY; without even the implied warranty of
14    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15    * GNU General Public License for more details.
16    */
17   
18    package org.qedeq.kernel.bo.service;
19   
20    import org.qedeq.base.trace.Trace;
21    import org.qedeq.kernel.base.module.FunctionDefinition;
22    import org.qedeq.kernel.base.module.Import;
23    import org.qedeq.kernel.base.module.Node;
24    import org.qedeq.kernel.base.module.PredicateDefinition;
25    import org.qedeq.kernel.bo.module.ControlVisitor;
26    import org.qedeq.kernel.bo.module.KernelQedeqBo;
27    import org.qedeq.kernel.common.DefaultSourceFileExceptionList;
28    import org.qedeq.kernel.common.ModuleContext;
29    import org.qedeq.kernel.common.ModuleDataException;
30    import org.qedeq.kernel.common.ModuleLabels;
31    import org.qedeq.kernel.dto.module.NodeVo;
32   
33   
34    /**
35    * Create mapping from labels to {@link org.qedeq.kernel.dto.module.NodeVo} for a QEDEQ module.
36    *
37    * @version $Revision: 1.1 $
38    * @author Michael Meyling
39    */
 
40    public final class ModuleLabelsCreator extends ControlVisitor {
41   
42    /** This class. */
43    private static final Class CLASS = ModuleLabelsCreator.class;
44   
45    /** QEDEQ module labels. */
46    private ModuleLabels labels;
47   
48    /**
49    * Constructor.
50    *
51    * @param prop Internal QedeqBo.
52    */
 
53  120 toggle public ModuleLabelsCreator(final KernelQedeqBo prop) {
54  120 super(prop);
55    }
56   
57    /**
58    * Visit import. Loads referenced QEDEQ module and saves reference.
59    *
60    * @param imp Begin visit of this element.
61    */
 
62  114 toggle public void visitEnter(final Import imp) {
63  114 try {
64  114 this.labels.addLabel(new ModuleContext(getCurrentContext()),
65    imp.getLabel());
66  114 Trace.param(CLASS, "visitEnter(Import)", "adding context", getCurrentContext());
67    } catch (ModuleDataException me) {
68  0 addModuleDataException(me);
69  0 Trace.trace(CLASS, this, "visitEnter(Import)", me);
70    }
71    }
72   
73    /**
74    * Visit import. Loads referenced QEDEQ module and saves reference.
75    *
76    * @param funcDef Begin visit of this element.
77    */
 
78  0 toggle public void visitEnter(final FunctionDefinition funcDef) {
79  0 try {
80  0 this.labels.checkLabel(new ModuleContext(getCurrentContext()),
81    funcDef.getName());
82  0 Trace.param(CLASS, "visitEnter(FunctionDefinition)", "adding context",
83    getCurrentContext());
84    } catch (ModuleDataException me) {
85  0 addModuleDataException(me);
86  0 Trace.trace(CLASS, this, "visitEnter(FunctionDefinition)", me);
87    }
88    }
89   
90    /**
91    * Visit import. Loads referenced QEDEQ module and saves reference.
92    *
93    * @param predDef Begin visit of this element.
94    */
 
95  0 toggle public void visitEnter(final PredicateDefinition predDef) {
96  0 try {
97  0 this.labels.checkLabel(new ModuleContext(getCurrentContext()),
98    predDef.getName());
99  0 Trace.param(CLASS, "visitEnter(PredicateDefinition)", "adding context",
100    getCurrentContext());
101    } catch (ModuleDataException me) {
102  0 addModuleDataException(me);
103  0 Trace.trace(CLASS, this, "visitEnter(PredicateDefinition)", me);
104    }
105    }
106   
107    /**
108    * Get QEDEQ module labels.
109    *
110    * @return QEDEQ module labels.
111    * @throws DefaultSourceFileExceptionList Traverse lead to errors.
112    */
 
113  120 toggle public ModuleLabels createLabels() throws DefaultSourceFileExceptionList {
114  120 if (this.labels == null) {
115  120 this.labels = new ModuleLabels();
116  120 traverse();
117    }
118  117 return this.labels;
119    }
120   
 
121  1047 toggle public void visitEnter(final Node node) throws ModuleDataException {
122  1047 try {
123  1047 this.labels.addNode(getCurrentContext(), (NodeVo) node);
124    } catch (ModuleDataException me) {
125  3 addModuleDataException(me);
126  3 Trace.trace(CLASS, this, "visitEnter(Node)", me);
127    }
128  1047 setBlocked(true); // block further traverse of sub nodes
129    }
130   
 
131  1047 toggle public void visitLeave(final Node node) {
132  1047 setBlocked(false); // allow further traverse
133    }
134   
135    }