Biblio::SICI::ItemSegment(3pm)

NAME
Biblio::SICI::ItemSegment - The item segment of a SICI

VERSION
version 0.04

SYNOPSIS
  my $sici = Biblio::SICI->new();

  $sici->item->issn('2232-7651');

DESCRIPTION
Please note: You are expected to not directly instantiate objects of this class!

The item segment of a SICI describes various aspects of the serial item referenced by the SICI. Unlike the contribution segment, which may be empty, the item segment is required!

ATTRIBUTES
For each attribute, clearer ("clear_") and predicate ("has_") methods are provided.

"issn"
    The ISSN of the serial.

"chronology"
    Identifies a specific date - usually the cover date - for an item of a serial title. Follows the format "YYYYMMDD" with only the applicable levels being used. For "MM", in addition to 01 to 12, the values 21 to 24 represent seasons (Spring, Summer, Fall, Winter) and the values 31 to 34 represent the four quarters of a year.

"enumeration"
    Describes, which item of the serial is referenced. The most common way of identifying an item is using a combination of volume and issue numbers, which is why there are separate attributes for these kinds of data.

    Please not that setting a value for "enumeration" means that any value present in the attributes "volume", "issue" or "supplOrIdx" gets removed!

"volume"
    The volume designation of the serial item.

    Please note that setting a value for this attribute automatically clears the "enumeration" attribute.

"issue"
    The issue designation of the serial item.

    Please note that setting a value for this attribute automatically clears the "enumeration" attribute.

"supplOrIdx"
    A one character code to describe if the SICI refers to either a supplement of the described item (represented as '+') or to an index (represented as '*') which is published independently from a regular item.

    (If you wish to refer to an index within an item please have a look at the "dpi" attribute of the control segment!)

    Please note that setting a value for this attribute automatically clears the "enumeration" attribute.

METHODS

LIST "year"()
    Extracts the year info from the "chronology" attribute. Returns "undef" if no chronology has been set. May return either one or two values, depending on the given chronology. E.g.:

    •   if the chronology value is 199624/199721 (an item published Winter 1996 / Spring 1997) this method will return "(1996, 1997)"

    •   if the chronology value is 20021201 (item published on Dec. 1st, 2002) this method will return "(2002)"

LIST "month"()
    Extracts the month(s) from the chronology. Returns "undef" if no chronology has been set or no month info is available from the chronology. May return either one or two values, depending on the given chronology. Each value may be in the ranges 01 to 12, or 21 to 24, or 31 to 34; with 21 to 24 being the codes for the seasons Spring, Summer, Fall, and Winter and 31 to 34 being the codes for the four quarters of a year (cf. the info on the "chronology" attribute). E.g.:

    •   if the chronology value is 199911/12 (an item published November / December 1999) this method will return "(11, 12)"

    •   if the chronology value is 20021201 (item published on Dec. 1st, 2002) this method will return "(12)"

    •   if the chronology value is 200721/22 (an item published Spring / Summer 2007) this method will return "(21, 22)"

LIST "day"()
    Extracts the days(s) from the chronology. Returns "undef" if no chronology has been set or no day info is available from the chronology. May return either one or two values, depending on the given chronology. E.g.:

    •   if the chronology value is 19991101/02 (an item published November 1st / November 2nd 1999) this method will return "(01, 02)" (note the leading zeroes!); day spans are quite unlikely, but not prohibited

    •   if the chronology value is 20021201 (item published on Dec. 1st, 2002) this method will return "(01)"

STRING "to_string"()
    Returns a stringified representation of the data in the item segment.

"reset"()
    Resets all attributes to their default values.

BOOL "is_valid"()
    Checks if the data for the control segment conforms to the standard.

SEE ALSO
Biblio::SICI::Role::ValidSegment

AUTHOR
Heiko Jansen <hjansen@cpan.org>

COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Heiko Jansen.

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