Skip to content

Commit f10c04e

Browse files
committed
expressions improvements
1 parent a0b224f commit f10c04e

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/**
2+
* Copyright (c) 2017 European Organisation for Nuclear Research (CERN), All Rights Reserved.
3+
*/
4+
5+
package org.tensorics.core.lang;
6+
7+
import java.util.Arrays;
8+
9+
import org.tensorics.core.booleans.operations.And;
10+
import org.tensorics.core.booleans.operations.Or;
11+
import org.tensorics.core.expressions.ConversionOperationExpression;
12+
import org.tensorics.core.iterable.expressions.IterableExpressionToIterable;
13+
import org.tensorics.core.tree.domain.Expression;
14+
15+
public final class TensoricBooleanExpressions {
16+
17+
private static final And AND = new And();
18+
private static final Or OR = new Or();
19+
20+
private TensoricBooleanExpressions() {
21+
/* Only static methods */
22+
}
23+
24+
public static Expression<Boolean> or(Expression<? extends Iterable<Boolean>> sources) {
25+
return new ConversionOperationExpression<>(OR, sources);
26+
}
27+
28+
@SafeVarargs
29+
public static Expression<Boolean> or(Expression<Boolean>... expressions) {
30+
return or(Arrays.asList(expressions));
31+
}
32+
33+
public static Expression<Boolean> or(Iterable<? extends Expression<Boolean>> expressions) {
34+
Expression<Iterable<Boolean>> booleans = new IterableExpressionToIterable<>(expressions);
35+
return or(booleans);
36+
}
37+
38+
public static Expression<Boolean> and(Expression<? extends Iterable<Boolean>> sources) {
39+
return new ConversionOperationExpression<>(AND, sources);
40+
}
41+
42+
public static Expression<Boolean> and(Iterable<? extends Expression<Boolean>> expressions) {
43+
Expression<Iterable<Boolean>> booleans = new IterableExpressionToIterable<>(expressions);
44+
return and(booleans);
45+
}
46+
47+
@SafeVarargs
48+
public static Expression<Boolean> and(Expression<Boolean>... expressions) {
49+
return and(Arrays.asList(expressions));
50+
}
51+
52+
}

0 commit comments

Comments
 (0)