NAME

ETLp::File::Validate - Validate file content

SYNOPSIS

use ETLp::File::Validate;

my $val = ETLp::File::Validate->new(
    data_directory        => '/data/incoming',
    file_config_directory => "$Bin/../conf",
    file_definition       => 'file_def.cfg',
    localize              => 1,
    type                  => 'csv'
);

my $ret = $val->validate('data.txt');

unless($ret) {
    my @errors = @{$val->get_errors};
    
    foreach my $error (@errors) {
        print $error->{line_number} .": " . $error->{message}, "\n";
    }
}
...

METHODS

new

Create a validation object.

Parameters

Hash or hashref consisting of

* type: Required. The type of file (csv), fixed width
* data_directory: Optional. The directory where the files to be
  loaded are located.
* file_config_directory: Optional. The directory where the
  file_defintion file can be found.
* file_definition: Required. A file that contains a defintion
  of the validation rules. If the file_config_directory parameter
  is not set, then this must be the full path to the defintion file

Returns

* a ETLp::File::Validate object

validate

Validate the file

Parameters

* The name of the file being validated,

Returns

* Success flag (0 = fail, success = 1)

get_errors

Returns a list of error messages

Parameters

* None

Returns

* An arrayref of hashrefs. Each array elemnet is an error. Each
  hashref contains the error details
  
      o line_number: The line number where the error occurred
      o field_name: The name of the field that failed validated
      o field_value: The value in the field
      o message: The error message

config

Returns the parsed configuration used by the validation

Parameters

* None

Returns

* a ETLp::File::Config object

LICENSE AND COPYRIGHT

Copyright 2010 Redbone Systems Ltd

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

The terms are in the LICENSE file that accompanies this application