Author: hboutemy
Date: Mon Dec  6 22:03:36 2010
New Revision: 1042813

URL: http://svn.apache.org/viewvc?rev=1042813&view=rev
Log:
code simplification (a developer is a contributor with an id)

Modified:
    
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/TeamListReport.java

Modified: 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/TeamListReport.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/TeamListReport.java?rev=1042813&r1=1042812&r2=1042813&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/TeamListReport.java
 (original)
+++ 
maven/plugins/trunk/maven-project-info-reports-plugin/src/main/java/org/apache/maven/report/projectinfo/TeamListReport.java
 Mon Dec  6 22:03:36 2010
@@ -149,7 +149,7 @@ public class TeamListReport
 
             startSection( getI18nString( "developers.title" ) );
 
-            if ( developers == null || developers.isEmpty() )
+            if ( isEmpty( developers ) )
             {
                 paragraph( getI18nString( "nodeveloper" ) );
             }
@@ -159,10 +159,8 @@ public class TeamListReport
 
                 startTable();
 
-                // By default we think that all headers not required
-                Map<String, Boolean> headersMap = new HashMap<String, 
Boolean>();
-                // set true for headers that are required
-                checkRequiredHeaders( headersMap, developers );
+                // By default we think that all headers not required: set true 
for headers that are required
+                Map<String, Boolean> headersMap = checkRequiredHeaders( 
developers );
                 String[] requiredHeaders = getRequiredDevHeaderArray( 
headersMap );
 
                 tableHeader( requiredHeaders );
@@ -171,7 +169,7 @@ public class TeamListReport
                 int developersRowId = 0;
                 for ( Developer developer : developers )
                 {
-                    renderDeveloper( developer, developersRowId, headersMap, 
javascript );
+                    renderTeamMember( developer, developersRowId, headersMap, 
javascript );
 
                     developersRowId++;
                 }
@@ -186,7 +184,7 @@ public class TeamListReport
 
             startSection( getI18nString( "contributors.title" ) );
 
-            if ( contributors == null || contributors.isEmpty() )
+            if ( isEmpty( contributors ) )
             {
                 paragraph( getI18nString( "nocontributor" ) );
             }
@@ -196,8 +194,7 @@ public class TeamListReport
 
                 startTable();
 
-                Map<String, Boolean> headersMap = new HashMap<String, 
Boolean>();
-                checkRequiredHeaders( headersMap, contributors );
+                Map<String, Boolean> headersMap = checkRequiredHeaders( 
contributors );
                 String[] requiredHeaders = getRequiredContrHeaderArray( 
headersMap );
 
                 tableHeader( requiredHeaders );
@@ -206,7 +203,7 @@ public class TeamListReport
                 int contributorsRowId = 0;
                 for ( Contributor contributor : contributors )
                 {
-                    renderContributor( contributor, contributorsRowId, 
headersMap, javascript );
+                    renderTeamMember( contributor, contributorsRowId, 
headersMap, javascript );
 
                     contributorsRowId++;
                 }
@@ -224,162 +221,47 @@ public class TeamListReport
             endSection();
         }
 
