Marcel Grünauer > Data-Domain-SemanticAdapter > Data::Domain::SemanticAdapter

Download:
Data-Domain-SemanticAdapter-1.100840.tar.gz

Dependencies

Annotate this POD

Website

View/Report Bugs
Module Version: 1.100840   Source  

NAME ^

Data::Domain::SemanticAdapter - Adapter for Data::Semantic objects

VERSION ^

version 1.100840

DESCRIPTION ^

This class is an adapter (wrapper) that turns Data::Semantic objects into Data::Domain objects.

It, and therefore all the subclasses, support a -not_in options. If given, the data must be different from all values in the exclusion set, supplied as an arrayref.

METHODS ^

semantic_class_name

Returns the corresponding semantic class name. This method provides a default mapping, the idea of which is to mirror the layout of the Data::Semantic class tree. If you have a different mapping, override this method in a subclass.

So in the Data::Domain::URI::http class, it will return Data::Semantic::URI::http.

adaptee

Takes the results of semantic_class_name() and semantic_args(), loads the semantic data class and returns a semantic data object with the given args passed to its constructor.

semantic_args

Turns the object's options, specified via OPTIONS(), into arguments to be passed to the semantic data object's constructor. Returns a hash.

_inspect

Inspects the data using the adaptee(). See Data::Domain for more information. Respects the -not_in option and returns a EXCLUSION_SET message, if appropriate. If the adaptee() says that the data is not valid under the given options, an INVALID message is returned.

install_shortcuts

This is a convenience function (not method) that installs shortcuts into the calling package. It expects a mapping hash whose keys are the shortcuts to be created and whose values are the package names relative to Data::Domain::. See Data::Domain, section Shortcut functions for domain constructors, for more information on shortcuts.

Here is an example from Data::Domain::Net:

    our %map = (
        IPv4 => 'Net::IPAddress::IPv4',
        IPv6 => 'Net::IPAddress::IPv6',
    );

    Data::Domain::SemanticAdapter::install_shortcuts(%map);

This installs two functions, IPv4() and IPv6(), into Data::Domain::Net. Now code that wants to use network-based domain objects can just say:

    use Data::Domain::Net ':all';

    my $domain = IPv4(-not_in => [ ... ]);
    $domain->inspect(...);

INSTALLATION ^

See perlmodinstall for information and options on installing Perl modules.

BUGS AND LIMITATIONS ^

No bugs have been reported.

Please report any bugs or feature requests through the web interface at http://rt.cpan.org/Public/Dist/Display.html?Name=Data-Domain-SemanticAdapter.

AVAILABILITY ^

The latest version of this module is available from the Comprehensive Perl Archive Network (CPAN). Visit http://www.perl.com/CPAN/ to find a CPAN site near you, or see http://search.cpan.org/dist/Data-Domain-SemanticAdapter/.

The development version lives at http://github.com/hanekomu/Data-Domain-SemanticAdapter/. Instead of sending patches, please fork this project using the standard git and github infrastructure.

AUTHOR ^

  Marcel Gruenauer <marcel@cpan.org>

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2007 by Marcel Gruenauer.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

syntax highlighting: