Refactor: Simplify DocumentProperties
This commit is contained in:
parent
4a3400c5b2
commit
98613423f8
@ -473,50 +473,33 @@ class DocumentProperties
|
|||||||
*/
|
*/
|
||||||
public static function convertProperty($propertyValue, $propertyType)
|
public static function convertProperty($propertyValue, $propertyType)
|
||||||
{
|
{
|
||||||
switch ($propertyType) {
|
$typeGroups = array(
|
||||||
case 'empty': // Empty
|
'empty' => array('empty'),
|
||||||
return '';
|
'null' => array('null'),
|
||||||
case 'null': // Null
|
'int' => array('i1', 'i2', 'i4', 'i8', 'int'),
|
||||||
return null;
|
'abs' => array('ui1', 'ui2', 'ui4', 'ui8', 'uint'),
|
||||||
case 'i1': // 1-Byte Signed Integer
|
'float' => array('r4', 'r8', 'decimal'),
|
||||||
case 'i2': // 2-Byte Signed Integer
|
'date' => array('date', 'filetime'),
|
||||||
case 'i4': // 4-Byte Signed Integer
|
'bool' => array('bool'),
|
||||||
case 'i8': // 8-Byte Signed Integer
|
);
|
||||||
case 'int': // Integer
|
foreach ($typeGroups as $groupId => $groupMembers) {
|
||||||
return (int) $propertyValue;
|
if (in_array($propertyType, $groupMembers)) {
|
||||||
case 'ui1': // 1-Byte Unsigned Integer
|
if ($groupId == 'null') {
|
||||||
case 'ui2': // 2-Byte Unsigned Integer
|
return null;
|
||||||
case 'ui4': // 4-Byte Unsigned Integer
|
} elseif ($groupId == 'int') {
|
||||||
case 'ui8': // 8-Byte Unsigned Integer
|
return (int) $propertyValue;
|
||||||
case 'uint': // Unsigned Integer
|
} elseif ($groupId == 'abs') {
|
||||||
return abs((int) $propertyValue);
|
return abs((int) $propertyValue);
|
||||||
case 'r4': // 4-Byte Real Number
|
} elseif ($groupId == 'float') {
|
||||||
case 'r8': // 8-Byte Real Number
|
return (float) $propertyValue;
|
||||||
case 'decimal': // Decimal
|
} elseif ($groupId == 'date') {
|
||||||
return (float) $propertyValue;
|
return strtotime($propertyValue);
|
||||||
case 'lpstr': // LPSTR
|
} elseif ($groupId == 'bool') {
|
||||||
case 'lpwstr': // LPWSTR
|
return ($propertyValue == 'true') ? true : false;
|
||||||
case 'bstr': // Basic String
|
} else {
|
||||||
return $propertyValue;
|
return '';
|
||||||
case 'date': // Date and Time
|
}
|
||||||
case 'filetime': // File Time
|
}
|
||||||
return strtotime($propertyValue);
|
|
||||||
case 'bool': // Boolean
|
|
||||||
return ($propertyValue == 'true') ? true : false;
|
|
||||||
case 'cy': // Currency
|
|
||||||
case 'error': // Error Status Code
|
|
||||||
case 'vector': // Vector
|
|
||||||
case 'array': // Array
|
|
||||||
case 'blob': // Binary Blob
|
|
||||||
case 'oblob': // Binary Blob Object
|
|
||||||
case 'stream': // Binary Stream
|
|
||||||
case 'ostream': // Binary Stream Object
|
|
||||||
case 'storage': // Binary Storage
|
|
||||||
case 'ostorage': // Binary Storage Object
|
|
||||||
case 'vstream': // Binary Versioned Stream
|
|
||||||
case 'clsid': // Class ID
|
|
||||||
case 'cf': // Clipboard Data
|
|
||||||
return $propertyValue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $propertyValue;
|
return $propertyValue;
|
||||||
@ -530,48 +513,19 @@ class DocumentProperties
|
|||||||
*/
|
*/
|
||||||
public static function convertPropertyType($propertyType)
|
public static function convertPropertyType($propertyType)
|
||||||
{
|
{
|
||||||
switch ($propertyType) {
|
$typeGroups = array(
|
||||||
case 'i1': // 1-Byte Signed Integer
|
self::PROPERTY_TYPE_INTEGER => array('i1', 'i2', 'i4', 'i8', 'int', 'ui1', 'ui2', 'ui4', 'ui8', 'uint'),
|
||||||
case 'i2': // 2-Byte Signed Integer
|
self::PROPERTY_TYPE_FLOAT => array('r4', 'r8', 'decimal'),
|
||||||
case 'i4': // 4-Byte Signed Integer
|
self::PROPERTY_TYPE_STRING => array('empty', 'null', 'lpstr', 'lpwstr', 'bstr'),
|
||||||
case 'i8': // 8-Byte Signed Integer
|
self::PROPERTY_TYPE_DATE => array('date', 'filetime'),
|
||||||
case 'int': // Integer
|
self::PROPERTY_TYPE_BOOLEAN => array('bool'),
|
||||||
case 'ui1': // 1-Byte Unsigned Integer
|
);
|
||||||
case 'ui2': // 2-Byte Unsigned Integer
|
foreach ($typeGroups as $groupId => $groupMembers) {
|
||||||
case 'ui4': // 4-Byte Unsigned Integer
|
if (in_array($propertyType, $groupMembers)) {
|
||||||
case 'ui8': // 8-Byte Unsigned Integer
|
return $groupId;
|
||||||
case 'uint': // Unsigned Integer
|
}
|
||||||
return self::PROPERTY_TYPE_INTEGER;
|
|
||||||
case 'r4': // 4-Byte Real Number
|
|
||||||
case 'r8': // 8-Byte Real Number
|
|
||||||
case 'decimal': // Decimal
|
|
||||||
return self::PROPERTY_TYPE_FLOAT;
|
|
||||||
case 'empty': // Empty
|
|
||||||
case 'null': // Null
|
|
||||||
case 'lpstr': // LPSTR
|
|
||||||
case 'lpwstr': // LPWSTR
|
|
||||||
case 'bstr': // Basic String
|
|
||||||
return self::PROPERTY_TYPE_STRING;
|
|
||||||
case 'date': // Date and Time
|
|
||||||
case 'filetime': // File Time
|
|
||||||
return self::PROPERTY_TYPE_DATE;
|
|
||||||
case 'bool': // Boolean
|
|
||||||
return self::PROPERTY_TYPE_BOOLEAN;
|
|
||||||
case 'cy': // Currency
|
|
||||||
case 'error': // Error Status Code
|
|
||||||
case 'vector': // Vector
|
|
||||||
case 'array': // Array
|
|
||||||
case 'blob': // Binary Blob
|
|
||||||
case 'oblob': // Binary Blob Object
|
|
||||||
case 'stream': // Binary Stream
|
|
||||||
case 'ostream': // Binary Stream Object
|
|
||||||
case 'storage': // Binary Storage
|
|
||||||
case 'ostorage': // Binary Storage Object
|
|
||||||
case 'vstream': // Binary Versioned Stream
|
|
||||||
case 'clsid': // Class ID
|
|
||||||
case 'cf': // Clipboard Data
|
|
||||||
return self::PROPERTY_TYPE_UNKNOWN;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return self::PROPERTY_TYPE_UNKNOWN;
|
return self::PROPERTY_TYPE_UNKNOWN;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user