package GO::GOGeneAssociation;
use strict;
use GO::GOTerm;
sub new
{
    my ($type,%params) = @_;
    my $self = {};
   # my $goterm = new GO::GOTerm(id => "$params{goid}");
    $self->{'gene'}=undef;
    $self->{'goterm'}= new GO::GOTerm(id => "$params{goid}");
    $self->{'evidence_code'} = $params{'evcode'};
    $self->{'isnot'}=$params{'isnot'};
    #my $reference = new Reference;
    $self->{'reference'}= undef; # \$reference;
    $self->{'date_created'} = undef;
    $self->{'created_by'} = undef;
    bless $self, $type;
    return $self;
}

sub gene {
    my $obj = shift;
    @_ ? $obj->{goterm} = shift
       : $obj->{goterm};
}


sub goterm {
    my $obj = shift;
    @_ ? $obj->{goterm} = shift
       : $obj->{goterm};
}

sub evidence_no {
    my $obj = shift;
    @_ ? $obj->{evidence_no} = shift
       : $obj->{evidence_no};
}

sub isnot {
    my $obj = shift;
    @_ ? $obj->{isnot} = shift
       : $obj->{isnot};
}

sub reference {
    my $obj = shift;
    @_ ? $obj->{reference} = shift
       : $obj->{reference};
}

sub date_created {
    my $obj = shift;
    @_ ? $obj->{date_created} = shift
       : $obj->{date_created};
}

sub created_by {
    my $obj = shift;
    @_ ? $obj->{created_by} = shift
       : $obj->{created_by};
}

sub hostdb {
     my $obj = shift;
    @_ ? $obj->{hostdb} = shift
       : $obj->{hostdb};
}
sub hostdbid {
     my $obj = shift;
    @_ ? $obj->{hostdbid} = shift
       : $obj->{hostdbid};
}
sub spid {
     my $obj = shift;
    @_ ? $obj->{spid} = shift
       : $obj->{spid};
}
sub spsymbol {
    my $obj = shift;
    @_ ? $obj->{spsymbol} = shift
       : $obj->{spsymbol};

}
sub spdescriptor {
    my $obj = shift;
    @_ ? $obj->{spdescriptor} = shift
       : $obj->{spdescriptor};
}
1;