public function __setSerialisablePropertyMap($propertyMap, $ignoreNoneWritableProperties = false)
    {


        // Always ignore any unknown properties in parent as we need to capture these for dynamic purposes
        $dynamicProperties = parent::__setSerialisablePropertyMap($propertyMap, true);

        // If none strict, simply merge all properties in the property map into the dynamic property map.
        if (!$this->__strictMode) {
            $this->__dynamicPropertyMap = array_merge($this->__dynamicPropertyMap, $dynamicProperties);
        } else {

            foreach ($dynamicProperties as $propertyName => $propertyValue) {
                try {
                    $this->__set($propertyName, $propertyValue);
                } catch (PropertyNotWritableException $e) {
                    if (!$ignoreNoneWritableProperties)
                        throw $e;
                }
            }

        }

    }