public boolean isMet(FieldManager fieldManager, boolean verbose) { try { Clause rootClause = ClauseParser.parse(json); boolean ret = false; if (rootClause != null) { IndentPrinter printer = verbose ? new IndentBufferedPrinter() : IndentPrinter.NULL; ret = rootClause.evaluate(fieldManager, printer); if (verbose) { ApptentiveLog.i(INTERACTIONS, "Criteria evaluated => %b", ret); ApptentiveLog.d(INTERACTIONS, "Criteria evaluation details:\n%s", printer); } } else { if (verbose) { ApptentiveLog.i(INTERACTIONS, "Criteria could not be evaluated: no clause found"); } } return ret; } catch (Exception e) { ApptentiveLog.e(INTERACTIONS, e, "Exception while evaluating interaction criteria"); logException(e); } return false; } }