Interface FlowFile

All Superinterfaces:
Comparable<FlowFile>

public interface FlowFile extends Comparable<FlowFile>

A flow file is a logical notion of an item in a flow with its associated attributes and identity which can be used as a reference for its actual content.

All FlowFile implementations must be Immutable - Thread safe.
  • Method Details

    • getId

      long getId()
      Returns:
      the unique identifier for this flow file which is guaranteed to be unique within a single running instance of nifi. This identifier should not be used for true universal unique type needs. For that consider using the attribute found in the flow file's attribute map keyed by
      invalid reference
      CoreAttributes.UUID
      . For example, by calling getAttribute(CoreAttributes.UUID.key()).
    • getEntryDate

      long getEntryDate()
      Returns:
      the date at which the flow file entered the flow
    • getLineageStartDate

      long getLineageStartDate()
      Returns:
      the date at which the origin of this FlowFile entered the flow. For example, if FlowFile Z were derived from FlowFile Y and FlowFile Y was derived from FlowFile X, this date would be the entryDate (see getEntryDate() of FlowFile X.
    • getLineageStartIndex

      long getLineageStartIndex()
      Returns a 64-bit integer that indicates the order in which the FlowFile was added to the flow with respect to other FlowFiles that have the same last lineage start date. I.e., if two FlowFiles return the same value for getLineageStartDate(), the order in which those FlowFiles were added to the flow can be determined by looking at the result of this method. However, no guarantee is made by this method about the ordering of FlowFiles that have different values for the getLineageStartDate() method.
      Returns:
      the index that can be used to compare two FlowFiles with the same lineage start date to understand the order in which the two FlowFiles were enqueued.
    • getLastQueueDate

      Long getLastQueueDate()
      Returns:
      the time at which the FlowFile was most recently added to a FlowFile queue, or null if the FlowFile has never been enqueued. This value will always be populated before it is passed to a FlowFilePrioritizer
    • getQueueDateIndex

      long getQueueDateIndex()
      Returns a 64-bit integer that indicates the order in which the FlowFile was added to the FlowFile queue with respect to other FlowFiles that have the same last queue date. I.e., if two FlowFiles return the same value for getLastQueueDate(), the order in which those FlowFiles were enqueued can be determined by looking at the result of this method. However, no guarantee is made by this method about the ordering of FlowFiles that have different values for the getLastQueueDate() method.
      Returns:
      the index that can be used to compare two FlowFiles with the same last queue date to understand the order in which the two FlowFiles were enqueued.
    • isPenalized

      boolean isPenalized()
      Returns:
      true if flow file is currently penalized; false otherwise;
    • getAttribute

      String getAttribute(String key)
      Obtains the attribute value for the given key
      Parameters:
      key - of the attribute
      Returns:
      value if found; null otherwise
    • getSize

      long getSize()
      Returns:
      size of flow file contents in bytes
    • getAttributes

      Map<String,String> getAttributes()
      Returns:
      an unmodifiable map of the flow file attributes