You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2019/07/04 21:20:03 UTC
[maven-jxr] 01/06: Introduce ClassInfo
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 eefce4c6a637d6e3e34ff2fdb0f9d25aaa59ef82
Author: rfscholte <rf...@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