aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/search/yql/TypeOperator.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/yql/TypeOperator.java')
-rw-r--r--container-search/src/main/java/com/yahoo/search/yql/TypeOperator.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/yql/TypeOperator.java b/container-search/src/main/java/com/yahoo/search/yql/TypeOperator.java
new file mode 100644
index 00000000000..01b1f88cc5e
--- /dev/null
+++ b/container-search/src/main/java/com/yahoo/search/yql/TypeOperator.java
@@ -0,0 +1,37 @@
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.search.yql;
+
+import com.google.common.base.Predicate;
+
+enum TypeOperator implements Operator {
+
+ BYTE,
+ INT16,
+ INT32,
+ INT64,
+ STRING,
+ DOUBLE,
+ TIMESTAMP,
+ BOOLEAN,
+ ARRAY(TypeOperator.class),
+ MAP(TypeOperator.class);
+
+ private final ArgumentsTypeChecker checker;
+
+ public static Predicate<OperatorNode<? extends Operator>> IS = new Predicate<OperatorNode<? extends Operator>>() {
+ @Override
+ public boolean apply(OperatorNode<? extends Operator> input) {
+ return input.getOperator() instanceof TypeOperator;
+ }
+ };
+
+ TypeOperator(Object... types) {
+ checker = TypeCheckers.make(this, types);
+ }
+
+ @Override
+ public void checkArguments(Object... args) {
+ checker.check(args);
+ }
+
+}