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

Reply via email to