public function __setSerialisablePropertyMap($propertyMap, $ignoreNoneWritableProperties = false) {
        $propertyAccessors = $this->__findSerialisablePropertyAccessors();

        $noneWritables = array();
        foreach ($propertyMap as $inputPropertyName => $propertyValue) {
            $propertyName = strtolower($inputPropertyName);

            // If we get a match, call the appropriate function
            if (isset ($propertyAccessors [$propertyName]) && isset ($propertyAccessors [$propertyName] ["set"])) {
                $accessor = $propertyAccessors [$propertyName] ["set"];
                if ($accessor instanceof \ReflectionMethod) {
                    if ($accessor->isPublic())
                        $accessor->invoke($this, $propertyValue);
                    else if ($accessor->isProtected()) {
                        $methodName = "set" . $propertyName;
                        $this->$methodName ($propertyValue);
                    } else {
                        if (!$ignoreNoneWritableProperties)
                            throw new PropertyNotWritableException (get_class($this), $propertyName);
                    }
                } else if ($accessor instanceof \ReflectionProperty) {
                    if ($accessor->isPublic())
                        $accessor->setValue($this, $propertyValue);
                    else if ($accessor->isProtected()) {
                        $propertyName = $accessor->getName();
                        $this->$propertyName = $propertyValue;
                    } else {
                        if (!$ignoreNoneWritableProperties)
                            throw new PropertyNotWritableException (get_class($this), $propertyName);
                    }
                }
            } else {
                // If none writable properties ignored, instead add them to an array for return for processing
                // higher if required, else throw exceptions.
                if ($ignoreNoneWritableProperties) {
                    $noneWritables [$inputPropertyName] = $propertyValue;
                } else {
                    throw new PropertyNotWritableException (get_class($this), $propertyName);
                }
            }

        }

        return $noneWritables;
    }
public function __setSerialisablePropertyMap($propertyMap, $ignoreNoneWritableProperties = false) {
        $propertyAccessors = $this->__findSerialisablePropertyAccessors();

        $noneWritables = array();
        foreach ($propertyMap as $inputPropertyName => $propertyValue) {
            $propertyName = strtolower($inputPropertyName);

            // If we get a match, call the appropriate function
            if (isset ($propertyAccessors [$propertyName]) && isset ($propertyAccessors [$propertyName] ["set"])) {
                $accessor = $propertyAccessors [$propertyName] ["set"];
                if ($accessor instanceof \ReflectionMethod) {
                    if ($accessor->isPublic())
                        $accessor->invoke($this, $propertyValue);
                    else if ($accessor->isProtected()) {
                        $methodName = "set" . $propertyName;
                        $this->$methodName ($propertyValue);
                    } else {
                        if (!$ignoreNoneWritableProperties)
                            throw new PropertyNotWritableException (get_class($this), $propertyName);
                    }
                } else if ($accessor instanceof \ReflectionProperty) {
                    if ($accessor->isPublic())
                        $accessor->setValue($this, $propertyValue);
                    else if ($accessor->isProtected()) {
                        $propertyName = $accessor->getName();
                        $this->$propertyName = $propertyValue;
                    } else {
                        if (!$ignoreNoneWritableProperties)
                            throw new PropertyNotWritableException (get_class($this), $propertyName);
                    }
                }
            } else {
                // If none writable properties ignored, instead add them to an array for return for processing
                // higher if required, else throw exceptions.
                if ($ignoreNoneWritableProperties) {
                    $noneWritables [$inputPropertyName] = $propertyValue;
                } else {
                    throw new PropertyNotWritableException (get_class($this), $propertyName);
                }
            }

        }

        return $noneWritables;
    }
public function __setSerialisablePropertyMap ( $ propertyMap , $ ignoreNoneWritableProperties = false ) { $ propertyAccessors = $ this -> __findSerialisablePropertyAccessors ( ) ; $ noneWritables = array ( ) ; foreach ( $ propertyMap as $ inputPropertyName => $ propertyValue ) { $ propertyName = strtolower ( $ inputPropertyName ) ; // If we get a match, call the appropriate function if ( isset ( $ propertyAccessors [ $ propertyName ] ) && isset ( $ propertyAccessors [ $ propertyName ] [ "set" ] ) ) { $ accessor = $ propertyAccessors [ $ propertyName ] [ "set" ] ; if ( $ accessor instanceof \ ReflectionMethod ) { if ( $ accessor -> isPublic ( ) ) $ accessor -> invoke ( $ this , $ propertyValue ) ; else if ( $ accessor -> isProtected ( ) ) { $ methodName = "set" . $ propertyName ; $ this -> $ methodName ( $ propertyValue ) ; } else { if ( ! $ ignoreNoneWritableProperties ) throw new PropertyNotWritableException ( get_class ( $ this ) , $ propertyName ) ; } } else if ( $ accessor instanceof \ ReflectionProperty ) { if ( $ accessor -> isPublic ( ) ) $ accessor -> setValue ( $ this , $ propertyValue ) ; else if ( $ accessor -> isProtected ( ) ) { $ propertyName = $ accessor -> getName ( ) ; $ this -> $ propertyName = $ propertyValue ; } else { if ( ! $ ignoreNoneWritableProperties ) throw new PropertyNotWritableException ( get_class ( $ this ) , $ propertyName ) ; } } } else { // If none writable properties ignored, instead add them to an array for return for processing // higher if required, else throw exceptions. if ( $ ignoreNoneWritableProperties ) { $ noneWritables [ $ inputPropertyName ] = $ propertyValue ; } else { throw new PropertyNotWritableException ( get_class ( $ this ) , $ propertyName ) ; } } } return $ noneWritables ; }
Set an associative array of serialisable properties
Set an associative array of serialisable properties