-        private void renderDeveloper( Developer developer, int developerRowId, 
Map<String, Boolean> headersMap,
-                                      StringBuffer javascript )
+        private void renderTeamMember( Contributor member, int rowId, 
Map<String, Boolean> headersMap,
+                                       StringBuffer javascript )
         {
-            // To handle JS
             sink.tableRow();
 
-            if ( headersMap.get( ID ) == Boolean.TRUE )
-            {
-                tableCell( "<a name=\"" + developer.getId() + "\"></a>" + 
developer.getId(), true );
-            }
-            if ( headersMap.get( NAME ) == Boolean.TRUE )
-            {
-                tableCell( developer.getName() );
-            }
-            if ( headersMap.get( EMAIL ) == Boolean.TRUE )
-            {
-                tableCell( createLinkPatternedText( developer.getEmail(), 
developer.getEmail() ) );
-            }
-            if ( headersMap.get( URL ) == Boolean.TRUE )
-            {
-                tableCellForUrl( developer.getUrl() );
-            }
-            if ( headersMap.get( ORGANIZATION ) == Boolean.TRUE )
-            {
-                tableCell( developer.getOrganization() );
-            }
-            if ( headersMap.get( ORGANIZATION_URL ) == Boolean.TRUE )
+            String type = "contributor";
+            if ( member instanceof Developer )
             {
-                tableCellForUrl( developer.getOrganizationUrl() );
-            }
-            if ( headersMap.get( ROLES ) == Boolean.TRUE )
-            {
-                if ( developer.getRoles() != null )
-                {
-                    // Comma separated roles
-                    tableCell( StringUtils.join( developer.getRoles().toArray( 
EMPTY_STRING_ARRAY ), ", " ) );
-                }
-                else
+                type = "developer";
+                if ( headersMap.get( ID ) == Boolean.TRUE )
                 {
-                    tableCell( null );
+                    String id = ( (Developer) member ).getId();
+                    tableCell( "<a name=\"" + id + "\"></a>" + id, true );
                 }
             }
-            if ( headersMap.get( TIME_ZONE ) == Boolean.TRUE )
-            {
-                tableCell( developer.getTimezone() );
-
-                if ( !NumberUtils.isNumber( developer.getTimezone() )
-                    && StringUtils.isNotEmpty( developer.getTimezone() ) )
-                {
-                    String tz = developer.getTimezone().trim();
-                    try
-                    {
-                        // check if it is a valid timeZone
-                        DateTimeZone.forID( tz );
-
-                        sink.tableCell();
-                        sink.rawText( "<span id=\"developer-" + developerRowId 
+ "\">" );
-                        text( tz );
-                        String offSet =
-                            String.valueOf( TimeZone.getTimeZone( tz 
).getRawOffset() / 3600000 );
-                        javascript.append( "    offsetDate('developer-" 
).append( developerRowId ).append( "', '" );
-                        javascript.append( offSet );
-                        javascript.append( "');" ).append( 
SystemUtils.LINE_SEPARATOR );
-                        sink.rawText( "</span>" );
-                        sink.tableCell_();
-                    }
-                    catch ( IllegalArgumentException e )
-                    {
-                        log.warn( "The time zone '" + tz + "' for the 
developer '" + developer.getName()
-                            + "' is not a recognised time zone, use a number 
in the range -12 to +14 instead of." );
-
-                        sink.tableCell();
-                        sink.rawText( "<span id=\"developer-" + developerRowId 
+ "\">" );
-                        text( null );
-                        sink.rawText( "</span>" );
-                        sink.tableCell_();
-                    }
-                }
-                else
-                {
-                    // To handle JS
-                    sink.tableCell();
-                    sink.rawText( "<span id=\"developer-" + developerRowId + 
"\">" );
-                    if ( StringUtils.isNotEmpty( developer.getTimezone() ) )
-                    {
-                        // check if number is between -12 and +14
-                        int tz = NumberUtils.toInt( 
developer.getTimezone().trim(), Integer.MIN_VALUE );
-                        if ( tz == Integer.MIN_VALUE || !( tz >= -12 && tz <= 
14 ) )
-                        {
-                            text( null );
-                            log.warn( "The time zone '" + tz + "' for the 
developer '" + developer.getName()
-                                + "' is not a recognised time zone, use a 
number in the range -12 to +14 instead of." );
-                        }
-                        else
-                        {
-                            text( developer.getTimezone() );
-                            javascript.append( "    offsetDate('developer-" 
).append( developerRowId ).append( "', '" );
-                            javascript.append( developer.getTimezone() );
-                            javascript.append( "');" ).append( 
SystemUtils.LINE_SEPARATOR );
-                        }
-                    }
-                    else
-                    {
-                        text( null );
-                    }
-                    sink.rawText( "</span>" );
-                    sink.tableCell_();
-                }
-            }
-
-            if ( headersMap.get( PROPERTIES ) == Boolean.TRUE )
-            {
-                Properties props = developer.getProperties();
-                if ( props != null )
-                {
-                    tableCell( propertiesToString( props ) );
-                }
-                else
-                {
-                    tableCell( null );
-                }
-            }
-
-            sink.tableRow_();
-        }
-
-        private void renderContributor( Contributor contributor, int 
contributorRowId, Map<String, Boolean> headersMap,
-                                        StringBuffer javascript )
-        {
-            sink.tableRow();
             if ( headersMap.get( NAME ) == Boolean.TRUE )
             {
-                tableCell( contributor.getName() );
+                tableCell( member.getName() );
             }
             if ( headersMap.get( EMAIL ) == Boolean.TRUE )
             {
-                tableCell( createLinkPatternedText( contributor.getEmail(), 
contributor.getEmail() ) );
+                tableCell( createLinkPatternedText( member.getEmail(), 
member.getEmail() ) );
             }
             if ( headersMap.get( URL ) == Boolean.TRUE )
             {
-                tableCellForUrl( contributor.getUrl() );
+                tableCellForUrl( member.getUrl() );
             }
             if ( headersMap.get( ORGANIZATION ) == Boolean.TRUE )
             {
-                tableCell( contributor.getOrganization() );
+                tableCell( member.getOrganization() );
             }
             if ( headersMap.get( ORGANIZATION_URL ) == Boolean.TRUE )
             {
-                tableCellForUrl( contributor.getOrganizationUrl() );
+                tableCellForUrl( member.getOrganizationUrl() );
             }
             if ( headersMap.get( ROLES ) == Boolean.TRUE )
             {
-                if ( contributor.getRoles() != null )
+                if ( member.getRoles() != null )
                 {
                     // Comma separated roles
-                    tableCell( StringUtils.join( 
contributor.getRoles().toArray( EMPTY_STRING_ARRAY ), ", " ) );
+                    tableCell( StringUtils.join( member.getRoles().toArray( 
EMPTY_STRING_ARRAY ), ", " ) );
                 }
                 else
                 {
@@ -388,35 +270,32 @@ public class TeamListReport
             }
             if ( headersMap.get( TIME_ZONE ) == Boolean.TRUE )
             {
-                tableCell( contributor.getTimezone() );
+                tableCell( member.getTimezone() );
 
-                if ( !NumberUtils.isNumber( contributor.getTimezone() )
-                    && StringUtils.isNotEmpty( contributor.getTimezone() ) )
+                if ( !NumberUtils.isNumber( member.getTimezone() ) && 
StringUtils.isNotEmpty( member.getTimezone() ) )
                 {
-                    String tz = contributor.getTimezone().trim();
+                    String tz = member.getTimezone().trim();
                     try
                     {
                         // check if it is a valid timeZone
                         DateTimeZone.forID( tz );
 
                         sink.tableCell();
-                        sink.rawText( "<span id=\"contributor-" + 
contributorRowId + "\">" );
+                        sink.rawText( "<span id=\"" + type + "-" + rowId + 
"\">" );
                         text( tz );
-                        String offSet =
-                            String.valueOf( TimeZone.getTimeZone( tz 
).getRawOffset() / 3600000 );
-                        javascript.append( "    offsetDate('contributor-" 
).append( contributorRowId ).append( "', '" );
-                        javascript.append( offSet );
-                        javascript.append( "');" ).append( 
SystemUtils.LINE_SEPARATOR );
+                        String offSet = String.valueOf( TimeZone.getTimeZone( 
tz ).getRawOffset() / 3600000 );
+                        javascript.append( "    offsetDate('" ).append( type 
).append( "-" ).append( rowId ).append( "', '" );
+                        javascript.append( offSet ).append( "');" ).append( 
SystemUtils.LINE_SEPARATOR );
                         sink.rawText( "</span>" );
                         sink.tableCell_();
                     }
                     catch ( IllegalArgumentException e )
                     {
-                        log.warn( "The time zone '" + tz + "' for the 
contributor '" + contributor.getName()
+                        log.warn( "The time zone '" + tz + "' for the " + type 
+ " '" + member.getName()
                             + "' is not a recognised time zone, use a number 
in the range -12 and +14 instead of." );
 
                         sink.tableCell();
-                        sink.rawText( "<span id=\"contributor-" + 
contributorRowId + "\">" );
+                        sink.rawText( "<span id=\"" + type + "-" + rowId + 
"\">" );
                         text( null );
                         sink.rawText( "</span>" );
                         sink.tableCell_();
@@ -426,29 +305,28 @@ public class TeamListReport
                 {
                     // To handle JS
                     sink.tableCell();
-                    sink.rawText( "<span id=\"contributor-" + contributorRowId 
+ "\">" );
-                    if ( StringUtils.isNotEmpty( contributor.getTimezone() ) )
+                    sink.rawText( "<span id=\"" + type + "-" + rowId + "\">" );
+                    if ( StringUtils.isEmpty( member.getTimezone() ) )
+                    {
+                        text( null );
+                    }
+                    else
                     {
                         // check if number is between -12 and +14
-                        int tz = NumberUtils.toInt( 
contributor.getTimezone().trim(), Integer.MIN_VALUE );
+                        int tz = NumberUtils.toInt( 
member.getTimezone().trim(), Integer.MIN_VALUE );
                         if ( tz == Integer.MIN_VALUE || !( tz >= -12 && tz <= 
14 ) )
                         {
                             text( null );
-                            log.warn( "The time zone '" + tz + "' for the 
contributor '" + contributor.getName()
+                            log.warn( "The time zone '" + tz + "' for the " + 
type + " '" + member.getName()
                                 + "' is not a recognised time zone, use a 
number in the range -12 to +14 instead of." );
                         }
                         else
                         {
-                            text( contributor.getTimezone() );
-                            javascript.append( "    offsetDate('contributor-" 
).append( contributorRowId ).append( "', '" );
-                            javascript.append( contributor.getTimezone() );
-                            javascript.append( "');" ).append( 
SystemUtils.LINE_SEPARATOR );
+                            text( member.getTimezone() );
+                            javascript.append( "    offsetDate('" ).append( 
type ).append( "-" ).append( rowId ).append( "', '" );
+                            javascript.append( member.getTimezone() ).append( 
"');" ).append( SystemUtils.LINE_SEPARATOR );
                         }
                     }
-                    else
-                    {
-                        text( null );
-                    }
                     sink.rawText( "</span>" );
                     sink.tableCell_();
                 }
@@ -456,7 +334,7 @@ public class TeamListReport
 
             if ( headersMap.get( PROPERTIES ) == Boolean.TRUE )
             {
-                Properties props = contributor.getProperties();
+                Properties props = member.getProperties();
                 if ( props != null )
                 {
                     tableCell( propertiesToString( props ) );
@@ -490,13 +368,7 @@ public class TeamListReport
             setRequiredArray( requiredHeaders, requiredArray, name, email, 
url, organization, organizationUrl, roles,
                               timeZone, actualTime, properties );
 
-            String[] array = new String[requiredArray.size()];
-            for ( int i = 0; i < array.length; i++ )
-            {
-                array[i] = requiredArray.get( i );
-            }
-
-            return array;
+            return requiredArray.toArray( new String[requiredArray.size()] );
         }
 
         /**
@@ -526,13 +398,7 @@ public class TeamListReport
             setRequiredArray( requiredHeaders, requiredArray, name, email, 
url, organization, organizationUrl, roles,
                               timeZone, actualTime, properties );
 
-            String[] array = new String[requiredArray.size()];
-            for ( int i = 0; i < array.length; i++ )
-            {
-                array[i] = requiredArray.get( i );
-            }
-
-            return array;
+            return requiredArray.toArray( new String[requiredArray.size()] );
         }
 
         /**
@@ -589,11 +455,13 @@ public class TeamListReport
         }
 
         /**
-         * @param requiredHeaders
-         * @param units
+         * @param units contributors and developers to check
+         * @return required headers
          */
-        private void checkRequiredHeaders( Map<String, Boolean> 
requiredHeaders, List<?> units )
+        private Map<String, Boolean> checkRequiredHeaders( List<? extends 
Contributor> units )
         {
+            Map<String, Boolean> requiredHeaders = new HashMap<String, 
Boolean>();
+
             requiredHeaders.put( ID, Boolean.FALSE );
             requiredHeaders.put( NAME, Boolean.FALSE );
             requiredHeaders.put( EMAIL, Boolean.FALSE );
@@ -604,78 +472,51 @@ public class TeamListReport
             requiredHeaders.put( TIME_ZONE, Boolean.FALSE );
             requiredHeaders.put( PROPERTIES, Boolean.FALSE );
 
-            for ( Object unit : units )
+            for ( Contributor unit : units )
             {
-                String name = null;
-                String email = null;
-                String url = null;
-                String organization = null;
-                String organizationUrl = null;
-                List<String> roles = null;
-                String timeZone = null;
-                Properties properties = null;
-
-                if ( unit.getClass().getName().equals( 
Contributor.class.getName() ) )
-                {
-                    Contributor contributor = (Contributor) unit;
-                    name = contributor.getName();
-                    email = contributor.getEmail();
-                    url = contributor.getUrl();
-                    organization = contributor.getOrganization();
-                    organizationUrl = contributor.getOrganizationUrl();
-                    roles = contributor.getRoles();
-                    timeZone = contributor.getTimezone();
-                    properties = contributor.getProperties();
-                }
-                else
+                if ( unit instanceof Developer )
                 {
                     Developer developer = (Developer) unit;
-                    name = developer.getName();
-                    email = developer.getEmail();
-                    url = developer.getUrl();
-                    organization = developer.getOrganization();
-                    organizationUrl = developer.getOrganizationUrl();
-                    roles = developer.getRoles();
-                    timeZone = developer.getTimezone();
-                    properties = developer.getProperties();
                     if ( StringUtils.isNotEmpty( developer.getId() ) )
                     {
                         requiredHeaders.put( ID, Boolean.TRUE );
                     }
                 }
-                if ( StringUtils.isNotEmpty( name ) )
+                if ( StringUtils.isNotEmpty( unit.getName() ) )
                 {
                     requiredHeaders.put( NAME, Boolean.TRUE );
                 }
-                if ( StringUtils.isNotEmpty( email ) )
+                if ( StringUtils.isNotEmpty( unit.getEmail() ) )
                 {
                     requiredHeaders.put( EMAIL, Boolean.TRUE );
                 }
-                if ( StringUtils.isNotEmpty( url ) )
+                if ( StringUtils.isNotEmpty( unit.getUrl() ) )
                 {
                     requiredHeaders.put( URL, Boolean.TRUE );
                 }
-                if ( StringUtils.isNotEmpty( organization ) )
+                if ( StringUtils.isNotEmpty( unit.getOrganization() ) )
                 {
                     requiredHeaders.put( ORGANIZATION, Boolean.TRUE );
                 }
-                if ( StringUtils.isNotEmpty( organizationUrl ) )
+                if ( StringUtils.isNotEmpty( unit.getOrganizationUrl() ) )
                 {
                     requiredHeaders.put( ORGANIZATION_URL, Boolean.TRUE );
                 }
-                if ( null != roles && !roles.isEmpty() )
+                if ( !isEmpty( unit.getRoles() ) )
                 {
                     requiredHeaders.put( ROLES, Boolean.TRUE );
                 }
-                if ( StringUtils.isNotEmpty( timeZone ) )
+                if ( StringUtils.isNotEmpty( unit.getTimezone() ) )
                 {
                     requiredHeaders.put( TIME_ZONE, Boolean.TRUE );
                 }
+                Properties properties = unit.getProperties();
                 if ( null != properties && !properties.isEmpty() )
                 {
                     requiredHeaders.put( PROPERTIES, Boolean.TRUE );
                 }
             }
+            return requiredHeaders;
         }
 
         /**
@@ -698,5 +539,10 @@ public class TeamListReport
 
             sink.tableCell_();
         }
+
+        private boolean isEmpty( List<?> list )
+        {
+            return ( list == null ) || list.isEmpty();
+        }
     }
 }


Reply via email to