Skip to content

Commit

Permalink
Modifying types to handle null values.
Browse files Browse the repository at this point in the history
  • Loading branch information
jwage committed Aug 23, 2010
1 parent de206ae commit ac4ea20
Show file tree
Hide file tree
Showing 20 changed files with 69 additions and 41 deletions.
4 changes: 2 additions & 2 deletions lib/Doctrine/ODM/MongoDB/Mapping/Types/BinDataCustomType.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ class BinDataCustomType extends Type
{
public function convertToDatabaseValue($value)
{
return new \MongoBinData($value, \MongoBinData::CUSTOM);
return $value !== null ? new \MongoBinData($value, \MongoBinData::CUSTOM) : null;
}

public function convertToPHPValue($value)
{
return $value->bin;
return $value !== null ? $value->bin : null;
}
}
4 changes: 2 additions & 2 deletions lib/Doctrine/ODM/MongoDB/Mapping/Types/BinDataFuncType.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ class BinDataFuncType extends Type
{
public function convertToDatabaseValue($value)
{
return new \MongoBinData($value, \MongoBinData::FUNC);
return $value !== null ? new \MongoBinData($value, \MongoBinData::FUNC) : null;
}

public function convertToPHPValue($value)
{
return $value->bin;
return $value !== null ? $value->bin : null;
}
}
4 changes: 2 additions & 2 deletions lib/Doctrine/ODM/MongoDB/Mapping/Types/BinDataMD5Type.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ class BinDataMD5Type extends Type
{
public function convertToDatabaseValue($value)
{
return new \MongoBinData($value, \MongoBinData::MD5);
return $value !== null ? new \MongoBinData($value, \MongoBinData::MD5) : null;
}

public function convertToPHPValue($value)
{
return $value->bin;
return $value !== null ? $value->bin : null;
}
}
4 changes: 2 additions & 2 deletions lib/Doctrine/ODM/MongoDB/Mapping/Types/BinDataType.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ class BinDataType extends Type
{
public function convertToDatabaseValue($value)
{
return new \MongoBinData($value, \MongoBinData::BYTE_ARRAY);
return $value !== null ? new \MongoBinData($value, \MongoBinData::BYTE_ARRAY) : null;
}

public function convertToPHPValue($value)
{
return $value->bin;
return $value !== null ? $value->bin : null;
}
}
4 changes: 2 additions & 2 deletions lib/Doctrine/ODM/MongoDB/Mapping/Types/BinDataUUIDType.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ class BinDataUUIDType extends Type
{
public function convertToDatabaseValue($value)
{
return new \MongoBinData($value, \MongoBinData::UUID);
return $value !== null ? new \MongoBinData($value, \MongoBinData::UUID) : null;
}

public function convertToPHPValue($value)
{
return $value->bin;
return $value !== null ? $value->bin : null;
}
}
4 changes: 2 additions & 2 deletions lib/Doctrine/ODM/MongoDB/Mapping/Types/BooleanType.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ class BooleanType extends Type
{
public function convertToDatabaseValue($value)
{
return (boolean) $value;
return $value !== null ? (boolean) $value : null;
}

public function convertToPHPValue($value)
{
return (boolean) $value;
return $value !== null ? (boolean) $value : null;
}
}
4 changes: 2 additions & 2 deletions lib/Doctrine/ODM/MongoDB/Mapping/Types/CollectionType.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ class CollectionType extends Type
{
public function convertToDatabaseValue($value)
{
return array_values((array) $value);
return $value !== null ? array_values($value) : null;
}

public function convertToPHPValue($value)
{
return array_values((array) $value);
return $value !== null ? array_values($value) : null;
}
}
4 changes: 2 additions & 2 deletions lib/Doctrine/ODM/MongoDB/Mapping/Types/CustomIdType.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ class CustomIdType extends Type
{
public function convertToDatabaseValue($value)
{
return (string) $value;
return $value !== null ? (string) $value : null;
}

public function convertToPHPValue($value)
{
return (string) $value;
return $value !== null ? (string) $value : null;
}
}
6 changes: 6 additions & 0 deletions lib/Doctrine/ODM/MongoDB/Mapping/Types/DateType.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ class DateType extends Type
{
public function convertToDatabaseValue($value)
{
if ($value === null) {
return null;
}
if ($value instanceof \DateTime) {
$value = $value->getTimestamp();
}
Expand All @@ -43,6 +46,9 @@ public function convertToDatabaseValue($value)

public function convertToPHPValue($value)
{
if ($value === null) {
return null;
}
$date = new \DateTime();
$date->setTimestamp($value->sec);
return $date;
Expand Down
9 changes: 0 additions & 9 deletions lib/Doctrine/ODM/MongoDB/Mapping/Types/FileType.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,4 @@
*/
class FileType extends Type
{
public function convertToDatabaseValue($value)
{
return $value;
}

public function convertToPHPValue($value)
{
return $value;
}
}
4 changes: 2 additions & 2 deletions lib/Doctrine/ODM/MongoDB/Mapping/Types/FloatType.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ class FloatType extends Type
{
public function convertToDatabaseValue($value)
{
return (float) $value;
return $value !== null ? (float) $value : null;
}

public function convertToPHPValue($value)
{
return (float) $value;
return $value !== null ? (float) $value : null;
}
}
4 changes: 2 additions & 2 deletions lib/Doctrine/ODM/MongoDB/Mapping/Types/HashType.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ class HashType extends Type
{
public function convertToDatabaseValue($value)
{
return (array) $value;
return $value !== null ? (array) $value : null;
}

public function convertToPHPValue($value)
{
return (array) $value;
return $value !== null ? (array) $value : null;
}
}
5 changes: 4 additions & 1 deletion lib/Doctrine/ODM/MongoDB/Mapping/Types/IdType.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ class IdType extends Type
{
public function convertToDatabaseValue($value)
{
if ($value === null) {
return null;
}
if ( ! $value instanceof \MongoId) {
$value = new \MongoId($value);
}
Expand All @@ -40,6 +43,6 @@ public function convertToDatabaseValue($value)

public function convertToPHPValue($value)
{
return (string) $value;
return $value !== null ? (string) $value : null;
}
}
4 changes: 2 additions & 2 deletions lib/Doctrine/ODM/MongoDB/Mapping/Types/IncrementType.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ class IncrementType extends Type
{
public function convertToDatabaseValue($value)
{
return (integer) $value;
return $value !== null ? (integer) $value : null;
}

public function convertToPHPValue($value)
{
return (integer) $value;
return $value !== null ? (integer) $value : null;
}
}
4 changes: 2 additions & 2 deletions lib/Doctrine/ODM/MongoDB/Mapping/Types/IntType.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ class IntType extends Type
{
public function convertToDatabaseValue($value)
{
return (integer) $value;
return $value !== null ? (integer) $value : null;
}

public function convertToPHPValue($value)
{
return (integer) $value;
return $value !== null ? (integer) $value : null;
}
}
6 changes: 6 additions & 0 deletions lib/Doctrine/ODM/MongoDB/Mapping/Types/KeyType.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,17 @@ class KeyType extends Type
{
public function convertToDatabaseValue($value)
{
if ($value === null) {
return null;
}
return $value ? new \MongoMaxKey : new \MongoMinKey;
}

public function convertToPHPValue($value)
{
if ($value === null) {
return null;
}
return $value instanceof \MongoMaxKey ? 1 : 0;
}
}
4 changes: 2 additions & 2 deletions lib/Doctrine/ODM/MongoDB/Mapping/Types/StringType.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ class StringType extends Type
{
public function convertToDatabaseValue($value)
{
return (string) $value;
return $value !== null ? (string) $value : null;
}

public function convertToPHPValue($value)
{
return (string) $value;
return $value !== null ? (string) $value : null;
}
}
4 changes: 2 additions & 2 deletions lib/Doctrine/ODM/MongoDB/Mapping/Types/TimestampType.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ class TimestampType extends Type
{
public function convertToDatabaseValue($value)
{
return new \MongoTimestamp($value);
return $value !== null ? new \MongoTimestamp($value) : null;
}

public function convertToPHPValue($value)
{
return (string) $value;
return $value !== null ? (string) $value : null;
}
}
26 changes: 24 additions & 2 deletions lib/Doctrine/ODM/MongoDB/Mapping/Types/Type.php
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,30 @@ abstract class Type
'increment' => 'Doctrine\ODM\MongoDB\Mapping\Types\IncrementType'
);

abstract public function convertToDatabaseValue($value);
abstract public function convertToPHPValue($value);

/**
* Converts a value from its PHP representation to its database representation
* of this type.
*
* @param mixed $value The value to convert.
* @return mixed The database representation of the value.
*/
public function convertToDatabaseValue($value)
{
return $value;
}

/**
* Converts a value from its database representation to its PHP representation
* of this type.
*
* @param mixed $value The value to convert.
* @return mixed The PHP representation of the value.
*/
public function convertToPHPValue($value)
{
return $value;
}

/**
* Array of instantiated type classes.
Expand Down
2 changes: 1 addition & 1 deletion lib/vendor/doctrine-common

0 comments on commit ac4ea20

Please sign in to comment.