-public interface ContainerStatement extends DataDefinitionStatement, DataDefinitionContainer.WithReusableDefinitions,
- ActionStatementContainer, ConfigStatementContainerDeclaredStatement<QName>, NotificationStatementContainer,
- MustStatementContainer {
-
- @Nullable PresenceStatement getPresence();
+public interface ContainerStatement extends DataDefinitionStatement,
+ DataDefinitionAwareDeclaredStatement.WithReusableDefinitions<QName>,
+ ActionStatementAwareDeclaredStatement<QName>, ConfigStatementAwareDeclaredStatement<QName>,
+ NotificationStatementAwareDeclaredStatement<QName>, MustStatementAwareDeclaredStatement<QName> {
+ default @Nullable PresenceStatement getPresence() {
+ final Optional<PresenceStatement> opt = findFirstDeclaredSubstatement(PresenceStatement.class);
+ return opt.isPresent() ? opt.get() : null;
+ }