PHP Classes

File: DATA/SQLChar.php

Recommend this page to a friend!
  Classes of Martin Alterisio   DATA   DATA/SQLChar.php   Download  
File: DATA/SQLChar.php
Role: Class source
Content type: text/plain
Description: ANSI SQL Character data type representation.
Class: DATA
Access data stored in MySQL tables like arrays
Author: By
Last change: + anonymous access
Date: 16 years ago
Size: 2,275 bytes
 

Contents

Class file image Download
<?php
/**
 * @package DATA
 */

/**
 * ANSI SQL Character data type representation.
 *
 * When inboxing, if the field cannot hold the desired value
 * {@link DATA_StringTooLarge} is thrown.
 *
 * Field contents are padded to the field size with spaces.
 *
 * @todo String operations.
 */
class DATA_SQLChar extends DATA_SQLType {
   
/**
     * How many characters are stored by this field type.
     *
     * @var int
     */
   
protected $size;
   
/**
     * The characters stored in this instance.
     *
     * @var string
     */
   
protected $chars;
   
   
/**
     * Construct a sql char type with requested field size and initial value (optional).
     *
     * Throws {@link DATA_StringTooLarge} when the chars to be stored are more than the field can hold.
     *
     * @param boolean $nullable True if the type is nullable.
     * @param int $size The field size.
     * @param null|string $chars The characters stored in this object.
     */
   
public function __construct($nullable, $size, $chars = '') {
       
$this->size = $size;
       
$this->setChars($chars);
       
parent::__construct($nullable, is_null($chars));
    }
   
   
/**
     * Returns the field size.
     *
     * @return int Field size.
     */
   
public function getSize() {
        return
$this->size;
    }
   
   
/**
     * Returns the characters stored in this field.
     *
     * @return string The characters stored.
     */
   
public function getChars() {
        return
str_pad($this->chars, $this->size);
    }
   
   
/**
     * Sets the chars stored in this field.
     *
     * Throws {@link DATA_StringTooLarge} when the chars to be stored are more than the field can hold.
     *
     * @param string $chars The characters stored in this object.
     */
   
public function setChars($chars) {
        if (
strlen($chars) > $this->size) {
            throw new
DATA_StringTooLarge($this->size, $chars);
        }
       
$this->chars = $chars;
       
$this->setNotNull();
    }
   
    public function
setNull() {
       
parent::setNull();
       
$this->chars = null;
    }
   
    public function
__toString() {
        return
$this->getChars();
    }
}
?>