Sha256: ac084364185ce0046863b09fe18632ea4ca9c3009ec751324c2b2f528edb2bb5
Contents?: true
Size: 1.98 KB
Versions: 1
Compression:
Stored size: 1.98 KB
Contents
package org.embulk.filter.row; public class BooleanCondition implements Condition { private BooleanComparator comparator; // @FunctionalInterface interface BooleanComparator { boolean compare(Boolean subject); } public BooleanCondition(final String operator, final Boolean argument, final boolean not) { final BooleanComparator comparator; switch (operator.toUpperCase()) { case "IS NULL": comparator = new BooleanComparator() { public boolean compare(Boolean subject) { return subject == null; } }; break; case "IS NOT NULL": comparator = new BooleanComparator() { public boolean compare(Boolean subject) { return subject != null; } }; break; case "!=": comparator = new BooleanComparator() { public boolean compare(Boolean subject) { return subject == null ? true : !subject.equals(argument); } }; break; default: // case "==": comparator = new BooleanComparator() { public boolean compare(Boolean subject) { return subject == null ? false : subject.equals(argument); } }; break; } this.comparator = comparator; if (not) { this.comparator = new BooleanComparator() { public boolean compare(Boolean subject) { return !comparator.compare(subject); } }; } } public boolean compare(Boolean subject) { return this.comparator.compare(subject); } }
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
embulk-filter-row-0.2.1 | src/main/java/org/embulk/filter/row/BooleanCondition.java |