+ default Collection<? extends Module> findModules(final String name) {
+ return Collections2.filter(getModules(), m -> name.equals(m.getName()));
+ }
+
+ /**
+ * Returns module instance (from the context) with concrete namespace. Returned Set is required to have its
+ * iteration order guarantee that the latest revision is encountered first.
+ *
+ * @param namespace
+ * URI instance with specified namespace
+ * @return module instance which has namespace equal to the
+ * <code>namespace</code> or <code>null</code> in other cases
+ */
+ default Collection<? extends Module> findModules(final URI namespace) {
+ return Collections2.filter(getModules(), m -> namespace.equals(m.getNamespace()));
+ }
+
+ @Override
+ default Collection<? extends ActionDefinition> getActions() {
+ return ImmutableSet.of();
+ }
+
+ @Override
+ default Optional<ActionDefinition> findAction(final QName qname) {
+ requireNonNull(qname);
+ return Optional.empty();
+ }
+
+ @Override
+ default Optional<NotificationDefinition> findNotification(final QName qname) {
+ final Optional<Collection<? extends NotificationDefinition>> defs = findModule(qname.getModule())
+ .map(Module::getNotifications);
+ if (defs.isPresent()) {
+ for (NotificationDefinition def : defs.get()) {
+ if (qname.equals(def.getQName())) {
+ return Optional.of(def);
+ }
+ }
+ }
+ return Optional.empty();
+ }
+
+ @Override
+ default Optional<String> getDescription() {
+ return Optional.empty();
+ }
+
+ @Override
+ default Optional<String> getReference() {
+ return Optional.empty();
+ }
+
+ @Override
+ default Collection<? extends MustDefinition> getMustConstraints() {
+ return ImmutableSet.of();
+ }
+
+ @Override
+ default Optional<RevisionAwareXPath> getWhenCondition() {
+ return Optional.empty();
+ }