Skip to content

Package: CompoundedPredicateImpl

CompoundedPredicateImpl

nameinstructionbranchcomplexitylinemethod
CompoundedPredicateImpl(Predicate.BooleanOperator, List, CriteriaBuilder)
M: 0 C: 8
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
getExpressions()
M: 0 C: 3
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
getOperator()
M: 0 C: 3
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
negate()
M: 4 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
not()
M: 0 C: 23
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 7
100%
M: 0 C: 1
100%
setExpressionToQuery(StringBuilder, CriteriaParameterFiller)
M: 0 C: 52
100%
M: 0 C: 6
100%
M: 0 C: 4
100%
M: 0 C: 10
100%
M: 0 C: 1
100%

Coverage

1: /**
2: * Copyright (C) 2022 Czech Technical University in Prague
3: *
4: * This program is free software: you can redistribute it and/or modify it under
5: * the terms of the GNU General Public License as published by the Free Software
6: * Foundation, either version 3 of the License, or (at your option) any
7: * later version.
8: *
9: * This program is distributed in the hope that it will be useful, but WITHOUT
10: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11: * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
12: * details. You should have received a copy of the GNU General Public License
13: * along with this program. If not, see <http://www.gnu.org/licenses/>.
14: */
15: package cz.cvut.kbss.jopa.query.criteria;
16:
17: import cz.cvut.kbss.jopa.model.query.criteria.Expression;
18: import cz.cvut.kbss.jopa.model.query.criteria.Predicate;
19: import cz.cvut.kbss.jopa.query.criteria.expressions.AbstractExpression;
20: import cz.cvut.kbss.jopa.sessions.CriteriaBuilder;
21:
22: import java.util.List;
23:
24: public class CompoundedPredicateImpl extends AbstractPredicate {
25:
26: protected List<Expression<Boolean>> expressions;
27:
28: public CompoundedPredicateImpl(BooleanOperator booleanOperator, List<Expression<Boolean>> expressions,
29: CriteriaBuilder cb) {
30: super(booleanOperator, cb);
31: this.expressions = expressions;
32: }
33:
34: @Override
35: public List<Expression<Boolean>> getExpressions() {
36: return expressions;
37: }
38:
39: @Override
40: public BooleanOperator getOperator() {
41: return this.booleanOperator;
42: }
43:
44: @Override
45: public Predicate not() {
46:• for (Expression<Boolean> expression : expressions) {
47: AbstractExpression abstractExpression = (AbstractExpression) expression;
48: abstractExpression.negate();
49: }
50: super.negate();
51: super.negateOperator();
52: return this;
53: }
54:
55: @Override
56: public void setExpressionToQuery(StringBuilder query, CriteriaParameterFiller parameterFiller) {
57:• for (int i = 0; i < expressions.size(); i++) {
58: AbstractExpression expression = (AbstractExpression) expressions.get(i);
59:• if (expression instanceof CompoundedPredicateImpl) {
60: query.append("(");
61: expression.setExpressionToQuery(query, parameterFiller);
62: query.append(")");
63: } else {
64: expression.setExpressionToQuery(query, parameterFiller);
65: }
66:
67:• if (i < (expressions.size() - 1)) {
68: query.append(" ").append(getOperator()).append(" ");
69: }
70: }
71: }
72:
73: @Override
74: public void negate() {
75: this.not();
76: }
77: }