code: static Selector decodeSubtree(ObjectInput buf) throws ClassNotFoundException, IOException
    {
      int type = buf.readByte();
      if (type < IDENTIFIER)
        return new LiteralImpl(buf);
      else
        if (type == IDENTIFIER)
          return new IdentifierImpl(buf);
        else
          if (type == LIKE)
            return new LikeOperatorImpl(buf);
          else
            return new OperatorImpl(buf);
    }
docs: the constructor of Operator (to decode operands).