package Opals::SIF::SIFObjectDataParser;

# Version number
$VERSION   = 0.01;


use warnings;
use strict;
use XML::Simple;
use XML::XPath;
use Opals::SIF::Specs;

sub new {
    my ($class) = @_;
    my $self={};
    bless $self, $class;
    return $self;
}
my $objecSpecMap={
    StudentPersonal         => STUDENTPERSONAL,
    StaffPersonal           => STAFFPERSONAL,
    RoomInfo                => ROOMINFO,
    SchoolInfo              => SCHOOLINFO,
    StudentSchoolEnrollment => STUDENTSCHOOLENROLLMENT

};
#################################################################
sub parse{
    my($self,$xml,$sifVersion)=@_;
    my $objData={};
    my $xmlObj =XML::XPath->new(xml=>$xml);
    #get object name
    my ($node)=$xmlObj->findnodes("/*");
    my $objName=$node->getName();
    my $spec =$objecSpecMap->{$objName}->{$sifVersion};
    if(defined $spec){
        foreach my $fname(keys %$spec){
            if($xmlObj->exists($spec->{$fname})){
               $objData->{$fname}="" .$xmlObj->getNodeText($spec->{$fname});
            }
        }
    }
    return $objData;
}
#
#################################################################
1;

