# -*-Perl-*- 
# 
# 
#######################################################################
# This software has been created by Genome Research Limited (GRL).    # 
# GRL hereby grants permission to use, copy, modify and distribute    # 
# this software and its documentation for non-commercial purposes     # 
# without fee at the user's own risk on the basis set out below.      #
# GRL neither undertakes nor accepts any duty whether contractual or  # 
# otherwise in connection with the software, its use or the use of    # 
# any derivative, and makes no representations or warranties, express #
# or implied, concerning the software, its suitability, fitness for   #
# a particular purpose or non-infringement.                           #
# In no event shall the authors of the software or GRL be responsible # 
# or liable for any loss or damage whatsoever arising in any way      # 
# directly or indirectly out of the use of this software or its       # 
# derivatives, even if advised of the possibility of such damage.     #
# Our software can be freely distributed under the conditions set out # 
# above, and must contain this copyright notice.                      #
#######################################################################

package TagManager;

##########################################
#
# Construct....
#
##########################################

sub init {
    my $self = {
	'objects' => {},
	'tagLists' => {},
    };
    bless $self;
}


sub defineTagObject {

    my ($self, $id, $args)=@_;

    foreach (keys(%{$args})) {
    	$self->{'objects'}->{$id}->{$_}=$args->{$_};
    }

}

sub getTagObjectField {

    my ($self, $id, $field)=@_;

    return $self->{'objects'}->{$id}->{$field};
    

}

sub listTagObjects {

    my ($self, $id)=@_;
    
    return (keys(%{$self->{'objects'}->{$id}}));

}

sub addTypeList {

    my $self = shift;
    %args = @_;

    my $name = $args{'Name'};
    my $colour = $args{'Colour'};
    my $desc = $args{'Description'};

    $self->{'tagList'}->{$name}=[$colour, $desc];

}

sub getTagTypes {
    
    my $self = shift;
    return $self->{'tagList'};

}



1;

