Interface Tree

All Known Subinterfaces:
Remote, SourceFile
All Known Implementing Classes:
Binary, ParseError, PlainText, PlainText.Snippet, Quark, RemoteArchive, RemoteFile

public interface Tree
  • Method Details

    • getJacksonPolymorphicTypeTag

      default String getJacksonPolymorphicTypeTag()
    • randomId

      static UUID randomId()
    • getId

      UUID getId()
      An id that can be used to identify a particular AST element, even after transformations have taken place on it
      Returns:
      A unique identifier
    • getMarkers

      Markers getMarkers()
    • withMarkers

      <T extends Tree> T withMarkers(Markers markers)
    • withId

      <T extends Tree> T withId(UUID id)
    • accept

      @Nullable default <R extends Tree, P> R accept(TreeVisitor<R,P> v, P p)
      Supports polymorphic visiting via TreeVisitor.visit(Tree, Object). This is useful in cases where an AST type contains a field that is of a type with a hierarchy. The visitor doesn't have to figure out which visit method to call by using instanceof.
      Type Parameters:
      R - visitor return type
      P - visit context type
      Parameters:
      v - visitor
      p - visit context
      Returns:
      visitor result
    • isAcceptable

      <P> boolean isAcceptable(TreeVisitor<?,P> v, P p)
      Checks the supplied argument to see if the supplied visitor and its context would be valid arguments to accept(). Typically this involves checking that the visitor is of a type that operates on this kind of tree. e.g.: A Java Tree implementation would return true for JavaVisitors and false for MavenVisitors
      Type Parameters:
      P - the visitor's context argument
      Returns:
      'true' if the arguments to this function would be valid arguments to accept()
    • printer

      default <P> TreeVisitor<?,PrintOutputCapture<P>> printer(Cursor cursor)
    • print

      default String print(Cursor cursor)
    • print

      default <P> String print(Cursor cursor, PrintOutputCapture<P> out)
    • print

      default <P> String print(TreeVisitor<?,PrintOutputCapture<Integer>> printer)
    • printTrimmed

      default <P> String printTrimmed(P p, Cursor cursor)
    • printTrimmed

      default String printTrimmed(Cursor cursor)
    • printTrimmed

      default String printTrimmed(TreeVisitor<?,PrintOutputCapture<Integer>> printer)
    • isScope

      default boolean isScope(@Nullable @Nullable Tree tree)
    • cast

      default <T2 extends Tree> T2 cast()
    • safeCast

      @Nullable default <T2 extends Tree> T2 safeCast()