linea21-externals
[ class tree: linea21-externals ] [ index: linea21-externals ] [ all elements ]

Source for file Pattern.class.php

Documentation is available at Pattern.class.php

  1. <?php
  2. /*
  3.  * This work is hereby released into the Public Domain.
  4.  * To view a copy of the public domain dedication,
  5.  * visit http://creativecommons.org/licenses/publicdomain/ or send a letter to
  6.  * Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
  7.  *
  8.  */
  9.  
  10. require_once dirname(__FILE__)."/Graph.class.php";
  11.  
  12. /**
  13.  * All patterns must derivate from this class
  14.  *
  15.  * @package linea21.externals
  16.  * @subpackage artichow
  17.  */
  18. abstract class awPattern {
  19.  
  20.     /**
  21.      * Pattern arguments
  22.      *
  23.      * @var array 
  24.      */
  25.     protected $args = array();
  26.     
  27.     /**
  28.      * Load a pattern
  29.      *
  30.      * @param string $pattern Pattern name
  31.      * @return Component 
  32.      */
  33.     public static function get($pattern{
  34.     
  35.         $file ARTICHOW_PATTERN.DIRECTORY_SEPARATOR.$pattern.'.php';
  36.     
  37.         if(is_file($file)) {
  38.         
  39.             require_once $file;
  40.             
  41.             $class $pattern.'Pattern';
  42.             
  43.             if(class_exists($class)) {
  44.                 return new $class;
  45.             else {
  46.                 awImage::drawError("Class Pattern: Class '".$class."' does not exist.");
  47.             }
  48.         
  49.         else {
  50.             awImage::drawError("Class Pattern: Pattern '".$pattern."' does not exist.");
  51.         }
  52.     
  53.     }
  54.     
  55.     /**
  56.      * Change pattern argument
  57.      *
  58.      * @param string $name Argument name
  59.      * @param mixed $value Argument value
  60.      */
  61.     public function setArg($name$value{
  62.         if(is_string($name)) {
  63.             $this->args[$name$value;
  64.         }
  65.     }
  66.     
  67.     /**
  68.      * Get an argument
  69.      *
  70.      * @param string $name 
  71.      * @param mixed $default Default value if the argument does not exist (default to NULL)
  72.      * @return mixed Argument value
  73.      */
  74.     protected function getArg($name$default NULL{
  75.         if(array_key_exists($name$this->args)) {
  76.             return $this->args[$name];
  77.         else {
  78.             return $default;
  79.         }
  80.     }
  81.     
  82.     /**
  83.      * Change several arguments
  84.      *
  85.      * @param array $args New arguments
  86.      */
  87.     public function setArgs($args{
  88.         if(is_array($args)) {
  89.             foreach($args as $name => $value{
  90.                 $this->setArg($name$value);
  91.             }
  92.         }
  93.     }
  94.  
  95. }
  96.  
  97. registerClass('Pattern'TRUE);
  98. ?>

Documentation generated on Fri, 16 Oct 2009 09:37:48 +0200 by phpDocumentor 1.4.1