NAME
DTA::CAB::Format::Registry - registry for DTA::CAB I/O formats
SYNOPSIS
##========================================================================
## Constructors etc.
$reg
= DTA::CAB::Format::Registry->new(
%args
);
$reg
=
$reg
->clear();
$reg
=
$reg
->refresh();
$reg
=
$reg
->compile(
%opts
);
\
%classReg
=
$reg
->register(
%classReg
);
##========================================================================
## Methods: Access
\
%classReg_or_undef
=
$reg
->lookup(
%opts
);
$fmt
=
$reg
->newFormat(
$class_or_short_or_suffix
,
%opts
);
$class_or_undef
=
$reg
->readerClass(
$class_or_short_or_suffix
);
$class_or_undef
=
$reg
->writerClass(
$class_or_short_or_suffix
);
$fmt
=
$reg
->newReader(
%opts
);
$fmt
=
$reg
->newWriter(
%opts
);
$readerClass_or_undef
=
$CLASS_OR_OBJ
->fileReaderClass(
$filename
);
$readerClass_or_undef
=
$CLASS_OR_OBJ
->fileWriterClass(
$filename
);
\
%classReg_or_undef
=
$reg
->guessFilenameFormat(
$filename
);
\
%classReg_or_undef
=
$reg
->short2reg(
$shortname
);
\
%classReg_or_undef
=
$reg
->base2reg(
$basename
);
DESCRIPTION
DTA::CAB::Format::Registry provides an object-oriented API for maintainence and easy access to a set of DTA::CAB::Format subclasses.
Constructors etc.
- new
-
$reg
= DTA::CAB::Format::Registry->new(
%args
);
%$obj, %args:
reg
=> [\
%classReg
, ...],
##-- registered classes
short2reg
=> {
$short
=>\
%classReg
, ...},
##-- short names to registry entries
base2reg
=> {
$base
=>\
%classReg
, ...},
##-- base names to registry entries
each \%classReg is a HASH-ref of the form:
name
=>
$basename
,
##-- basename for the class (package name)
short
=>
$shortname
,
##-- short name for the class (default = package name suffix, lower-cased)
readerClass
=>
$readerClass
,
##-- default: $base ##-- NYI
writerClass
=>
$writerClass
,
##-- default: $base ##-- NYI
filenameRegex
=>
$regex
,
##-- filename regex for guessFilename()
See also "register".
- refresh
-
$reg
=
$reg
->clear();
Clears the registry.
- refresh
-
$reg
=
$reg
->refresh();
Re-registers all formats in $reg->{reg}.
- compile
-
$reg
=
$reg
->compile(
%opts
);
Adds the following keys to each registry item \%classReg:
reader
=>
$readerObj
,
##-- = $classReg{readerClass}->new(%opts)
writer
=>
$writerObj
,
##-- = $classReg{writerClass}->new(%opts)
- register
-
\
%classReg
=
$reg
->register(
%classReg
);
%classReg:
name
=>
$basename
,
##-- basename for the class (package name): REQUIRED
short
=>
$shortname
,
##-- short name for the class (default = package name suffix, lower-cased)
readerClass
=>
$readerClass
,
##-- default: $base ##-- NYI
writerClass
=>
$writerClass
,
##-- default: $base ##-- NYI
filenameRegex
=>
$regex
,
##-- filename regex for guessFilenameFormat()
Methods: Access
- lookup
-
\
%classReg_or_undef
=
$reg
->lookup(
%opts
);
Get the most recently registered entry for %opts, which may contain (in order of decreasing priority):
class
=>
$class
,
##-- short name, basename, or "DTA::CAB::Format::" suffix
file
=>
$filename
,
##-- attempt to guess format from $filename
- newFormat
-
$fmt
=
$reg
->newFormat(
$class_or_short_or_suffix
,
%opts
);
Creates a new format of the registered base class matching $class_or_short_or_suffix; backwards-compatible.
- readerClass
-
$class_or_undef
=
$reg
->readerClass(
$class_or_short_or_suffix
);
Get registered reader class for $class_or_short_or_suffix
- writerClass
-
$class_or_undef
=
$reg
->writerClass(
$class_or_short_or_suffix
);
Get registered writer class for $class_or_short_or_suffix
- newReader
-
$fmt
=
$reg
->newReader(
%opts
);
Create and return a new reader object. %opts may contain any %lookup options (class,file), and are otherwise passed to READERCLASS->new()
- newWriter
-
$fmt
=
$reg
->newWriter(
%opts
);
Create and return a new writer object. %opts may contain any %lookup options (class,file), and are otherwise passed to WRITERCLASS->new().
- fileReaderClass
-
$readerClass_or_undef
=
$CLASS_OR_OBJ
->fileReaderClass(
$filename
);
Backkwards-compatible wrapper for lookup(); attempts to guess reader class name from $filename.
- fileWriterClass
-
$readerClass_or_undef
=
$CLASS_OR_OBJ
->fileWriterClass(
$filename
);
Backwards-compatible wrapper for lookup(); attempts to guess writer class name from $filename.
- guessFilenameFormat
-
\
%classReg_or_undef
=
$reg
->guessFilenameFormat(
$filename
);
Backwards-compatible wrapper for $reg->lookup(file=>$filename).
- short2reg
-
\
%classReg_or_undef
=
$reg
->short2reg(
$shortname
);
Gets registry entry for short name $shortname.
- base2reg
-
\
%classReg_or_undef
=
$reg
->base2reg(
$basename
);
Gets registry entry for class basename $basename.
AUTHOR
Bryan Jurish <moocow@cpan.org>
COPYRIGHT AND LICENSE
Copyright (C) 2011-2019 by Bryan Jurish
This package is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.24.1 or, at your option, any later version of Perl 5 you may have available.
SEE ALSO
dta-cab-convert.perl(1), DTA::CAB::Format(3pm), DTA::CAB(3pm), perl(1), ...