Provided by: libstar-parser-perl_0.59-4_all bug

NAME

       STAR::DataBlock - Perl extension for handling DataBlock objects created by STAR::Parser.

   Version
       This documentation refers to version 0.58 of this module.

SYNOPSIS

         use STAR::DataBlock;

         $data_obj = STAR::DataBlock->new(-file=>$ARGV[0]);  #retrieves stored file

         $attributes = $data_obj->get_attributes;
         print $attributes;

         @items = $data_obj->get_items;

         foreach $item ( @items ) {
             @item_data = $data_obj->get_item_data( -item=>$item );
             $count{ $_ } = $#item_data + 1;

             # do something else (hopefully more useful) with @item_data...
         }

DESCRIPTION

       This package contains class and object methods for dealing with DataBlock objects created
       by STAR::Parser.  They include methods for such tasks as reading objects from disk,
       querying their data structures or writing DataBlock objects as STAR compliant files.

       All methods support a "named parameters" style for passing arguments. If only one argument
       is mandatory, then it may be passed in either a "named parameters" or "unnamed parameters"
       style, for example:

              $data_obj->get_item_data( -file=>$file, -save=>'-' );
          or: $data_obj->get_item_data( -file=>$file );
          or: $data_obj->get_item_data( $file );

              # all of the above are the same, since -save=>'-' is the default
              # and therefore only one parameter needs to be specified
              # in "named" or "unnamed" parameter style

       Some methods may be invoked with on $options string. Currently, only one option is
       supported:

         l  writes program activity log to STDERR

       Future versions may support additional options.

CONSTRUCTOR

   new
         Usage:  $data_obj = STAR::DataBlock->new();                #creates new object

                 $data_obj = STAR::DataBlock->new( -file=>$file );  #retrieves previously
            OR:  $data_obj = STAR::DataBlock->new( $file );         #stored object

       Overloaded constructor. Called as a no-arg constructor internally by STAR::Parser.  May be
       called with a $file argument to retrieve an object previously stored with store (see
       below).

OBJECT METHODS

   store
         Usage:  $data_obj->store($file);

       Saves a DataBlock object to disk. This method is in Storable.

   get_item_data
         Usage: @item_data = $data_obj->get_item_data(-item=>$item[,
                                                      -save=>$save_block]);

         Example:
         --------
         my @names=$data_obj->
                   get_item_data(-item=>"_citation_author.name");
         print $names[0],"\n";  #prints first citation author name

       This object method returns all the data for a specified item.  If the "-save" parameter is
       omitted, it is assumed that the item is not in a save block (i.e. "$save='-'"). This is
       always the case in data files, since they do not contain save blocks. However, this class
       is sub-classed by STAR::Dictionary, where items may be in save blocks.  The data is
       returned as an array, which holds one or more scalars.

   get_keys
         Usage: $keys = $data_obj->get_keys;

       Returns a string with a hierarchically formatted list of hash keys (data blocks, save
       blocks, categories, and items) found in the data structure of the DataBlock object.

   get_items
         Usage: @items = $data_obj->get_items;

       Returns an array with all the items present in the DataBlock.

   get_categories
         Usage: @categories = $data_obj->get_categories;

       Returns an array with all the categories present in the DataBlock.

   insert_category
         Usage: $data_obj->insert_category( -cat=>$cat[,
                                            -save=>$save] );

       Inserts the category $cat into the data structure. The default save block (if none is
       specified) is '-'.

   insert_item
         Usage: $data_obj->insert_item( -item=>$item[,
                                        -save=>$save]  );

       Inserts the item $item into the data structure. The default save block (if none is
       specified) is '-'.

   set_item_data
         Usage: $data_obj->set_item_data( -item=>$item,
                                          -dataref=>$dataref[,
                                          -save=>$save] );

       Sets the data of the item $item to the array of data referenced by $dataref. If the
       "-save" parameter is omitted, the save block defaults to '-'. This is always correct for
       data blocks. In a dictionary (which inherits from DataBlock), the save block '-' contains
       information pertaining to the dictionary itself.

   Object attributes
       The following five methods set or retrieve attributes of a DataBlock object.  In the set
       mode (with argument), these methods are called internally to set the attributes of a
       DataBlock object. In the retrieve mode (without arguments) these methods may also be
       called by a user to retrieve object attributes (see the above examples).

   file_name
         Usage:  $data_obj->file_name($name);   #set mode
                 $name = $data_obj->file_name;  #get mode

       Name of the file in which the DataBlock object was found

   title
         Usage:  $data_obj->title($title);      #set mode
                 $title = $data_obj->title;     #get mode

       Title of the DataBlock object

   type
         Usage:  $data_obj->type($type);        #set mode
                 $type = $data_obj->type;       #get mode

       Type of data contained (always 'data' for a DataBlock object, but 'dictionary' for an
       object in the sub class STAR::Dictionary)

   starting_line
         Usage:  $data_obj->starting_line($startln);    #set mode
                 $startln = $data_obj->starting_line;   #get mode

       Line number where data block started in the file

   ending_line
         Usage:  $data_obj->ending_line($endln);        #set mode
                 $endln = $data_obj->ending_line;       #get mode

       Line number where data block ended in the file

   get_attributes
         Usage: $info = $data_obj->get_attributes;

       Returns a string containing a descriptive list of attributes of the DataBlock object. Two
       examples of output:

         RCSB011457
         File: native/1fbm.cif   Lines: 1 to 5294

         cif_mm.dic (dictionary)
         File: dictionary/mmcif_dict.txt   Lines: 89 to 38008

COMMENTS

       This module provides no error checking of files or objects, either against the dictionary,
       or otherwise.  Dictionary information is not currently used in the parsing of files by
       STAR::Parser. So, for example, information about parent-child relationships between items
       is not present in a DataBlock object. Functionality related to these issues is being
       provided in additional modules, such as STAR::Checker, and STAR::Filter.

AUTHOR

       Wolfgang Bluhm, mail@wbluhm.com

   Acknowledgments
       Thanks to Phil Bourne, Helge Weissig, Anne Kuller, Doug Greer, Michele Bluhm, and others
       for support, help, and comments.

COPYRIGHT

       A full copyright statement is provided with the distribution Copyright (c) 2000 University
       of California, San Diego

SEE ALSO

       STAR::Parser, STAR::Dictionary.