Source for file Field.php

Documentation is available at Field.php

  1. <?php
  2. /**
  3. * Base class for fields config elements.
  4. *
  5. * PHP versions 5
  6. @category  PHP
  7. @package   GeoPrisma
  8. @author    Alexandre Dube
  9. @copyright 2010, Boreal - Nippour Geomatik
  10. @license   http://www.geoprisma.org/license BSD License
  11. @link      http://www.geoprisma.org
  12. */
  13.  
  14. /**
  15. * Base class for fields config elements.
  16. @category   PHP
  17. @package    GeoPrisma
  18. @subpackage Field
  19. @author     Alexandre Dube
  20. */ 
  21. {
  22.     private $m_iId null;
  23.     private $m_strName null;
  24.     private $m_strTitle null;
  25.     protected $m_objArrayOptions = null;
  26.  
  27.     /**
  28.     * Create a new org_geoprisma_field_Field instance.
  29.     * 
  30.     * @param integer $piId      Id of the field
  31.     * @param string  $pstrName  Name of the field
  32.     * @param array   $pobjArray The datastore in its php array form
  33.     * @param string  $pstrTitle (Optional) Title of the field
  34.     * 
  35.     * @return org_geoprisma_datastore_Datastore 
  36.     */
  37.     public function __construct(
  38.         $piId,
  39.         $pstrName,
  40.         $pobjArray,
  41.         $pstrTitle=null
  42.     {
  43.         com_borealis_foundation_util_Assert::assertIsNotEmptyString($pstrName);
  44.  
  45.         $this->m_iId $piId;
  46.         $this->m_strName $pstrName;
  47.  
  48.         if ($pstrTitle && $pstrTitle != ""
  49.         {
  50.             $this->m_strTitle $pstrTitle;
  51.         }
  52.         else
  53.         {
  54.             $this->m_strTitle $this->m_strName;
  55.         }
  56.  
  57.         $this->loadOptions($pobjArray)
  58.     }
  59.  
  60.     /**
  61.     * From given array, create org_geoprisma_option_Option objects and append
  62.     *     them to the options array.
  63.     * 
  64.     * @param array &$pobjArray Config array
  65.     * 
  66.     * @return void 
  67.     */
  68.     private function loadOptions(&$pobjArray)
  69.     {
  70.         $this->m_objArrayOptions = new ArrayObject();
  71.  
  72.         if (isset($pobjArray['options'])) 
  73.         {
  74.             $objArrayOptions $pobjArray['options'];
  75.         }
  76.         else
  77.         {
  78.             $objArrayOptions array();
  79.         }
  80.         
  81.         foreach ($objArrayOptions as $strOption => $strValue
  82.         {
  83.             $this->m_objArrayOptions->append(
  84.                 new org_geoprisma_option_Option($strOption$strValue)
  85.             );
  86.         }
  87.     }
  88.  
  89.     /**
  90.     * Get field name
  91.     *
  92.     * @return string 
  93.     */
  94.     public function getName()
  95.     {
  96.         return $this->m_strName;   
  97.     }
  98.  
  99.     /**
  100.     * Get field id
  101.     *
  102.     * @return string 
  103.     */
  104.     public function getId()
  105.     {
  106.         return $this->m_iId;   
  107.     }
  108.  
  109.     /**
  110.     * Get field title
  111.     *
  112.     * @return string 
  113.     */
  114.     public function getTitle()
  115.     {
  116.         return $this->m_strTitle;   
  117.     }
  118.  
  119.     /**
  120.     * Get field options
  121.     * 
  122.     * @return ArrayObject 
  123.     */
  124.     public function getOptions()
  125.     {
  126.         return $this->m_objArrayOptions;
  127.     }
  128.     
  129.     /**
  130.     * Get a specific option using its name
  131.     * 
  132.     * @param string $pstrName Option name
  133.     * 
  134.     * @return org_geoprisma_option_Option 
  135.     */
  136.     public function getOption($pstrName)
  137.     {
  138.         if ($this->m_objArrayOptions != null
  139.         {
  140.             foreach ($this->m_objArrayOptions as $objOption)   
  141.             {
  142.                 if ($objOption->getName(== $pstrName
  143.                 {
  144.                     return $objOption;
  145.                 }    
  146.             }
  147.         }
  148.         throw new org_geoprisma_exception_OptionNotFoundException($pstrName);
  149.     }
  150.  
  151.     /**
  152.     * Add current field in XML.
  153.     * 
  154.     * @param DOMElement  &$pobjDomElementFields Node in which to add the field
  155.     * @param DOMDocument &$pobjDomDocument      XML document
  156.     * 
  157.     * @return void 
  158.     */
  159.     public function insertIntoXML(
  160.         DOMElement &$pobjDomElementFields,
  161.         DOMDocument &$pobjDomDocument
  162.     {
  163.  
  164.         $objDomElementField $pobjDomDocument->createElement('field')
  165.         $pobjDomElementFields->appendChild($objDomElementField);
  166.     
  167.         $objDomElementName $pobjDomDocument->createElement(
  168.             'name'$this->getName()
  169.         );
  170.         $objDomElementField->appendChild($objDomElementName);
  171.  
  172.         $objDomElementTitle $this->getDomElements(
  173.             'title'$this->getTitle()$pobjDomDocument
  174.         );
  175.         $objDomElementField->appendChild($objDomElementTitle);
  176.  
  177.         // create <options> node with its childs and append to <field>
  178.         $objDomElementField->appendChild(
  179.             $this->getDomElements(
  180.                 'options'$this->getOptions()$pobjDomDocument
  181.             )
  182.         );
  183.     }
  184. }
  185.  
  186. ?>

Documentation generated on Thu, 19 Jan 2012 00:08:30 +0400 by phpDocumentor 1.4.1