Class ValidateCsv

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

@SideEffectFree @SupportsBatching @InputRequirement(INPUT_REQUIRED) @Tags({"csv","schema","validation"}) @CapabilityDescription("Validates the contents of FlowFiles or a FlowFile attribute value against a user-specified CSV schema. Take a look at the additional documentation of this processor for some schema examples.") @WritesAttribute(attribute="count.valid.lines",description="If line by line validation, number of valid lines extracted from the source data") @WritesAttribute(attribute="count.invalid.lines",description="If line by line validation, number of invalid lines extracted from the source data") @WritesAttribute(attribute="count.total.lines",description="If line by line validation, total number of lines in the source data") @WritesAttribute(attribute="validation.error.message",description="For flow files routed to invalid, message of the first validation error") public class ValidateCsv extends org.apache.nifi.processor.AbstractProcessor
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    private class 
    This is required to avoid the side effect of Parse* cell processors.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static final List<String>
     
    static final org.apache.nifi.components.PropertyDescriptor
     
    static final org.apache.nifi.components.PropertyDescriptor
     
    static final org.apache.nifi.components.PropertyDescriptor
     
    static final org.apache.nifi.components.PropertyDescriptor
     
    static final org.apache.nifi.components.PropertyDescriptor
     
    static final org.apache.nifi.components.PropertyDescriptor
     
    private static final List<org.apache.nifi.components.PropertyDescriptor>
     
    static final org.apache.nifi.components.PropertyDescriptor
     
    static final org.apache.nifi.processor.Relationship
     
    static final org.apache.nifi.processor.Relationship
     
    private static final Set<org.apache.nifi.processor.Relationship>
     
    private static final String
     
    private static final String
     
    static final org.apache.nifi.components.PropertyDescriptor
     
    static final org.apache.nifi.components.AllowableValue
     
    static final org.apache.nifi.components.AllowableValue
     
    static final org.apache.nifi.components.PropertyDescriptor
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected Collection<org.apache.nifi.components.ValidationResult>
    customValidate(org.apache.nifi.components.ValidationContext context)
     
    org.supercsv.prefs.CsvPreference
    getPreference(org.apache.nifi.processor.ProcessContext context, org.apache.nifi.flowfile.FlowFile flowFile)
     
    private org.supercsv.cellprocessor.ift.CellProcessor
    getProcessor(String method, String argument)
     
    Set<org.apache.nifi.processor.Relationship>
     
    protected List<org.apache.nifi.components.PropertyDescriptor>
     
    void
    onTrigger(org.apache.nifi.processor.ProcessContext context, org.apache.nifi.processor.ProcessSession session)
     
    private org.supercsv.cellprocessor.ift.CellProcessor[]
    Method used to parse the string supplied by the user.
    private byte[]
    print(String row, org.supercsv.prefs.CsvPreference csvPref, boolean isFirstLine)
     
    private String
    setProcessor(String remaining, List<org.supercsv.cellprocessor.ift.CellProcessor> processorsList)
     

    Methods inherited from class org.apache.nifi.processor.AbstractProcessor

    onTrigger

    Methods inherited from class org.apache.nifi.processor.AbstractSessionFactoryProcessor

    getControllerServiceLookup, getIdentifier, getLogger, getNodeTypeProvider, init, initialize, isConfigurationRestored, isScheduled, toString, updateConfiguredRestoredTrue, updateScheduledFalse, updateScheduledTrue

    Methods inherited from class org.apache.nifi.components.AbstractConfigurableComponent

    equals, getPropertyDescriptor, getPropertyDescriptors, getSupportedDynamicPropertyDescriptor, hashCode, onPropertyModified, validate

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait

    Methods inherited from interface org.apache.nifi.components.ConfigurableComponent

    getPropertyDescriptor, getPropertyDescriptors, onPropertyModified, validate

    Methods inherited from interface org.apache.nifi.processor.Processor

    isStateful, migrateProperties, migrateRelationships
  • Field Details

    • ALLOWED_OPERATORS

      private static final List<String> ALLOWED_OPERATORS
    • ROUTE_WHOLE_FLOW_FILE

      private static final String ROUTE_WHOLE_FLOW_FILE
      See Also:
    • ROUTE_LINES_INDIVIDUALLY

      private static final String ROUTE_LINES_INDIVIDUALLY
      See Also:
    • VALIDATE_WHOLE_FLOWFILE

      public static final org.apache.nifi.components.AllowableValue VALIDATE_WHOLE_FLOWFILE
    • VALIDATE_LINES_INDIVIDUALLY

      public static final org.apache.nifi.components.AllowableValue VALIDATE_LINES_INDIVIDUALLY
    • SCHEMA

      public static final org.apache.nifi.components.PropertyDescriptor SCHEMA
    • QUOTE_CHARACTER

      public static final org.apache.nifi.components.PropertyDescriptor QUOTE_CHARACTER
    • MAX_LINES_PER_ROW

      public static final org.apache.nifi.components.PropertyDescriptor MAX_LINES_PER_ROW
    • DELIMITER_CHARACTER

      public static final org.apache.nifi.components.PropertyDescriptor DELIMITER_CHARACTER
    • END_OF_LINE_CHARACTER

      public static final org.apache.nifi.components.PropertyDescriptor END_OF_LINE_CHARACTER
    • VALIDATION_STRATEGY

      public static final org.apache.nifi.components.PropertyDescriptor VALIDATION_STRATEGY
    • CSV_SOURCE_ATTRIBUTE

      public static final org.apache.nifi.components.PropertyDescriptor CSV_SOURCE_ATTRIBUTE
    • INCLUDE_ALL_VIOLATIONS

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

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

      public static final org.apache.nifi.processor.Relationship REL_VALID
    • REL_INVALID

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

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

    • ValidateCsv

      public ValidateCsv()
  • Method Details

    • 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
    • getSupportedPropertyDescriptors

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

      protected Collection<org.apache.nifi.components.ValidationResult> customValidate(org.apache.nifi.components.ValidationContext context)
      Overrides:
      customValidate in class org.apache.nifi.components.AbstractConfigurableComponent
    • getPreference

      public org.supercsv.prefs.CsvPreference getPreference(org.apache.nifi.processor.ProcessContext context, org.apache.nifi.flowfile.FlowFile flowFile)
    • parseSchema

      private org.supercsv.cellprocessor.ift.CellProcessor[] parseSchema(String schema)
      Method used to parse the string supplied by the user. The string is converted to a list of cell processors used to validate the CSV data.
      Parameters:
      schema - Schema to parse
    • setProcessor

      private String setProcessor(String remaining, List<org.supercsv.cellprocessor.ift.CellProcessor> processorsList)
    • getProcessor

      private org.supercsv.cellprocessor.ift.CellProcessor getProcessor(String method, String argument)
    • onTrigger

      public void onTrigger(org.apache.nifi.processor.ProcessContext context, org.apache.nifi.processor.ProcessSession session)
      Specified by:
      onTrigger in class org.apache.nifi.processor.AbstractProcessor
    • print

      private byte[] print(String row, org.supercsv.prefs.CsvPreference csvPref, boolean isFirstLine)