public function getDataForCache()
    {
        $reflectionClass = new \ReflectionObject($this);
        $array = array();
        $excludes = array_flip($this->excludedPropertiesForCache);
        $excludes['excludedPropertiesForCache'] = true;
        foreach ($reflectionClass->getProperties() as $property) {
            $propertyName = $property->getName();
            if (!isset($excludes[$propertyName])
                && null !== $value = $this->processPropertyForCache($propertyName)) {
                $array[$propertyName] = $value;
            }
        }

        return $this->encodeDataForCache($array);
    }