Returns True if details, extent, and type are not set or
        return True for ``is_empty``; returns False if any of the
        fields are not empty.

def is_empty(self):
        '''Returns True if details, extent, and type are not set or
        return True for ``is_empty``; returns False if any of the
        fields are not empty.'''
        return all(field.is_empty() for field in [self.details, self.extent]
                   			if field is not None) \
               and not self.type