Take me over?
NAME
KiokuDB::TypeMap - Class to collapsing/expanding logic.
VERSION
version 0.57
SYNOPSIS
use KiokuDB::TypeMap;
KiokuDB::TypeMap->new(
entries => {
'Foo' => KiokuDB::TypeMap::Entry::Naive->new,
},
isa_entries => {
'My::Class' => KiokuDB::TypeMap::Entry::Naive->new,
},
includes => [
$typemap_foo,
$typemap_bar,
],
);
DESCRIPTION
The KiokuDB typemap maps classes to KiokuDB::TypeMap::Entry objects.
The mapping is by class, and entries can be keyed normally (using ref $object
equality) or by filtering on $object->isa($class)
(isa_entries
).
ATTRIBUTES
- entries
-
A hash of normal entries.
- isa_entries
-
A hash of
$object->isa
based entries. - includes
-
A list of parent typemaps to inherit entries from.
METHODS
- resolve $class
-
Given a class returns the
KiokuDB::TypeMap::Entry
object corresponding to that class.Called by KiokuDB::TypeMap::Resolver
- resolve_entry $entry
-
If the entry is an alias, it will be resolved recursively, and simply returned otherwise.
- all_entries
-
Returns the merged
entries
from this typemap and all the included typemaps. - all_isa_entries
-
Returns the merged
isa_entries
from this typemap and all the included typemaps. - all_isa_entry_classes
-
An array reference of all the classes in
all_isa_entries
, sorted from least derived to most derived.
AUTHOR
Yuval Kogman <nothingmuch@woobling.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Yuval Kogman, Infinity Interactive.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.