### Question:
QueryPropertyMarker extends ASTReference { public static boolean instanceOf(JexlNode node, Class<? extends QueryPropertyMarker> type) { return QueryPropertyMarkerVisitor.instanceOf(node, type, null); } QueryPropertyMarker();  QueryPropertyMarker(int id);  QueryPropertyMarker(Parser p, int id);  QueryPropertyMarker(JexlNode source); static boolean instanceOf(JexlNode node, Class<? extends QueryPropertyMarker> type); static JexlNode getQueryPropertySource(JexlNode node, Class<? extends QueryPropertyMarker> type);  }### Answer:
@Test public void instanceOfTest() throws Exception { String baseQuery = "(GEO >= '0202' && GEO <= '020d') && (WKT_BYTE_LENGTH >= '+AE0' && WKT_BYTE_LENGTH < '+bE8')"; JexlNode baseQueryNode = JexlASTHelper.parseJexlQuery(baseQuery); JexlNode delayedNode = ASTDelayedPredicate.create(baseQueryNode); assertTrue(ASTDelayedPredicate.instanceOf(delayedNode)); JexlNode sourceNode = ASTDelayedPredicate.getDelayedPredicateSource(delayedNode); assertEquals(baseQuery, JexlStringBuildingVisitor.buildQuery(sourceNode)); String delayedQueryString = JexlStringBuildingVisitor.buildQuery(delayedNode); JexlNode reconstructedDelayedNode = JexlASTHelper.parseJexlQuery(delayedQueryString); assertTrue(ASTDelayedPredicate.instanceOf(reconstructedDelayedNode)); sourceNode = ASTDelayedPredicate.getDelayedPredicateSource(delayedNode); assertEquals(baseQuery, JexlStringBuildingVisitor.buildQuery(sourceNode)); }