package Common::Parser::Item::Row;
use strict;

use lib '/app/tools/common/lib';
use Common::Assert;
use Common::Log;

use base 'Common::Parser::Item';

sub _init {
    my $self = shift;
    my %args = @_;

    assert( $args{row},                   "No row data" );
    assert( ref( $args{row} ) eq 'ARRAY', "Not an array ref" );

    $self->{_data} = $args{row};

    return $self;
}

sub getAllColumns {
    my ($self) = @_;

    return $self->{_data};
}

sub getColumn {
    my ( $self, $index ) = @_;

    assert( defined($index), "Index required" );

    return unless ( $self->{_data} );

    return ${ $self->{_data} }[$index];
}

sub columnCount {
    my $self = shift;
    return 0 unless ( $self->{_data} );

    return @{ $self->{_data} };
}

sub isEmpty {
    my $self = shift;

    return unless ( $self->{_data} );

    foreach my $col ( @{ $self->{_data} } ) {
        return if ($col);
    }

    return 1;
}

###
1;    # Play nicely.
###
