Author: rfscholte Date: Wed Mar 27 20:34:57 2013 New Revision: 1461843 URL: http://svn.apache.org/r1461843 Log: Add isAggregator()
Modified: maven/shared/trunk/maven-project-utils/src/main/java/org/apache/maven/shared/project/utils/ProjectUtils.java Modified: maven/shared/trunk/maven-project-utils/src/main/java/org/apache/maven/shared/project/utils/ProjectUtils.java URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-project-utils/src/main/java/org/apache/maven/shared/project/utils/ProjectUtils.java?rev=1461843&r1=1461842&r2=1461843&view=diff ============================================================================== --- maven/shared/trunk/maven-project-utils/src/main/java/org/apache/maven/shared/project/utils/ProjectUtils.java (original) +++ maven/shared/trunk/maven-project-utils/src/main/java/org/apache/maven/shared/project/utils/ProjectUtils.java Wed Mar 27 20:34:57 2013 @@ -42,7 +42,6 @@ public final class ProjectUtils { MavenProject parent = project.getParent(); - // Are collectedProject the resolved modules? @SuppressWarnings( "unchecked" ) List<MavenProject> collectedProjects = (List<MavenProject>) parent.getCollectedProjects(); @@ -60,4 +59,35 @@ public final class ProjectUtils 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; + } + + } }