La vue "plone_interface_info"

Cette vue permet de vérifier la conformité d'un objet ou d'une classe avec une interface dont on ne connait que le dotted name.

Détails dans plone.app.layout.globals.interfaces.IInterfaceInformation

plone_interface_info
Attribut - Méthode Description
provides(dotted_name) True si l'objet de contexte fournit l'interface donnée par le dotted_name
class_provides(dotted_name) True si la classe de l'objet de contexte fournit l'interface donnée par le dotted_name

Attention

Une interface marqueur peut être assignée à un objet particulier sans que la classe du dit objet n'implémente cette interface. Donc on peut très bien avoir cette situation :

>>> pii = context.restrictedTraverse('@@plone_interface_info')
>>> pii.class_provides('some.great.Interface')
True
>>> # Si la classe implémente, alors l'objet aussi (forcément)
>>> pii.provides('some.great.Interface')
True
>>> pii.class_provides('another.great.Interface')
False
>>> # Si la classe n'implémente pas l'objet lui le peut.
>>> pii.provides('another.great.Interface')
True

Voir Le guide complet de l'Architecture de Composants de Zope pour de plus amples explications.

Sujet précédent

La vue "plone_tools"

Sujet suivant

La vue "plone_layout"

Cette page


blog comments powered by Disqus