Help-Site Computer Manuals
Software
Hardware
Programming
Networking
  Algorithms & Data Structures   Programming Languages   Revision Control
  Protocols
  Cameras   Computers   Displays   Keyboards & Mice   Motherboards   Networking   Printers & Scanners   Storage
  Windows   Linux & Unix   Mac

Rose::DB::Object::MakeMethods::BigNum
Create object methods for arbitrary-precision numeric attributes for Rose::DB::Object-derived objects.

Rose::DB::Object::MakeMethods::BigNum - Create object methods for arbitrary-precision numeric attributes for Rose::DB::Object-derived objects.


NAME

Rose::DB::Object::MakeMethods::BigNum - Create object methods for arbitrary-precision numeric attributes for Rose::DB::Object-derived objects.


SYNOPSIS


  package MyDBObject;

  our @ISA = qw(Rose::DB::Object);

  use Rose::DB::Object::MakeMethods::BigNum

  (

    bigint => 

    [

      count => 

      {

        with_init => 1,

        min       => 0,

      },

      # Important: specify very large integer values as strings

      tally => { default => '9223372036854775800' },

    ],

  );

  sub init_count { 12345 }

  ...

  $obj = MyDBObject->new(...);

  print $obj->count; # 12345

  print $obj->tally; # 9223372036854775800


DESCRIPTION

the Rose::DB::Object::MakeMethods::BigNum manpage is a method maker that inherits from the Rose::Object::MakeMethods manpage. See the the Rose::Object::MakeMethods manpage documentation to learn about the interface. The method types provided by this module are described below.

All method types defined by this module are designed to work with objects that are subclasses of (or otherwise conform to the interface of) the Rose::DB::Object manpage. See the the Rose::DB::Object manpage documentation for more details.


METHODS TYPES

bigint
Create get/set methods for big integer attributes. Values are stored internally and returned as the Math::BigInt manpage objects. When specifying very large integer values, use strings to be safe. (See an example in the synopsis above.)
Options
check_in ARRAYREF
A reference to an array of valid values. When setting the attribute, if the new value is not equal to one of the valid values, a fatal error will occur.

default VALUE
Determines the default value of the attribute.

hash_key NAME
The key inside the hash-based object to use for the storage of this attribute. Defaults to the name of the method.

init_method NAME
The name of the method to call when initializing the value of an undefined attribute. Defaults to the method name with the prefix init_ added. This option implies with_init.

interface NAME
Choose the interface. The default is get_set.

max INT
Get or set the maximum value this attribute is allowed to have.

min INT
Get or set the minimum value this attribute is allowed to have.

with_init BOOL
Modifies the behavior of the get_set and get interfaces. If the attribute is undefined, the method specified by the init_method option is called and the attribute is set to the return value of that method.

Interfaces
Interfaces
get_set
Creates a get/set method for a big integer object attribute. When called with an argument, the value of the attribute is set. The current value of the attribute is returned.

get
Creates an accessor method for a big integer object attribute that returns the current value of the attribute.

set
Creates a mutator method for a big integer object attribute. When called with an argument, the value of the attribute is set. If called with no arguments, a fatal error will occur.

Example:


    package MyDBObject;

    our @ISA = qw(Rose::DB::Object);

    use Rose::DB::Object::MakeMethods::BigNum

    (

      bigint => 

      [

        count => 

        {

          with_init => 1,

          min       => 0,

        },

        # Important: specify very large integer values as strings

        tally => { default => '9223372036854775800' },

      ],

    );

    sub init_count { 12345 }

    ...

    $obj = MyDBObject->new(...);

    print $obj->count; # 12345

    print $obj->tally; # 9223372036854775800

    $obj->count(-1); # Fatal error: minimum value is 0


AUTHOR

John C. Siracusa (siracusa@gmail.com)


COPYRIGHT

Copyright (c) 2007 by John C. Siracusa. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

Programminig
Wy
Wy
yW
Wy
Programming
Wy
Wy
Wy
Wy