/usr/local/CPAN/Biblio-ILL-ISO/Biblio/ILL/ISO/ILLString.pm
package Biblio::ILL::ISO::ILLString;
use Biblio::ILL::ISO::ILLASNtype;
use Carp;
our $VERSION = '0.01';
#---------------------------------------------------------------------------
# Mods
# 0.01 - 2003.07.15 - original version
#---------------------------------------------------------------------------
BEGIN{@ISA = qw ( Biblio::ILL::ISO::ILLASNtype );} # inherit from ILLASNtype
# From the ASN
#
#ILL-String ::= CHOICE {
# generalstring GeneralString,
# -- may contain any ISO registered G (graphic) and C
# -- (control) character set
# edifactstring EDIFACTString
# }
# -- may not include leading or trailing spaces
# -- may not consist only of space (" ") or non-printing
# -- characters
#---------------------------------------------------------------
#
#---------------------------------------------------------------
sub new {
my $class = shift;
my $self = {};
if (@_) {
$self->{"generalstring"} = shift;
}
bless($self, ref($class) || $class);
return ($self);
}
#---------------------------------------------------------------
#
#---------------------------------------------------------------
sub set {
my $self = shift;
my ($s) = @_;
$self->{generalstring} = $s;
return;
}
#---------------------------------------------------------------
#
#---------------------------------------------------------------
sub set_general {
my $self = shift;
my ($s) = @_;
$self->{generalstring} = $s;
return;
}
#---------------------------------------------------------------
#
#---------------------------------------------------------------
sub set_edifact {
my $self = shift;
my ($s) = @_;
$self->{EDIFACTstring} = $s;
return;
}
#---------------------------------------------------------------
#
#---------------------------------------------------------------
sub as_string {
my $self = shift;
return $self->{generalstring} if ($self->{generalstring});
return $self->{EDIFACTstring} if ($self->{EDIFACTstring});
return "";
}
#---------------------------------------------------------------
#
#---------------------------------------------------------------
sub from_asn {
my $self = shift;
my $href = shift;
foreach my $k (keys %$href) {
#print ref($self) . "...$k\n";
if (($k =~ /^generalstring$/)
|| ($k =~ /^edifactstring$/)
) {
#print " $href->{$k}\n";
$self->{$k} = $href->{$k};
} else {
croak "invalid " . ref($self) . " element: [$k]";
}
}
return $self;
}
1;