+ /**
+ * Returns module instances (from the context) with a concrete name. Returned collection is required to have its
+ * iteration order guarantee that the latest revision is encountered first.
+ *
+ * @param name string with the module name
+ * @return set of module instances with specified name.
+ */
+ default @NonNull Collection<@NonNull ModuleEffectiveStatement> findModuleStatements(final String name) {
+ return Collections2.transform(findModules(name), Module::asEffectiveStatement);
+ }
+
+ /**
+ * Returns module instance (from the context) with concrete namespace. Returned collection is required to have its
+ * iteration order guarantee that the latest revision is encountered first.
+ *
+ * @param namespace XMLNamespace instance with specified namespace
+ * @return module instance which has namespace equal to the {@code namespace} or {@code null} in other cases
+ */
+ default @NonNull Collection<@NonNull ModuleEffectiveStatement> findModuleStatements(
+ final XMLNamespace namespace) {
+ return Collections2.transform(findModules(namespace), Module::asEffectiveStatement);
+ }
+