NAME

DAIA::Object - Abstract base class of all DAIA classes

DESCRIPTION

This package implements just another Perl meta-class framework. Just ignore it unless you have a clue what "meta-class framework" could mean. Some concepts are borrowed from the mighty Moose object system but this framework is much smaller. Maybe you should better have a look at Moose and stop reading now.

In a nutshell DAIA::Object handles all method calls via AUTOLOAD. Each derived package must provide a %PROPERTIES hash that defines an object's attributes. Each property is defined by a hash that must either contain a type value pointing to a class name (typed property) or a filter value containing a plain value ar a filter method (untyped property).

METHDOS

Constructor methods

All derived DAIA classed use this constructor. As DAIA::Object is an abstract base class directly calling is of little use.

new ( ..attributes... )

Constructs a new DAIA object. Unknown properties are ignored.

Modification methods

add ( ... )

Adds typed properties to an object.

Serialization methods

A DAIA object can be serialized by the following methods:

xml ( [ $xmlns ] )

Returns the object in DAIA/XML. If you specify xmlns as parameter, then a namespace declaration is added.

struct ( [ $json ] )

Returns the object as unblessed Perl data structure. If you specify a true parameter, only boolean values will be kept as blessed JSON::Boolean objects (see JSON). The label property will only be included unless it is not the empty string.

json ( [ $callback ] )

Returns the object in DAIA/JSON, optionally wrapped by a JavaScript callback function call. Invalid callback names are ignored without warning.

INTERNAL METHODS

The following methods are only used internally; don't directly call or modify them unless you want to damage data integrity or to fix a bug!

AUTOLOAD

Called if an unknown method is called. Almost all method calls go through this magic method. Thanks, AUTOLOAD, thanks Perl.

xml_write ( $roottag, $content, $level )

Simple, adopted XML::Simple::XMLOut replacement with support of element order

xml_escape_value ( $string )

Escape special XML characters.

_buildargs

Returns a property-value hash of constructor parameters.

BUGS

The XML serialization does not use the right element order and there is no strict parsing mode yet. More examples will be included too.

AUTHOR

Jakob Voss <jakob.voss@gbv.de>

LICENSE

Copyright (C) 2009 by Verbundzentrale Goettingen (VZG) and Jakob Voss

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.