- Timestamp:
- 09/28/08 18:00:55 (2 months ago)
- Location:
- lang/php/misc/Hermit/src/Hermit
- Files:
-
- 9 modified
- 1 moved
-
annote/HermitAnnote.php (modified) (1 diff)
-
annote/HermitAnnoteConst.php (modified) (1 diff)
-
command/HermitSqlCommandFactory.php (modified) (1 diff)
-
resultset/HermitDefaultResultSet.php (modified) (1 diff)
-
resultset/HermitListResultSet.php (moved) (moved from lang/php/misc/Hermit/src/Hermit/resultset/HermitLstResultSet.php)
-
valuetype/HermitArrayValueType.php (modified) (1 diff)
-
valuetype/HermitNopValueType.php (modified) (1 diff)
-
valuetype/HermitObjectValueType.php (modified) (1 diff)
-
valuetype/HermitValueType.php (modified) (1 diff)
-
valuetype/HermitValueTypeFactory.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
lang/php/misc/Hermit/src/Hermit/annote/HermitAnnote.php
r19902 r20139 19 19 public abstract function getFile(ReflectionMethod $method); 20 20 public abstract function getQuery(ReflectionMethod $method); 21 public abstract function getDelegate(ReflectionMethod $method);22 21 public abstract function getValueType(ReflectionMethod $method); 23 22 public static final function create(ReflectionClass $reflector){ -
lang/php/misc/Hermit/src/Hermit/annote/HermitAnnoteConst.php
r19902 r20139 117 117 return null; 118 118 } 119 public function getDelegate(ReflectionMethod $method){120 return $this->reflector->getConstant($name . self::DELEGATE_SUFFIX);121 }122 119 public function getValueType(ReflectionMethod $method){ 123 120 $key = $method->getName() . self::VALUE_TYPE_SUFFIX; -
lang/php/misc/Hermit/src/Hermit/command/HermitSqlCommandFactory.php
r19902 r20139 79 79 $this->appendSql($method, $creator); 80 80 } 81 $valueType = HermitValueTypeFactory::create($this->annote ->getValueType($method));81 $valueType = HermitValueTypeFactory::create($this->annote, $method); 82 82 return new HermitSelectCommand($method, $creator, $valueType); 83 83 } -
lang/php/misc/Hermit/src/Hermit/resultset/HermitDefaultResultSet.php
r19902 r20139 5 5 */ 6 6 class HermitDefaultResultSet implements HermitResultSet { 7 public function execute( PDOStatement $stmt, HermitValueType $type){7 public function execute(HermitStatement $stmt, HermitValueType $type){ 8 8 $type->apply($stmt); 9 9 return $stmt->fetch(); -
lang/php/misc/Hermit/src/Hermit/valuetype/HermitArrayValueType.php
r19902 r20139 4 4 * @author nowelium 5 5 */ 6 class HermitArrayValueType implements HermitValueType { 6 class HermitArrayValueType extends AbstractHermitValueType { 7 const ACCEPT = 'ASSOC'; 8 public static function accept($value){ 9 return 0 === strcasecmp($value, self::ACCEPT); 10 } 7 11 public function apply(HermitStatement $stmt){ 8 12 $stmt->setFetchMode(PDO::FETCH_ASSOC); -
lang/php/misc/Hermit/src/Hermit/valuetype/HermitNopValueType.php
r19902 r20139 4 4 * @author nowelium 5 5 */ 6 class HermitNopValueType implements HermitValueType { 6 class HermitNopValueType extends AbstractHermitValueType { 7 public static function accept($value){ 8 return true; 9 } 7 10 public function apply(HermitStatement $stmt){ 8 11 // nop -
lang/php/misc/Hermit/src/Hermit/valuetype/HermitObjectValueType.php
r19902 r20139 4 4 * @author nowelium 5 5 */ 6 class HermitObjectValueType implements HermitValueType { 6 class HermitObjectValueType extends AbstractHermitValueType { 7 const ACCEPT = 'OBJ'; 8 public static function accept($value){ 9 return 0 === strcasecmp($value, self::ACCEPT); 10 } 7 11 public function apply(HermitStatement $stmt){ 8 12 $stmt->setFetchMode(PDO::FETCH_OBJ); -
lang/php/misc/Hermit/src/Hermit/valuetype/HermitValueType.php
r19902 r20139 5 5 */ 6 6 interface HermitValueType { 7 public function __construct(HermitAnnote $annote, ReflectionMethod $method, $value); 8 public static function accept($value); 7 9 public function apply(HermitStatement $stmt); 8 10 } -
lang/php/misc/Hermit/src/Hermit/valuetype/HermitValueTypeFactory.php
r19902 r20139 5 5 */ 6 6 abstract class HermitValueTypeFactory { 7 protected static $ types = array(8 ' array' => 'HermitArrayValueType',9 ' obj' => 'HermitObjectValueType'7 protected static $valueTypes = array( 8 'HermitArrayValueType', 9 'HermitObjectValueType' 10 10 ); 11 public static function create($value){ 12 if(null === $value){ 13 return new HermitNopValueType; 11 public static function create(HermitAnnote $annote, ReflectionMethod $method){ 12 $value = $annote->getValueType($method); 13 foreach(self::$valueTypes as $type){ 14 if(call_user_func(array($type, 'accept'), $value)){ 15 return new $type($annote, $method, $value); 16 } 14 17 } 15 if(!isset(self::$types[$value])){ 16 return new HermitNopValueType; 17 } 18 return new self::$types[$value]; 18 return new HermitNopValueType; 19 19 } 20 20 }
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)