This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a commit to branch JXR-142
in repository https://gitbox.apache.org/repos/asf/maven-jxr.git

commit d242056c893b9a4085cb8a8207716af2010a48b0
Author: rfscholte <rfscho...@apache.org>
AuthorDate: Sun Nov 11 13:10:26 2018 +0100

    Introduce ClassInfo
---
 .../org/apache/maven/jxr/DirectoryIndexer.java     | 56 +++++++++++++++++-----
 .../org/apache/maven/jxr/DirectoryIndexerTest.java | 26 +++++-----
 2 files changed, 57 insertions(+), 25 deletions(-)

diff --git a/maven-jxr/src/main/java/org/apache/maven/jxr/DirectoryIndexer.java 
b/maven-jxr/src/main/java/org/apache/maven/jxr/DirectoryIndexer.java
index 2a3cb8f..84ee7bf 100644
--- a/maven-jxr/src/main/java/org/apache/maven/jxr/DirectoryIndexer.java
+++ b/maven-jxr/src/main/java/org/apache/maven/jxr/DirectoryIndexer.java
@@ -334,7 +334,7 @@ public class DirectoryIndexer
     Map<String, Map<String, ?>> getPackageInfo()
     {
         Map<String, Map<String, Object>> allPackages = new TreeMap<>();
-        Map<String, Map<String, String>> allClasses = new TreeMap<>();
+        Map<String, ClassInfo> allClasses = new TreeMap<>();
 
         Enumeration<PackageType> packages = packageManager.getPackageTypes();
         while ( packages.hasMoreElements() )
@@ -353,26 +353,18 @@ public class DirectoryIndexer
                 rootRef = "./";
             }
 
-            Map<String, Map<String, String>> pkgClasses = new TreeMap<>();
+            Map<String, ClassInfo> pkgClasses = new TreeMap<>();
             Enumeration<ClassType> classes = pkg.getClassTypes();
             while ( classes.hasMoreElements() )
             {
                 ClassType clazz = classes.nextElement();
 
                 String className = clazz.getName();
-                Map<String, String> classInfo = new HashMap<>();
-                if ( clazz.getFilename() != null )
-                {
-                    classInfo.put( "filename", clazz.getFilename() );
-                }
-                else
-                {
-                    classInfo.put( "filename", "" );
-                }
-                classInfo.put( "name", className );
-                classInfo.put( "dir", pkgDir );
+                
+                ClassInfo classInfo = new ClassInfo( className, pkgDir, 
clazz.getFilename() );
 
                 pkgClasses.put( className, classInfo );
+                
                 // Adding package name to key in order to ensure classes with 
identical names in different packages are
                 // all included.
                 allClasses.put( className + "#" + pkgName, classInfo );
@@ -392,4 +384,42 @@ public class DirectoryIndexer
 
         return info;
     }
+    
+    /**
+     * Holds class information
+     * 
+     * @author Robert Scholte
+     * @since 3.2.0
+     */
+    public static class ClassInfo
+    {
+        private String name;
+        
+        private String dir;
+        
+        private String filename;
+
+        public ClassInfo( String name, String dir, String filename )
+        {
+            super();
+            this.name = name;
+            this.dir = dir;
+            this.filename = filename;
+        }
+        
+        public String getName()
+        {
+            return name;
+        }
+        
+        public String getDir()
+        {
+            return dir;
+        }
+        
+        public String getFilename()
+        {
+            return filename;
+        }
+    }
 }
\ No newline at end of file
diff --git 
a/maven-jxr/src/test/java/org/apache/maven/jxr/DirectoryIndexerTest.java 
b/maven-jxr/src/test/java/org/apache/maven/jxr/DirectoryIndexerTest.java
index 7a16bfe..dcd85e7 100644
--- a/maven-jxr/src/test/java/org/apache/maven/jxr/DirectoryIndexerTest.java
+++ b/maven-jxr/src/test/java/org/apache/maven/jxr/DirectoryIndexerTest.java
@@ -1,5 +1,7 @@
 package org.apache.maven.jxr;
 
+import org.apache.maven.jxr.DirectoryIndexer.ClassInfo;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -49,27 +51,27 @@ public class DirectoryIndexerTest {
         assertTrue( allPackages.containsKey( "(default package)" ) );
         assertTrue( allPackages.containsKey( "pkga" ) );
         assertTrue( allPackages.containsKey( "pkgb" ) );
-        final Map<String, Map<String, String>> allClasses = (Map<String, 
Map<String, String>>) packageInfo.get( "allClasses" );
+        final Map<String, ClassInfo> allClasses = (Map<String, ClassInfo>) 
packageInfo.get( "allClasses" );
         assertEquals( 6, allClasses.size() );
-        final Iterator<Map<String, String>> iterator = 
allClasses.values().iterator();
+        final Iterator<ClassInfo> iterator = allClasses.values().iterator();
         // #1: AClass
-        assertEquals( "AClass", iterator.next().get( "name" ) );
+        assertEquals( "AClass", iterator.next().getName() );
         // #2: BClass
-        assertEquals( "BClass", iterator.next().get( "name" ) );
+        assertEquals( "BClass", iterator.next().getName() );
         // #3: CClass
-        assertEquals( "CClass", iterator.next().get( "name" ) );
+        assertEquals( "CClass", iterator.next().getName() );
         // #4: SomeClass in default package
-        Map<String, String> classInfo = iterator.next();
-        assertEquals( "SomeClass", classInfo.get( "name" ) );
-        assertEquals( ".", classInfo.get( "dir" ) );
+        ClassInfo classInfo = iterator.next();
+        assertEquals( "SomeClass", classInfo.getName() );
+        assertEquals( ".", classInfo.getDir() );
         // #5: SomeClass in "pkga"
         classInfo = iterator.next();
-        assertEquals( "SomeClass", classInfo.get( "name" ) );
-        assertEquals( "pkga", classInfo.get( "dir" ) );
+        assertEquals( "SomeClass", classInfo.getName() );
+        assertEquals( "pkga", classInfo.getDir() );
         // #6: SomeClass in "pkgb"
         classInfo = iterator.next();
-        assertEquals( "SomeClass", classInfo.get( "name" ) );
-        assertEquals( "pkgb", classInfo.get( "dir" ) );
+        assertEquals( "SomeClass", classInfo.getName() );
+        assertEquals( "pkgb", classInfo.getDir() );
     }
 
 }
\ No newline at end of file

Reply via email to