Alvis-Convert
view release on metacpan or search on metacpan
lib/Alvis/Document/Meta.pm view on Meta::CPAN
"doc-rights" => "dc:rights",
"page-topic" => "dc:subject",
"keyword" => "dc:subject",
"document-rights" => "dc:rights",
"keywords " => "dc:subject",
"resource-type " => "dc:type",
"summary" => "dc:description",
"creation-date" => "dc:date",
"type " => "dc:type",
"document-classification" => "dc:subject",
"country" => "dc:coverage",
"progid" => "dc:format",
"content-language " => "dc:language",
"title " => "dc:title",
"created" => "dc:date",
"doc-type" => "dc:type",
"mimetype" => "dc:type",
"server"=>"server"
);
my %DCMap=(
"dc:coverage" => "dc:coverage",
"dc:date.x-metadatalastmodified" => "dc:date",
"dc:language" => "dc:language",
"dc:title" => "dc:title",
"dc:date.created" => "dc:date",
"dc:format" => "dc:format",
"dc:description" => "dc:description",
"dc:source" => "dc:source",
"dc:date.modified" => "dc:date",
"dc:creator" => "dc:creator",
"dc:coverage.placename" => "dc:coverage",
"dc:rights" => "dc:rights",
"dc:subject" => "dc:subject",
"dc:contributor" => "dc:contributor",
"dc:type" => "dc:type",
"dc:identifier" => "dc:identifier",
"dc:publisher" => "dc:publisher",
"dc:date" => "dc:date"
);
#########################################################################
my ($ERR_OK,
$ERR_UNK_FIELD_NAME,
$ERR_PARSE
)=(0..2);
my %ErrMsgs=($ERR_OK=>"",
$ERR_UNK_FIELD_NAME=>"Unrecognized field name.",
$ERR_PARSE=>"Parsing the meta text failed."
);
sub new
{
my $proto=shift;
my $class=ref($proto)||$proto;
my $parent=ref($proto)&&$proto;
my $self={};
bless($self,$class);
$self->_set_err_state($ERR_OK);
$self->_init(@_);
if (defined($self->{text}))
{
if (!$self->parse($self->{text}))
{
$self->_set_err_state($ERR_PARSE,
"Text:\"$self->{text}\".");
return undef;
}
}
return $self;
}
sub _init
{
my $self=shift;
if (defined(@_))
{
my %args=@_;
@$self{ keys %args }=values(%args);
}
}
sub _set_err_state
{
my $self=shift;
my $errcode=shift;
my $errmsg=shift;
if (!defined($errcode))
{
confess("set_err_state() called with an undefined argument.");
}
if (exists($ErrMsgs{$errcode}))
{
if ($errcode==$ERR_OK)
{
$self->{errstr}="";
}
else
{
$self->{errstr}.=" " . $ErrMsgs{$errcode};
if (defined($errmsg))
{
$self->{errstr}.=" " . $errmsg;
}
}
}
else
{
confess("Internal error: set_err_state() called with an " .
"unrecognized argument ($errcode).")
( run in 1.743 second using v1.01-cache-2.11-cpan-39bf76dae61 )