# Class DEnum

The DEnum (Dynamic Enum) complex data type. Similiar to Enum, except list items are stored in a database table and are editable.

  AlphaDAO
  DEnum implements AlphaTypeInterface

Package: alpha::model::types
Copyright: Copyright (c) 2012, John Collins (founder of Alpha Framework). All rights reserved.

    Redistribution and use in source and binary forms, with or
    without modification, are permitted provided that the
    following conditions are met:

    * Redistributions of source code must retain the above
      copyright notice, this list of conditions and the
      following disclaimer.
    * Redistributions in binary form must reproduce the above
      copyright notice, this list of conditions and the
      following disclaimer in the documentation and/or other
      materials provided with the distribution.
    * Neither the name of the Alpha Framework nor the names
      of its contributors may be used to endorse or promote
      products derived from this software without specific
      prior written permission.

    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
    CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
    INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
    CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
    NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
    OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

License: The BSD License
Author: John Collins <dev@alphaframework.org>
Version: $Id: DEnum.inc 1600 2012-12-10 10:51:41Z alphadevx $
Since: 1.0
Located at model/types/DEnum.inc

Methods summary
`public` | # `__construct( `String` $name = null )` Constructor that sets up the DEnum options Constructor that sets up the DEnum options #### Parameters $name ``String`` $name #### Overrides `AlphaDAO::__construct()`
`public` | # `setName( string $name )` Setter for the name of the DEnum used in the database Setter for the name of the DEnum used in the database #### Parameters $name `string` $name #### Since 1.0
`public array` | # `getOptions( boolean $alphaSort = false )` Get the array of DEnum options from the database Get the array of DEnum options from the database #### Parameters $alphaSort `boolean` $alphaSort #### Returns `array` #### Since 1.0 throws AlphaException
`public string` | # `getHelper( )` Getter for the validation helper string Getter for the validation helper string #### Returns `string` #### Since 1.0 #### Implementation of `AlphaTypeInterface::getHelper()`
`public` | # `setHelper( string $helper )` Set the validation helper text Set the validation helper text #### Parameters $helper `string` $helper #### Since 1.0 #### Implementation of `AlphaTypeInterface::setHelper()`
`public `String`` | # `getName( )` Getter for the name Getter for the name #### Returns ``String`` #### Since 1.0
`public integer` | # `getValue( )` Used to get the current DEnum item selected index value Used to get the current DEnum item selected index value #### Returns `integer` #### Since 1.0 #### Implementation of `AlphaTypeInterface::getValue()`
`public string` | # `getDisplayValue( )` Used to get the current DEnum item string value Used to get the current DEnum item string value #### Returns `string` #### Since 1.0
`public` | # `setValue( string $item )` Used to select the current DEnum item Used to select the current DEnum item #### Parameters $item `string` $item #### Since 1.0 #### Implementation of `AlphaTypeInterface::setValue()`
`public integer` | # `getItemCount( )` Gets the count from the database of the DEnumItems associated with this object Gets the count from the database of the DEnumItems associated with this object #### Returns `integer` #### Throws ``AlphaException`` #### Since 1.0
`public integer` | # `getOptionID( string $optionName )` Used to get the DenumItem ID for the given option name Used to get the DenumItem ID for the given option name #### Parameters $optionName `string` $optionName #### Returns `integer` #### Since 1.0
`public string` | # `__toString( )` Used to convert the object to a printable string Used to convert the object to a printable string #### Returns `string` #### Since 1.0 #### Implementation of `AlphaTypeInterface::__toString()`

Methods inherited from AlphaDAO
`__wakeup(), addProperty(), addToCache(), begin(), cast(), checkBOTableExists(), checkClassDefExists(), checkRecordExists(), checkTableExists(), checkTableNeedsUpdate(), commit(), createForeignIndex(), createUniqueIndex(), delete(), deleteAllByAttribute(), disconnect(), dropTable(), findMissingFields(), get(), getBOClassNames(), getConnection(), getCount(), getCreateTS(), getCreatorId(), getDataLabel(), getDataLabels(), getDefaultAttributes(), getFriendlyClassName(), getHistoryCount(), getID(), getIndexes(), getLastQuery(), getMAX(), getMaintainHistory(), getOID(), getPersistentAttributes(), getPropObject(), getTableName(), getTaggedAttributes(), getTransientAttributes(), getUniqueAttributes(), getUpdateTS(), getUpdatorId(), getVersion(), getVersionNumber(), hasAttribute(), isInstalled(), isTableOverloaded(), isTagged(), isTransient(), load(), loadAll(), loadAllByAttribute(), loadAllByAttributes(), loadAllByDayUpdated(), loadAllFieldValuesByAttribute(), loadByAttribute(), loadClassDef(), loadFromCache(), makeHistoryTable(), makeTable(), markPersistent(), markTransient(), markUnique(), populateFromArray(), populateFromPost(), query(), rebuildTable(), reload(), removeFromCache(), rollback(), save(), saveAttribute(), saveHistory(), set(), setDataLabels(), setEnumOptions(), setLastQuery(), setMaintainHistory(), setOID(), validate()`

Constants summary
`string` | `TABLE_NAME` | `'DEnum'` | # The name of the database table for the class The name of the database table for the class #### Since 1.0

Properties summary
`protected array` | $options | `array()` | # An array of valid DEnum options An array of valid DEnum options #### Since 1.0
`protected integer` | $value | `` | # The currently selected DEnum option The currently selected DEnum option #### Since 1.0
`protected `String`` | $name | `` | # The name of the DEnum used in the database The name of the DEnum used in the database #### Since 1.0
`protected array` | $dataLabels | `array("OID"=>"DEnum ID#","name"=>"Name")` | # An array of data display labels for the class properties An array of data display labels for the class properties #### Since 1.0
`protected string` | $helper | `'Not a valid denum option!'` | # The message to display to the user when validation fails The message to display to the user when validation fails #### Since 1.0
`private static `Logger`` | $logger | `null` | # Trace logger Trace logger #### Since 1.2

Properties inherited from AlphaDAO
`$OID, $created_by, $created_ts, $defaultAttributes, $lastQuery, $transientAttributes, $uniqueAttributes, $updated_by, $updated_ts, $version_num`