Add isAggregator()
git-svn-id: https://svn.apache.org/repos/asf/maven/shared/trunk@1461843 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/maven/shared/project/utils/ProjectUtils.java b/src/main/java/org/apache/maven/shared/project/utils/ProjectUtils.java
index 414d1a3..f94e28e 100644
--- a/src/main/java/org/apache/maven/shared/project/utils/ProjectUtils.java
+++ b/src/main/java/org/apache/maven/shared/project/utils/ProjectUtils.java
@@ -42,7 +42,6 @@
{
MavenProject parent = project.getParent();
- // Are collectedProject the resolved modules?
@SuppressWarnings( "unchecked" )
List<MavenProject> collectedProjects = (List<MavenProject>) parent.getCollectedProjects();
@@ -60,4 +59,35 @@
return true;
}
}
+
+ /**
+ * Return {@code true} if this project has modules, but is <strong>never</strong> the parent of one of them.<br/>
+ *
+ * Return {@code false} if this project has no modules, or if 1 or more modules have this project as its parent.
+ *
+ * @param project
+ * @return {@code true} if project is an aggregator, {@code false} if project is standalone or hybrid
+ */
+ public static boolean isAggregator( MavenProject project )
+ {
+ @SuppressWarnings( "unchecked" )
+ List<MavenProject> collectedProjects = (List<MavenProject>) project.getCollectedProjects();
+
+ if( collectedProjects.isEmpty() )
+ {
+ return false;
+ }
+ else
+ {
+ for ( MavenProject collectedProject : collectedProjects )
+ {
+ if( project.getId().equals( collectedProject.getId() ) )
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ }
}