KiokuDB::TypeMap(3) 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 <[email protected]>

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.