TransformHierarchy { public Node getCurrent() { return current; } TransformHierarchy(); Node pushNode(String name, PInput input, PTransform<?, ?> transform); @Internal Node pushFinalizedNode(
      String name,
      Map<TupleTag<?>, PValue> inputs,
      PTransform<?, ?> transform,
      Map<TupleTag<?>, PValue> outputs); @Internal Node addFinalizedPrimitiveNode(
      String name,
      Map<TupleTag<?>, PValue> inputs,
      PTransform<?, ?> transform,
      Map<TupleTag<?>, PValue> outputs); Node replaceNode(Node existing, PInput input, PTransform<?, ?> transform); void finishSpecifyingInput(); void setOutput(POutput output); void replaceOutputs(Map<PValue, ReplacementOutput> originalToReplacement); void popNode(); Set<PValue> visit(PipelineVisitor visitor); Node getCurrent();  }
@Test public void getCurrentNoPushReturnsRoot() { assertThat(hierarchy.getCurrent().isRootNode(), is(true)); }