Open Journal Systems  3.3.0
PrimitiveTypeDescription.inc.php
1 <?php
15 import('lib.pkp.classes.filter.TypeDescription');
16 import('lib.pkp.classes.filter.TypeDescriptionFactory');
17 
20  var $_primitiveType;
21 
28  function __construct($typeName) {
29  parent::__construct($typeName);
30  }
31 
32 
33  //
34  // Setters and Getters
35  //
39  function getNamespace() {
40  return TYPE_DESCRIPTION_NAMESPACE_PRIMITIVE;
41  }
42 
43 
44  //
45  // Implement abstract template methods from TypeDescription
46  //
50  function parseTypeName($typeName) {
51  // This should be a primitive type
52  if (!in_array($typeName, $this->_supportedPrimitiveTypes())) return false;
53 
54  $this->_primitiveType = $typeName;
55  return true;
56  }
57 
61  function checkType(&$object) {
62  // We expect a primitive type
63  if (!is_scalar($object)) return false;
64 
65  // Check the type
66  if ($this->_getPrimitiveTypeName($object) != $this->_primitiveType) return false;
67 
68  return true;
69  }
70 
71 
72  //
73  // Private helper methods
74  //
79  function _getPrimitiveTypeName(&$variable) {
80  assert(!(is_object($variable) || is_array($variable) || is_null($variable)));
81 
82  // FIXME: When gettype's implementation changes as mentioned
83  // in <http://www.php.net/manual/en/function.gettype.php> then
84  // we have to manually re-implement this method.
85  return str_replace('double', 'float', gettype($variable));
86  }
87 
93  static function _supportedPrimitiveTypes() {
94  static $supportedPrimitiveTypes = array(
95  'string', 'integer', 'float', 'boolean'
96  );
97  return $supportedPrimitiveTypes;
98  }
99 }
100 
101 
PrimitiveTypeDescription\_getPrimitiveTypeName
_getPrimitiveTypeName(&$variable)
Definition: PrimitiveTypeDescription.inc.php:82
PrimitiveTypeDescription\__construct
__construct($typeName)
Definition: PrimitiveTypeDescription.inc.php:31
PrimitiveTypeDescription\_supportedPrimitiveTypes
static _supportedPrimitiveTypes()
Definition: PrimitiveTypeDescription.inc.php:96
PrimitiveTypeDescription\parseTypeName
parseTypeName($typeName)
Definition: PrimitiveTypeDescription.inc.php:53
PrimitiveTypeDescription
Class that describes a primitive input/output type.
Definition: PrimitiveTypeDescription.inc.php:18
TypeDescription
Abstract base class for filter input/output type descriptions.
Definition: TypeDescription.inc.php:49
PrimitiveTypeDescription\checkType
checkType(&$object)
Definition: PrimitiveTypeDescription.inc.php:64
PrimitiveTypeDescription\$_primitiveType
$_primitiveType
Definition: PrimitiveTypeDescription.inc.php:23
PrimitiveTypeDescription\getNamespace
getNamespace()
Definition: PrimitiveTypeDescription.inc.php:42