### Question:
GraphBlock implements ContainerBlock { @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("GRAPH ").append(context).append("{ "); for (Block block : blocks) { builder.append(block.toString()).append(" "); } if (filters != null) { builder.append(" FILTER(").append(filters).append(")"); } builder.append(" }"); return builder.toString(); } GraphBlock(Expression<UID> context, List<Block> blocks, Predicate... filters); @Override Predicate not(); @Override @SuppressWarnings("unchecked") R accept(Visitor<R, C> v, C context); @Override Class<? extends Boolean> getType(); List<Block> getBlocks(); @Nullable Predicate getFilters(); Expression<UID> getContext(); @Override BooleanExpression exists(); @Override int hashCode(); @Override boolean equals(Object o); @Override String toString();  }### Answer:
@Test public void To_String() { Block block = Blocks.graph(new QNODE<UID>(UID.class, "c"), Blocks.SPO); assertEquals("GRAPH {c}{ {s} {p} {o} . }", block.toString()); }
@Test public void To_String_with_Filter() { Block block = Blocks.graphFilter(new QNODE<UID>(UID.class, "c"), Blocks.SPO, QNODE.o.isNull()); assertEquals("GRAPH {c}{ {s} {p} {o} . FILTER({o} is null) }", block.toString()); }