יובל קוג'מן (Yuval Kogman) > KiokuDB-0.51 > KiokuDB::TypeMap

Download:
KiokuDB-0.51.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  3
Open  2
View/Report Bugs
Source   Latest Release: KiokuDB-0.57

NAME ^

KiokuDB::TypeMap - Class to collapsing/expanding logic.

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.

syntax highlighting: