def _set_view_data(self, object_content):
        """Update the local object from the passed in object_content."""
        # A debugging convenience, allows inspection of the object_content
        # that was used to create the object
        logger.info("Setting view data for a %s", self.__class__)
        self._object_content = object_content

        for dynprop in object_content.propSet:
            # If the class hasn't defined the property, don't use it
            if dynprop.name not in self._valid_attrs:
                logger.error("Server returned a property '%s' but the object"
                             " hasn't defined it so it is being ignored." %
                             dynprop.name)
                continue

            try:
                if not len(dynprop.val):
                    logger.info("Server returned empty value for %s",
                                dynprop.name)
            except TypeError:
                # This except allows us to pass over:
                # TypeError: object of type 'datetime.datetime' has no len()
                # It will be processed in the next code block
                logger.info("%s of type %s has no len!",
                            dynprop.name, type(dynprop.val))
                pass

            try:
                # See if we have a cache attribute
                cache = self._cache
            except AttributeError:
                # If we don't create one and use it
                cache = self._cache = {}

            # Values which contain classes starting with Array need
            # to be converted into a nicer Python list
            if dynprop.val.__class__.__name__.startswith('Array'):
                # suds returns a list containing a single item, which
                # is another list. Use the first item which is the real list
                logger.info("Setting value of an Array* property")
                logger.debug("%s being set to %s",
                             dynprop.name, dynprop.val[0])
                now = time.time()
                cache[dynprop.name] = (dynprop.val[0], now)
            else:
                logger.info("Setting value of a single-valued property")
                logger.debug("DynamicProperty value is a %s: ",
                             dynprop.val.__class__.__name__)
                logger.debug("%s being set to %s", dynprop.name, dynprop.val)
                now = time.time()
                cache[dynprop.name] = (dynprop.val, now)
Update the local object from the passed in object_content.