1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
package org.qedeq.kernel.bo.parser; |
17 |
|
|
18 |
|
import java.util.ArrayList; |
19 |
|
import java.util.List; |
20 |
|
|
21 |
|
import org.qedeq.base.trace.Trace; |
22 |
|
import org.qedeq.base.utility.StringUtility; |
23 |
|
|
24 |
|
|
25 |
|
|
26 |
|
|
27 |
|
@version |
28 |
|
@author |
29 |
|
|
|
|
| 41.7% |
Uncovered Elements: 56 (96) |
Complexity: 31 |
Complexity Density: 0.54 |
|
30 |
|
public class Term { |
31 |
|
|
32 |
|
|
33 |
|
private static final Class CLASS = Term.class; |
34 |
|
|
35 |
|
|
36 |
|
private final Operator operator; |
37 |
|
|
38 |
|
|
39 |
|
private final List arguments; |
40 |
|
|
41 |
|
|
42 |
|
private final TermAtom atom; |
43 |
|
|
44 |
|
|
45 |
|
|
46 |
|
|
47 |
|
@param |
48 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (3) |
Complexity: 1 |
Complexity Density: 0.33 |
|
49 |
913
|
public Term(final TermAtom atom) {... |
50 |
913
|
this.operator = null; |
51 |
913
|
this.arguments = null; |
52 |
913
|
this.atom = atom; |
53 |
|
} |
54 |
|
|
55 |
|
|
56 |
|
|
57 |
|
|
58 |
|
|
59 |
|
@param |
60 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (3) |
Complexity: 1 |
Complexity Density: 0.33 |
|
61 |
443
|
public Term(final Operator operator) {... |
62 |
443
|
this.operator = operator; |
63 |
443
|
this.arguments = new ArrayList(); |
64 |
443
|
this.atom = null; |
65 |
|
} |
66 |
|
|
67 |
|
|
68 |
|
|
69 |
|
|
70 |
|
@param |
71 |
|
@param |
72 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (4) |
Complexity: 1 |
Complexity Density: 0.25 |
|
73 |
586
|
public Term(final Operator operator, final Term firstArgument) {... |
74 |
586
|
this.operator = operator; |
75 |
586
|
this.arguments = new ArrayList(); |
76 |
586
|
this.atom = null; |
77 |
586
|
addArgument(firstArgument); |
78 |
|
} |
79 |
|
|
80 |
|
|
81 |
|
|
82 |
|
|
83 |
|
@return |
84 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
85 |
21726
|
public final boolean isAtom() {... |
86 |
21726
|
return atom != null; |
87 |
|
} |
88 |
|
|
89 |
|
|
90 |
|
|
91 |
|
@link |
92 |
|
@link |
93 |
|
|
94 |
|
@param |
95 |
|
@throws |
96 |
|
|
97 |
|
|
|
|
| 55.6% |
Uncovered Elements: 4 (9) |
Complexity: 4 |
Complexity Density: 0.8 |
|
98 |
1706
|
public final void addArgument(final Term term) {... |
99 |
1706
|
if (isAtom()) { |
100 |
0
|
throw new IllegalArgumentException( |
101 |
|
"this is an atom, no arguments could be added to " + atom.getValue()); |
102 |
|
} |
103 |
1706
|
if (operator.getMax() >= 0 && operator.getMax() < arguments.size() + 1) { |
104 |
0
|
throw new IllegalArgumentException("operator could have maximal " |
105 |
|
+ operator.getMax() + " arguments"); |
106 |
|
} |
107 |
1706
|
arguments.add(term); |
108 |
|
} |
109 |
|
|
110 |
|
|
111 |
|
|
112 |
|
|
113 |
|
@return |
114 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
115 |
0
|
public final Operator getOperator() {... |
116 |
0
|
return operator; |
117 |
|
} |
118 |
|
|
119 |
|
|
120 |
|
|
121 |
|
|
122 |
|
@return |
123 |
|
|
|
|
| 0% |
Uncovered Elements: 5 (5) |
Complexity: 2 |
Complexity Density: 0.67 |
|
124 |
0
|
public final int size() {... |
125 |
0
|
if (arguments == null) { |
126 |
0
|
return 0; |
127 |
|
} |
128 |
0
|
return arguments.size(); |
129 |
|
} |
130 |
|
|
131 |
|
|
132 |
|
|
133 |
|
|
134 |
|
@return |
135 |
|
|
|
|
| 90% |
Uncovered Elements: 2 (20) |
Complexity: 6 |
Complexity Density: 0.5 |
|
136 |
20020
|
public final String getQedeq() {... |
137 |
20020
|
if (isAtom()) { |
138 |
10577
|
return atom.getValue(); |
139 |
|
} |
140 |
9443
|
final StringBuffer buffer = new StringBuffer(); |
141 |
9443
|
buffer.append(operator.getQedeq()).append('('); |
142 |
9443
|
if (operator.getQedeqArgument() != null) { |
143 |
0
|
buffer.append(StringUtility.quote(operator.getQedeqArgument())); |
144 |
|
} |
145 |
24249
|
for (int i = 0; i < arguments.size(); i++) { |
146 |
14806
|
if (i > 0 || operator.getQedeqArgument() != null) { |
147 |
6149
|
buffer.append(", "); |
148 |
|
} |
149 |
14806
|
buffer.append(((Term) |
150 |
|
arguments.get(i)).getQedeq()); |
151 |
|
} |
152 |
9443
|
buffer.append(')'); |
153 |
9443
|
return buffer.toString(); |
154 |
|
} |
155 |
|
|
156 |
|
|
157 |
|
|
158 |
|
|
159 |
|
@return |
160 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
161 |
0
|
public final String getQedeqXml() {... |
162 |
0
|
return getQedeqXml(0); |
163 |
|
} |
164 |
|
|
165 |
|
|
166 |
|
|
167 |
|
|
168 |
|
@param |
169 |
|
@return |
170 |
|
|
|
|
| 0% |
Uncovered Elements: 37 (37) |
Complexity: 12 |
Complexity Density: 0.52 |
|
171 |
0
|
private final String getQedeqXml(final int level) {... |
172 |
0
|
if (isAtom()) { |
173 |
0
|
return StringUtility.getSpaces(level * 2) + atom.getValue() + "\n"; |
174 |
|
} |
175 |
0
|
final StringBuffer buffer = new StringBuffer(); |
176 |
0
|
buffer.append(StringUtility.getSpaces(level * 2)); |
177 |
0
|
buffer.append("<").append(operator.getQedeq()); |
178 |
0
|
if (operator.getQedeq().endsWith("VAR")) { |
179 |
0
|
buffer.append(" id=" + quote(operator.getQedeqArgument())); |
180 |
0
|
if (arguments == null || arguments.size() == 0) { |
181 |
0
|
buffer.append(" />" + "\n"); |
182 |
0
|
return buffer.toString(); |
183 |
|
} |
184 |
0
|
} else if (operator.getQedeq().endsWith("CON")) { |
185 |
0
|
buffer.append(" ref=" + quote(operator.getQedeqArgument())); |
186 |
0
|
if (arguments == null || arguments.size() == 0) { |
187 |
0
|
buffer.append(" />" + "\n"); |
188 |
0
|
return buffer.toString(); |
189 |
|
} |
190 |
|
} |
191 |
|
|
192 |
0
|
buffer.append(">\n"); |
193 |
0
|
if (operator.getQedeqArgument() != null && !operator.getQedeq().endsWith("VAR") |
194 |
|
&& !operator.getQedeq().endsWith("CON")) { |
195 |
|
|
196 |
0
|
Trace.fatal(CLASS, this, "getQedeqXml(int)", "operator argument is not null but: " |
197 |
|
+ operator.getQedeqArgument(), new IllegalArgumentException()); |
198 |
|
} |
199 |
0
|
for (int i = 0; i < arguments.size(); i++) { |
200 |
0
|
buffer.append(((Term) |
201 |
|
arguments.get(i)).getQedeqXml(level + 1)); |
202 |
|
} |
203 |
0
|
buffer.append(StringUtility.getSpaces(level * 2)); |
204 |
0
|
buffer.append("</").append(operator.getQedeq()).append(">\n"); |
205 |
0
|
return buffer.toString(); |
206 |
|
} |
207 |
|
|
208 |
|
|
209 |
|
|
210 |
|
|
211 |
|
@param |
212 |
|
@return |
213 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
214 |
0
|
private String quote(final String text) {... |
215 |
0
|
return "\"" + StringUtility.replace(text, "\"", """) + "\""; |
216 |
|
} |
217 |
|
|
218 |
|
} |