NAME
PerlBean::Attribute::Factory - factory package to generate PerlBean::Attribute objects
SYNOPSIS
use strict;
use PerlBean::Attribute::Factory;
my $factory = PerlBean::Attribute::Factory->new();
my $attr = $factory->create_attribute( {
type => 'BOOLEAN',
method_factory_name => 'true',
short_description => 'something is true',
} );
ABSTRACT
PerlBean::Attribute object factory
DESCRIPTION
PerlBean::Attribute::Factory objects create instances of PerlBean::Attribute objects.
CONSTRUCTOR
METHODS
- create_attribute(OPT_HASH_REF)
-
Returns
PerlBean::Attributeobjects based onOPT_HASH_REF.OPT_HASH_REFis a hash reference used to pass initialization options. The selected subclass ofPerlBean::Attributeis initialized usingOPT_HASH_REF. On error an exceptionError::Simpleis thrown.Options for
OPT_HASH_REFused by this method may include:- associative
-
Boolean flag. States that the returned attribute must be unique, associative
MULTI. Defaults to 0. Only makes sense iftypeis MULTI and unique is true. - method_key
-
Boolean flag. States that the returned attribute must be unique, associative
MULTI. Defaults to 0. Only makes sense iftypeis MULTI and unique is true. - ordered
-
Boolean flag. States that the returned attribute must be an ordered list. Defaults to 0. Only makes sense if
typeis MULTI. - type
-
If
typeis BOOLEAN aPerlBean::Attribute::Boolean, on SINGLE aPerlBean::Attribute::Singleand on MULTI aPerlBean::Attribute::Multiis returned. Defaults to 'SINGLE'. NOTE: type has precedence over ordered and unique. - unique
-
Boolean flag. States that the items in the
MULTIattribute must be unique. Defaults to 0. Only makes sense iftypeis MULTI.
Options for
OPT_HASH_REFpassed to packagePerlBean::Attributemay include:default_value-
Passed to set_default_value().
exception_class-
Passed to set_exception_class(). Defaults to 'Error::Simple'.
mandatory-
Passed to set_mandatory(). Defaults to 0.
method_base-
Passed to set_method_base().
method_factory_name-
Passed to set_method_factory_name(). Mandatory option.
perl_bean-
Passed to set_perl_bean().
short_description-
Passed to set_short_description().
Options for
OPT_HASH_REFpassed to packagePerlBean::Attribute::Singlemay include:allow_empty-
Passed to set_allow_empty(). Defaults to 1.
allow_isa-
Passed to set_allow_isa(). Must be an
ARRAYreference. allow_ref-
Passed to set_allow_ref(). Must be an
ARRAYreference. allow_rx-
Passed to set_allow_rx(). Must be an
ARRAYreference. allow_value-
Passed to set_allow_value(). Must be an
ARRAYreference.
SEE ALSO
PerlBean, PerlBean::Attribute, PerlBean::Attribute::Boolean, PerlBean::Attribute::Multi, PerlBean::Attribute::Multi::Ordered, PerlBean::Attribute::Multi::Unique, PerlBean::Attribute::Multi::Unique::Associative, PerlBean::Attribute::Multi::Unique::Associative::MethodKey, PerlBean::Attribute::Multi::Unique::Ordered, PerlBean::Attribute::Single, PerlBean::Collection, PerlBean::Dependency, PerlBean::Dependency::Import, PerlBean::Dependency::Require, PerlBean::Dependency::Use, PerlBean::Described, PerlBean::Described::ExportTag, PerlBean::Method, PerlBean::Method::Constructor, PerlBean::Method::Factory, PerlBean::Style, PerlBean::Symbol
BUGS
None known (yet.)
HISTORY
First development: November 2002 Last update: September 2003
AUTHOR
Vincenzo Zocca
COPYRIGHT
Copyright 2002, 2003 by Vincenzo Zocca
LICENSE
This file is part of the PerlBean module hierarchy for Perl by Vincenzo Zocca.
The PerlBean module hierarchy is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
The PerlBean module hierarchy is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with the PerlBean module hierarchy; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA