Class CountText

java.lang.Object
org.apache.nifi.components.AbstractConfigurableComponent
org.apache.nifi.processor.AbstractSessionFactoryProcessor
org.apache.nifi.processor.AbstractProcessor
org.apache.nifi.processors.standard.CountText
All Implemented Interfaces:
org.apache.nifi.components.ConfigurableComponent, org.apache.nifi.processor.Processor

@SideEffectFree @SupportsBatching @Tags({"count","text","line","word","character"}) @InputRequirement(INPUT_REQUIRED) @CapabilityDescription("Counts various metrics on incoming text. The requested results will be recorded as attributes. The resulting flowfile will not have its content modified.") @WritesAttribute(attribute="text.line.count",description="The number of lines of text present in the FlowFile content") @WritesAttribute(attribute="text.line.nonempty.count",description="The number of lines of text (with at least one non-whitespace character) present in the original FlowFile") @WritesAttribute(attribute="text.word.count",description="The number of words present in the original FlowFile") @WritesAttribute(attribute="text.character.count",description="The number of characters (given the specified character encoding) present in the original FlowFile") @SeeAlso(SplitText.class) public class CountText extends org.apache.nifi.processor.AbstractProcessor
  • Field Details

    • STANDARD_CHARSETS

      private static final List<Charset> STANDARD_CHARSETS
    • SYMBOL_PATTERN

      private static final Pattern SYMBOL_PATTERN
    • WHITESPACE_ONLY_PATTERN

      private static final Pattern WHITESPACE_ONLY_PATTERN
    • TEXT_LINE_COUNT

      public static final String TEXT_LINE_COUNT
      See Also:
    • TEXT_LINE_NONEMPTY_COUNT

      public static final String TEXT_LINE_NONEMPTY_COUNT
      See Also:
    • TEXT_WORD_COUNT

      public static final String TEXT_WORD_COUNT
      See Also:
    • TEXT_CHARACTER_COUNT

      public static final String TEXT_CHARACTER_COUNT
      See Also:
    • TEXT_LINE_COUNT_PD

      public static final org.apache.nifi.components.PropertyDescriptor TEXT_LINE_COUNT_PD
    • TEXT_LINE_NONEMPTY_COUNT_PD

      public static final org.apache.nifi.components.PropertyDescriptor TEXT_LINE_NONEMPTY_COUNT_PD
    • TEXT_WORD_COUNT_PD

      public static final org.apache.nifi.components.PropertyDescriptor TEXT_WORD_COUNT_PD
    • TEXT_CHARACTER_COUNT_PD

      public static final org.apache.nifi.components.PropertyDescriptor TEXT_CHARACTER_COUNT_PD
    • SPLIT_WORDS_ON_SYMBOLS_PD

      public static final org.apache.nifi.components.PropertyDescriptor SPLIT_WORDS_ON_SYMBOLS_PD
    • CHARACTER_ENCODING_PD

      public static final org.apache.nifi.components.PropertyDescriptor CHARACTER_ENCODING_PD
    • ADJUST_IMMEDIATELY

      public static final org.apache.nifi.components.PropertyDescriptor ADJUST_IMMEDIATELY
    • PROPERTY_DESCRIPTORS

      private static final List<org.apache.nifi.components.PropertyDescriptor> PROPERTY_DESCRIPTORS
    • REL_SUCCESS

      public static final org.apache.nifi.processor.Relationship REL_SUCCESS
    • REL_FAILURE

      public static final org.apache.nifi.processor.Relationship REL_FAILURE
    • RELATIONSHIPS

      private static final Set<org.apache.nifi.processor.Relationship> RELATIONSHIPS
    • countLines

      private volatile boolean countLines
    • countLinesNonEmpty

      private volatile boolean countLinesNonEmpty
    • countWords

      private volatile boolean countWords
    • countCharacters

      private volatile boolean countCharacters
    • splitWordsOnSymbols

      private volatile boolean splitWordsOnSymbols
    • adjustImmediately

      private volatile boolean adjustImmediately
    • characterEncoding

      private volatile String characterEncoding
  • Constructor Details

    • CountText

      public CountText()
  • Method Details

    • getStandardCharsetNames

      private static Set<String> getStandardCharsetNames()
    • getRelationships

      public Set<org.apache.nifi.processor.Relationship> getRelationships()
      Specified by:
      getRelationships in interface org.apache.nifi.processor.Processor
      Overrides:
      getRelationships in class org.apache.nifi.processor.AbstractSessionFactoryProcessor
    • onSchedule

      @OnScheduled public void onSchedule(org.apache.nifi.processor.ProcessContext context)
    • onTrigger

      public void onTrigger(org.apache.nifi.processor.ProcessContext context, org.apache.nifi.processor.ProcessSession processSession) throws org.apache.nifi.processor.exception.ProcessException
      Will count text attributes of the incoming stream.
      Specified by:
      onTrigger in class org.apache.nifi.processor.AbstractProcessor
      Throws:
      org.apache.nifi.processor.exception.ProcessException
    • generateMetricsMessage

      private String generateMetricsMessage(int lineCount, int lineNonEmptyCount, int wordCount, int characterCount)
    • countWordsInLine

      int countWordsInLine(String line, boolean splitWordsOnSymbols) throws IOException
      Throws:
      IOException
    • getSupportedPropertyDescriptors

      protected List<org.apache.nifi.components.PropertyDescriptor> getSupportedPropertyDescriptors()
      Overrides:
      getSupportedPropertyDescriptors in class org.apache.nifi.components.AbstractConfigurableComponent