Class MongoFilter.Translator

  • Enclosing class:
    MongoFilter

    static class MongoFilter.Translator
    extends java.lang.Object
    Translates RexNode expressions into MongoDB expression strings.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      (package private) JsonBuilder builder  
      (package private) java.util.Map<java.lang.String,​RexLiteral> eqMap  
      private java.util.List<java.lang.String> fieldNames  
      (package private) com.google.common.collect.Multimap<java.lang.String,​Pair<java.lang.String,​RexLiteral>> multimap  
    • Constructor Summary

      Constructors 
      Constructor Description
      Translator​(java.util.List<java.lang.String> fieldNames)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private void addPredicate​(java.util.Map<java.lang.String,​java.lang.Object> map, java.lang.String op, java.lang.Object v)  
      private static java.lang.Object literalValue​(RexLiteral literal)  
      private boolean stronger​(java.lang.String key, java.lang.Object v0, java.lang.Object v1)
      Returns whether v0 is a stronger value for operator key than v1.
      private java.util.Map<java.lang.String,​java.lang.Object> translateAnd​(RexNode node0)
      Translates a condition that may be an AND of other conditions.
      private java.lang.Void translateBinary​(java.lang.String op, java.lang.String rop, RexCall call)
      Translates a call to a binary operator, reversing arguments if necessary.
      private boolean translateBinary2​(java.lang.String op, RexNode left, RexNode right)
      Translates a call to a binary operator.
      private java.lang.String translateMatch​(RexNode condition)  
      private java.lang.Void translateMatch2​(RexNode node)  
      private void translateOp2​(java.lang.String op, java.lang.String name, RexLiteral right)  
      private java.lang.Object translateOr​(RexNode condition)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • multimap

        final com.google.common.collect.Multimap<java.lang.String,​Pair<java.lang.String,​RexLiteral>> multimap
      • eqMap

        final java.util.Map<java.lang.String,​RexLiteral> eqMap
      • fieldNames

        private final java.util.List<java.lang.String> fieldNames
    • Constructor Detail

      • Translator

        Translator​(java.util.List<java.lang.String> fieldNames)
    • Method Detail

      • translateMatch

        private java.lang.String translateMatch​(RexNode condition)
      • translateOr

        private java.lang.Object translateOr​(RexNode condition)
      • translateAnd

        private java.util.Map<java.lang.String,​java.lang.Object> translateAnd​(RexNode node0)
        Translates a condition that may be an AND of other conditions. Gathers together conditions that apply to the same field.
      • addPredicate

        private void addPredicate​(java.util.Map<java.lang.String,​java.lang.Object> map,
                                  java.lang.String op,
                                  java.lang.Object v)
      • stronger

        private boolean stronger​(java.lang.String key,
                                 java.lang.Object v0,
                                 java.lang.Object v1)
        Returns whether v0 is a stronger value for operator key than v1.

        For example, stronger("$lt", 100, 200) returns true, because "< 100" is a more powerful condition than "< 200".

      • literalValue

        private static java.lang.Object literalValue​(RexLiteral literal)
      • translateMatch2

        private java.lang.Void translateMatch2​(RexNode node)
      • translateBinary

        private java.lang.Void translateBinary​(java.lang.String op,
                                               java.lang.String rop,
                                               RexCall call)
        Translates a call to a binary operator, reversing arguments if necessary.
      • translateBinary2

        private boolean translateBinary2​(java.lang.String op,
                                         RexNode left,
                                         RexNode right)
        Translates a call to a binary operator. Returns whether successful.
      • translateOp2

        private void translateOp2​(java.lang.String op,
                                  java.lang.String name,
                                  RexLiteral right)