Class DataObjectDeque

java.lang.Object
io.smallrye.openapi.runtime.scanner.dataobject.DataObjectDeque

public class DataObjectDeque extends Object
Deque for exploring object graph.
Author:
Marc Savy <marc@rhymewithgravy.com>
  • Constructor Details

  • Method Details

    • size

      public int size()
      Returns:
      the number of elements in this Deque
      See Also:
    • isEmpty

      public boolean isEmpty()
      Returns:
      true if no elements in this Deque
      See Also:
    • peek

      Look at top of stack, but don't remove.
      Returns:
      the top element of the stack
      See Also:
    • push

      public void push(DataObjectDeque.PathEntry entry)
      Push entry to stack. Does not perform cycle detection.
      Parameters:
      entry - the entry
      See Also:
    • pop

      Remove and return top element from stack.
      Returns:
      the top element of the stack
      See Also:
    • push

      public void push(org.jboss.jandex.AnnotationTarget annotationTarget, DataObjectDeque.PathEntry parentPathEntry, org.jboss.jandex.Type type, org.eclipse.microprofile.openapi.models.media.Schema schema)
      Create new entry and push to stack. Performs cycle detection.
      Parameters:
      annotationTarget - annotation target
      parentPathEntry - parent path entry
      type - the annotated type
      schema - the schema corresponding to this position
    • rootNode

      public DataObjectDeque.PathEntry rootNode(org.jboss.jandex.AnnotationTarget annotationTarget, org.jboss.jandex.ClassInfo classInfo, org.jboss.jandex.Type type, org.eclipse.microprofile.openapi.models.media.Schema rootSchema)
      Create a root node (first entry in graph).
      Parameters:
      annotationTarget - annotation target
      classInfo - the root classInfo
      type - the annotated type
      rootSchema - the schema corresponding to this position
      Returns:
      a new root node
    • leafNode

      public DataObjectDeque.PathEntry leafNode(DataObjectDeque.PathEntry parentNode, org.jboss.jandex.AnnotationTarget annotationTarget, org.jboss.jandex.Type classType, org.eclipse.microprofile.openapi.models.media.Schema schema)
      Create a leaf node (i.e. is attached to a parent)
      Parameters:
      parentNode - parent node
      annotationTarget - annotation target
      classType - the class type
      schema - the schema
      Returns:
      the new leaf node