public function parseProperty(array $jProp)
    {
        list(
            $propertyName,
            $parameters,
            $valueType
        ) = $jProp;

        $propertyName = strtoupper($propertyName);

        // This is the default class we would be using if we didn't know the
        // value type. We're using this value later in this function.
        $defaultPropertyClass = $this->root->getClassNameForPropertyName($propertyName);

        $parameters = (array) $parameters;

        $value = array_slice($jProp, 3);

        $valueType = strtoupper($valueType);

        if (isset($parameters['group'])) {
            $propertyName = $parameters['group'].'.'.$propertyName;
            unset($parameters['group']);
        }

        $prop = $this->root->createProperty($propertyName, null, $parameters, $valueType);
        $prop->setJsonValue($value);

        // We have to do something awkward here. FlatText as well as Text
        // represents TEXT values. We have to normalize these here. In the
        // future we can get rid of FlatText once we're allowed to break BC
        // again.
        if ('Sabre\VObject\Property\FlatText' === $defaultPropertyClass) {
            $defaultPropertyClass = 'Sabre\VObject\Property\Text';
        }

        // If the value type we received (e.g.: TEXT) was not the default value
        // type for the given property (e.g.: BDAY), we need to add a VALUE=
        // parameter.
        if ($defaultPropertyClass !== get_class($prop)) {
            $prop['VALUE'] = $valueType;
        }

        return $prop;
    }
public function parseProperty(array $jProp)
    {
        list(
            $propertyName,
            $parameters,
            $valueType
        ) = $jProp;

        $propertyName = strtoupper($propertyName);

        // This is the default class we would be using if we didn't know the
        // value type. We're using this value later in this function.
        $defaultPropertyClass = $this->root->getClassNameForPropertyName($propertyName);

        $parameters = (array) $parameters;

        $value = array_slice($jProp, 3);

        $valueType = strtoupper($valueType);

        if (isset($parameters['group'])) {
            $propertyName = $parameters['group'].'.'.$propertyName;
            unset($parameters['group']);
        }

        $prop = $this->root->createProperty($propertyName, null, $parameters, $valueType);
        $prop->setJsonValue($value);

        // We have to do something awkward here. FlatText as well as Text
        // represents TEXT values. We have to normalize these here. In the
        // future we can get rid of FlatText once we're allowed to break BC
        // again.
        if ('Sabre\VObject\Property\FlatText' === $defaultPropertyClass) {
            $defaultPropertyClass = 'Sabre\VObject\Property\Text';
        }

        // If the value type we received (e.g.: TEXT) was not the default value
        // type for the given property (e.g.: BDAY), we need to add a VALUE=
        // parameter.
        if ($defaultPropertyClass !== get_class($prop)) {
            $prop['VALUE'] = $valueType;
        }

        return $prop;
    }
public function parseProperty ( array $ jProp ) { list ( $ propertyName , $ parameters , $ valueType ) = $ jProp ; $ propertyName = strtoupper ( $ propertyName ) ; // This is the default class we would be using if we didn't know the // value type. We're using this value later in this function. $ defaultPropertyClass = $ this -> root -> getClassNameForPropertyName ( $ propertyName ) ; $ parameters = ( array ) $ parameters ; $ value = array_slice ( $ jProp , 3 ) ; $ valueType = strtoupper ( $ valueType ) ; if ( isset ( $ parameters [ 'group' ] ) ) { $ propertyName = $ parameters [ 'group' ] . '.' . $ propertyName ; unset ( $ parameters [ 'group' ] ) ; } $ prop = $ this -> root -> createProperty ( $ propertyName , null , $ parameters , $ valueType ) ; $ prop -> setJsonValue ( $ value ) ; // We have to do something awkward here. FlatText as well as Text // represents TEXT values. We have to normalize these here. In the // future we can get rid of FlatText once we're allowed to break BC // again. if ( 'Sabre\VObject\Property\FlatText' === $ defaultPropertyClass ) { $ defaultPropertyClass = 'Sabre\VObject\Property\Text' ; } // If the value type we received (e.g.: TEXT) was not the default value // type for the given property (e.g.: BDAY), we need to add a VALUE= // parameter. if ( $ defaultPropertyClass !== get_class ( $ prop ) ) { $ prop [ 'VALUE' ] = $ valueType ; } return $ prop ; }
Parses properties.

@param array $jProp

@return \Sabre\VObject\Property
Parses properties .