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;

+        }

+        

+    }

 }