Jakob Voß > DAIA > DAIA::Availability

Download:
DAIA-0.43.tar.gz

Dependencies

Annotate this POD

Website

View/Report Bugs
Module Version: 0.43   Source  

NAME ^

DAIA::Availability - Abstract base class of availability information

VERSION ^

version 0.43

DESCRIPTION ^

Availability in DAIA is modeled as a combination of service and status. The availability status is a boolean value - either something is available or it is not. The service must be one of presentation, loan, interloan, and openaccess or a custom URI. Additionally you can specify some details about the availability.

In general availability is encoded as an object of either DAIA::Available (status true) or DAIA::Unavailable (status false). There are several equivalent ways to define a given service as available:

  available( $service );
  available( service => $service ),
  DAIA::Available->new( $service );
  DAIA::Available->new( service => $service );

  availability( service => $service, status => 1 );
  availability( { service => $service, status => 1 } );
  availability( 1, service => $service );
  availability( $service => 1 );

Likewise there are several equivalent ways to define a service as unavailable:

  unavailable( $service );
  unavailable( service => $service ),
  DAIA::Unavailable->new( $service );
  DAIA::Unavailable->new( service => $service );

  availability( service => $service, status => 0 );
  availability( { service => $service, status => 0 } );
  availability( 0, service => $service );
  availability( $service => 0 );

PROPERTIES ^

status

Either true DAIA::Available or false DAIA::Unavailable. Modifying the status changes the object type:

  $a->status    # returns 0 or 1
  $a->status(0) # make $a a DAIA::Unavailable object
  $a->status(1) # make $a a DAIA::Available object
service

One of presentation, loan, interloan, and openaccess (highly recommended) or a custom URI (use with care). The predefined URLs with prefix http://purl.org/ontology/daia/Service/ are converted to their short form equivalent.

href

An URL to perform, register or reserve the service.

limitation

An array reference with limitations (DAIA::Limitation objects).

message

An array reference with DAIA::Message objects about this specific service.

Depending on whether the availability's status is true (available) or false (unavailable), the properties delay, queue, and expected are also possible.

CONSTRUCTOR ^

A new availability can be created with the constructors of DAIA::Availability, DAIA::Available, and DAIA::Unavailable or with the shortcut functions available, unavailable, and availability which are exported in DAIA. You can also create a new availability object with the methods addAvailable, addUnavailable, and addAvailability of DAIA::Item.

METHODS ^

DAIA::Item provides the default methods of DAIA::Object, accessor methods for all of its properties and the following methods

addMessage ( $message | ... )

Add a specified or a new DAIA::Message.

addLimitation ( $limitation | ... )

Add a specified or a new DAIA::Limitation.

status ( [ 0 | 1 ] )

Get or set the availability status (true for DAIA::Available and false for DAIA::Unavailable). This method may change the type of the object:

  $avail = available( 'loan' ); # now $avail isa DAIA::Available
  $avail->status(0);            # now $avail isa DAIA::Unavailable

FUNCTIONS ^

This package implements a duration parsing method based on code from DateTime::Format::Duration::XSD by Smal D A.

parse_duration ( $string )

Parses a XML Schema xs:duration string and returns a DateTime::Duration object or undef.

normalize_duration ( $string-or-duration-object )

Returns a normalized duration (according to XML Schema xs:duration). You can pass a duration string or a DateTime::Duration object. Returns undef on failure.

date_or_datetime ( $date_or_datetime )

Returns a canonical xs:date or xs:dateTime value or undef. You can pass a DateTime object or a string as defined in section 3.2.7.1 of the XML Schema Datatypes specification. Fractions of seconds are ignored.

AUTHOR ^

Jakob Voß

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2013 by Jakob Voß.

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: