#------------------------------------------------------------
# Copyright (C) 2009 RoyaltyShare, Inc.   All Rights Reserved
#------------------------------------------------------------

package Common::Translator::Version;

#
# Common::Translator::Version
#
# This class provides an interface to map versions of datafiles
# to common data formats
#

use strict;

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

sub hasHeader { }

sub new {
    my $class = shift;

    my $self = {};
    bless $self, $class;

    return $self->_init(@_);
}

sub _init {
    my ( $self, %args ) = @_;

    $self->parser( $args{parser} );

    return $self;
}

sub validate { die "Must be overload" }

sub error { shift->{_error} }

sub parser {
    my $self   = shift;
    my $parser = shift;

    if ($parser) {
        $self->{_parser} = $parser;

        $self->_buildIndex();

        $self->validate();
    }

    return $self->{_parser};
}

sub _buildIndex { die "Must be overloaded" }
###
1;    # Play nicely.
###
