An AST node representing a
interface
declaration.
The shape of this node is:
IInterfaceNode IMetaTagsNode <-- getMetaTagsNode() INamespaceDecorationNode <-- getNamespaceNode() IKeywordNode <-- getKeywordNode() IExpressionNode <-- getNameExpressionNode() IKeywordNode <-- getExtendsKeywordNode() IContainerNode <-- getInterfacesNode() IScopedNode <-- getScopedNode()
For example,
[Foo] [Bar] public interface I extends I1, I2 { ... }
is represented as
IInterfaceNode IMetaTagsNode IMetaTagNode "Foo" IMetaTagNode "Bar" INamespaceDecorationNode "public" IKeywordNode "interface" IIdentifierNode "I" IKeywordNode "extends" IContainerNode IIdentifierNode "I1" IIdentifierNode "I2" IScopedNode ...
If there is no metadata, the corresponding child node is not present.
If there is no namespace, the corresponding child node is not present.
If there is no extends
clause, the two corresponding child nodes are not present.
If the interface extends only one interface, there is still an IContainerNode
containing the one node for the interface being extended.