initial commit

This commit is contained in:
2025-07-13 01:46:42 +02:00
commit 867e5e2097
17 changed files with 553 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
package de.cccwi.conditions;
import de.cccwi.Attribute;
import java.util.List;
import java.util.function.BiFunction;
public class AttributeEquals implements BiFunction<List<Attribute>, List<Object>, Boolean> {
private final Attribute lhs;
private final Attribute rhs;
public AttributeEquals(Attribute lhs, Attribute rhs) {
assert lhs.type().equals(rhs.type());
this.lhs = lhs;
this.rhs = rhs;
}
@Override
public Boolean apply(List<Attribute> attributes, List<Object> rows) {
return rows.get(attributes.indexOf(lhs)).equals(rows.get(attributes.indexOf(rhs)));
}
}

View File

@@ -0,0 +1,23 @@
package de.cccwi.conditions;
import de.cccwi.Attribute;
import java.util.List;
import java.util.function.BiFunction;
public class GreaterThan implements BiFunction<List<Attribute>, List<Object>, Boolean> {
private final Attribute attribute;
private final Integer value;
public GreaterThan(Attribute attribute, Integer value) {
this.attribute = attribute;
this.value = value;
}
@Override
public Boolean apply(List<Attribute> attributes, List<Object> rows) {
var columnIndex = attributes.indexOf(attribute);
assert attributes.get(columnIndex).type().equals(Integer.class);
return ((Integer) rows.get(columnIndex)) > value;
}
}

View File

@@ -0,0 +1,23 @@
package de.cccwi.conditions;
import de.cccwi.Attribute;
import java.util.List;
import java.util.function.BiFunction;
public class GreaterThanEquals implements BiFunction<List<Attribute>, List<Object>, Boolean> {
private final Attribute attribute;
private final Integer value;
public GreaterThanEquals(Attribute attribute, Integer value) {
this.attribute = attribute;
this.value = value;
}
@Override
public Boolean apply(List<Attribute> attributes, List<Object> rows) {
var columnIndex = attributes.indexOf(attribute);
assert attributes.get(columnIndex).type().equals(Integer.class);
return ((Integer) rows.get(columnIndex)) >= value;
}
}

View File

@@ -0,0 +1,23 @@
package de.cccwi.conditions;
import de.cccwi.Attribute;
import java.util.List;
import java.util.function.BiFunction;
public class LessThan implements BiFunction<List<Attribute>, List<Object>, Boolean> {
private final Attribute attribute;
private final Integer value;
public LessThan(Attribute attribute, Integer value) {
this.attribute = attribute;
this.value = value;
}
@Override
public Boolean apply(List<Attribute> attributes, List<Object> rows) {
var columnIndex = attributes.indexOf(attribute);
assert attributes.get(columnIndex).type().equals(Integer.class);
return ((Integer) rows.get(columnIndex)) < value;
}
}

View File

@@ -0,0 +1,23 @@
package de.cccwi.conditions;
import de.cccwi.Attribute;
import java.util.List;
import java.util.function.BiFunction;
public class LessThanEquals implements BiFunction<List<Attribute>, List<Object>, Boolean> {
private final Attribute attribute;
private final Integer value;
public LessThanEquals(Attribute attribute, Integer value) {
this.attribute = attribute;
this.value = value;
}
@Override
public Boolean apply(List<Attribute> attributes, List<Object> rows) {
var columnIndex = attributes.indexOf(attribute);
assert attributes.get(columnIndex).type().equals(Integer.class);
return ((Integer) rows.get(columnIndex)) <= value;
}
}

View File

@@ -0,0 +1,19 @@
package de.cccwi.conditions;
import de.cccwi.Attribute;
import java.util.List;
import java.util.function.BiFunction;
public class Not implements BiFunction<List<Attribute>, List<Object>, Boolean> {
private BiFunction<List<Attribute>, List<Object>, Boolean> condition;
public Not(BiFunction<List<Attribute>, List<Object>, Boolean> condition) {
this.condition = condition;
}
@Override
public Boolean apply(List<Attribute> attributes, List<Object> objects) {
return !condition.apply(attributes, objects);
}
}

View File

@@ -0,0 +1,22 @@
package de.cccwi.conditions;
import de.cccwi.Attribute;
import java.util.List;
import java.util.function.BiFunction;
public class ValueEquals implements BiFunction<List<Attribute>, List<Object>, Boolean> {
private final Attribute lhs;
private final Object rhs;
public ValueEquals(Attribute lhs, Object rhs) {
assert lhs.type().isInstance(rhs);
this.lhs = lhs;
this.rhs = rhs;
}
@Override
public Boolean apply(List<Attribute> attributes, List<Object> rows) {
return rows.get(attributes.indexOf(lhs)).equals(rhs);
}
}