http://www.mediawiki.org/wiki/Special:Code/MediaWiki/88336
Revision: 88336
Author: jeroendedauw
Date: 2011-05-17 18:13:53 +0000 (Tue, 17 May 2011)
Log Message:
-----------
added unserialization method to propertychange class and some docs+tweaks to DI
class
Modified Paths:
--------------
trunk/extensions/SemanticMediaWiki/includes/SMW_PropertyChange.php
trunk/extensions/SemanticMediaWiki/includes/dataitems/SMW_DataItem.php
Modified: trunk/extensions/SemanticMediaWiki/includes/SMW_PropertyChange.php
===================================================================
--- trunk/extensions/SemanticMediaWiki/includes/SMW_PropertyChange.php
2011-05-17 18:12:56 UTC (rev 88335)
+++ trunk/extensions/SemanticMediaWiki/includes/SMW_PropertyChange.php
2011-05-17 18:13:53 UTC (rev 88336)
@@ -32,6 +32,24 @@
protected $newValue;
/**
+ * Creates and returns a new SMWPropertyChange instance from a
serialization.
+ *
+ * @param string|null $oldValue
+ * @param string|null $newValue
+ *
+ * @return SMWPropertyChange
+ */
+ public static function newFromSerialization( SMWDIProperty $property,
$oldValue, $newValue ) {
+ $diType = SMWDataValueFactory::getDataItemId(
$property->findPropertyTypeID() );
+ //var_dump($property);
+ //if($diType!=7) {throw new Exception();exit;}
+ return new self(
+ is_null( $oldValue ) ? null :
SMWDataItem::newFromSerialization( $diType, $oldValue ),
+ is_null( $newValue ) ? null :
SMWDataItem::newFromSerialization( $diType, $newValue )
+ );
+ }
+
+ /**
* Create a new SMWPropertyChange.
*
* @param SMWDataItem $oldValue
Modified: trunk/extensions/SemanticMediaWiki/includes/dataitems/SMW_DataItem.php
===================================================================
--- trunk/extensions/SemanticMediaWiki/includes/dataitems/SMW_DataItem.php
2011-05-17 18:12:56 UTC (rev 88335)
+++ trunk/extensions/SemanticMediaWiki/includes/dataitems/SMW_DataItem.php
2011-05-17 18:13:53 UTC (rev 88336)
@@ -141,6 +141,7 @@
* @param $diType integer dataitem ID
* @param $serialization string
* @param $typeid string SMW type ID (optional)
+ *
* @return SMWDataItem
*/
public static function newFromSerialization( $diType, $serialization ) {
@@ -148,20 +149,29 @@
return call_user_func( array( $diClass, 'doUnserialize' ),
$serialization );
}
+ /**
+ * Gets the class name of the data item that has the provided type id.
+ *
+ * @param integer $diType Element of the SMWDataItem::TYPE_ enum
+ *
+ * @throws InvalidArgumentException
+ *
+ * @return string
+ */
public static function getDataItemClassNameForId( $diType ) {
switch ( $diType ) {
- case self::TYPE_NUMBER: return "SMWDINumber";
- case self::TYPE_STRING: return "SMWDIString";
- case self::TYPE_BLOB: return "SMWDIBlob";
- case self::TYPE_BOOLEAN: return "SMWDIBoolean";
- case self::TYPE_URI: return "SMWDIUri";
- case self::TYPE_TIME: return "SMWDITimePoint";
- case self::TYPE_GEO: return "SMWDIGeoCoord";
- case self::TYPE_CONTAINER: return "SMWDIContainer";
- case self::TYPE_WIKIPAGE: return "SMWDIWikiPage";
- case self::TYPE_CONCEPT: return "SMWDIConcept";
- case self::TYPE_PROPERTY: return "SMWDIProperty";
- case self::TYPE_ERROR: return "SMWDIError";
+ case self::TYPE_NUMBER: return 'SMWDINumber';
+ case self::TYPE_STRING: return 'SMWDIString';
+ case self::TYPE_BLOB: return 'SMWDIBlob';
+ case self::TYPE_BOOLEAN: return 'SMWDIBoolean';
+ case self::TYPE_URI: return 'SMWDIUri';
+ case self::TYPE_TIME: return 'SMWDITimePoint';
+ case self::TYPE_GEO: return 'SMWDIGeoCoord';
+ case self::TYPE_CONTAINER: return 'SMWDIContainer';
+ case self::TYPE_WIKIPAGE: return 'SMWDIWikiPage';
+ case self::TYPE_CONCEPT: return 'SMWDIConcept';
+ case self::TYPE_PROPERTY: return 'SMWDIProperty';
+ case self::TYPE_ERROR: return 'SMWDIError';
case self::TYPE_NOTYPE: default:
throw new InvalidArgumentException( "The value
\"$diType\" is not a valid dataitem ID." );
}
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs