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 2018/06/30 12:37:22 UTC

[maven-jxr] 01/05: Replace all Vector instances

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

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

commit cf8f7273777477b75c1ec05f9478cb8027c96536
Author: rfscholte <rf...@apache.org>
AuthorDate: Sat Jun 30 12:12:15 2018 +0200

    Replace all Vector instances
---
 .../org/apache/maven/jxr/JavaCodeTransform.java    |  40 ++++----
 .../java/org/apache/maven/jxr/pacman/JavaFile.java |  16 ++--
 .../apache/maven/jxr/util/SimpleWordTokenizer.java |  26 +++---
 .../maven/jxr/util/SimpleWordTokenizerTest.java    | 104 +++++++++++----------
 4 files changed, 88 insertions(+), 98 deletions(-)

diff --git a/maven-jxr/src/main/java/org/apache/maven/jxr/JavaCodeTransform.java b/maven-jxr/src/main/java/org/apache/maven/jxr/JavaCodeTransform.java
index 8357637..d4d2311 100644
--- a/maven-jxr/src/main/java/org/apache/maven/jxr/JavaCodeTransform.java
+++ b/maven-jxr/src/main/java/org/apache/maven/jxr/JavaCodeTransform.java
@@ -55,9 +55,11 @@ import java.io.PrintWriter;
 import java.io.Reader;
 import java.io.Serializable;
 import java.io.Writer;
+import java.util.HashSet;
 import java.util.Hashtable;
+import java.util.List;
 import java.util.Locale;
-import java.util.Vector;
+import java.util.Set;
 
 /**
  * Syntax highlights java by turning it into html. A codeviewer object is created and then keeps state as lines are
@@ -661,13 +663,12 @@ public class JavaCodeTransform
         // now replace the word in the buffer with the link
 
         String replace = link;
-        StringEntry[] tokens = SimpleWordTokenizer.tokenize( buff.toString(), find );
+        List<StringEntry> tokens = SimpleWordTokenizer.tokenize( buff.toString(), find );
 
-        for ( int l = 0; l < tokens.length; ++l )
+        for ( StringEntry token : tokens )
         {
-
-            int start = tokens[l].getIndex();
-            int end = tokens[l].getIndex() + find.length();
+            int start = token.getIndex();
+            int end = token.getIndex() + find.length();
 
             buff.replace( start, end, replace );
 
@@ -1183,35 +1184,28 @@ public class JavaCodeTransform
             return line;
         }
 
-        Vector<String> v = new Vector<String>();
+        Set<String> packages = new HashSet<String>();
 
         // get the imported packages
-        ImportType[] imports = jf.getImportTypes();
-        for ( int j = 0; j < imports.length; ++j )
+        for ( ImportType importType : jf.getImportTypes() )
         {
-            v.addElement( imports[j].getPackage() );
+            packages.add( importType.getPackage() );
         }
 
         // add the current package.
-        v.addElement( jf.getPackageType().getName() );
-
-        String[] packages = new String[v.size()];
-        v.copyInto( packages );
+        packages.add( jf.getPackageType().getName() );
 
-        StringEntry[] words = SimpleWordTokenizer.tokenize( line );
+        List<StringEntry> words = SimpleWordTokenizer.tokenize( line );
 
         // go through each word and then match them to the correct class if necessary.
-        for ( int i = 0; i < words.length; ++i )
+        for ( StringEntry word : words )
         {
-            // each word
-            StringEntry word = words[i];
-
-            for ( int j = 0; j < packages.length; ++j )
+            for ( String pkg : packages )
             {
                 // get the package from the PackageManager because this will hold
                 // the version with the classes also.
 
-                PackageType currentImport = packageManager.getPackageType( packages[j] );
+                PackageType currentImport = packageManager.getPackageType( pkg );
 
                 // the package here might in fact be null because it wasn't parsed out
                 // this might be something that is either not included or is part
@@ -1265,12 +1259,12 @@ public class JavaCodeTransform
                     {
                         // then the package we are currently in is the one specified in the string
                         // and the import class is correct.
-                        line = xrLine( line, packages[j], currentImport.getClassType( fqpnClass ) );
+                        line = xrLine( line, pkg, currentImport.getClassType( fqpnClass ) );
                     }
                 }
                 else if ( currentImport.getClassType( wordName ) != null )
                 {
-                    line = xrLine( line, packages[j], currentImport.getClassType( wordName ) );
+                    line = xrLine( line, pkg, currentImport.getClassType( wordName ) );
                 }
             }
         }
diff --git a/maven-jxr/src/main/java/org/apache/maven/jxr/pacman/JavaFile.java b/maven-jxr/src/main/java/org/apache/maven/jxr/pacman/JavaFile.java
index cd7f068..3ac8d97 100644
--- a/maven-jxr/src/main/java/org/apache/maven/jxr/pacman/JavaFile.java
+++ b/maven-jxr/src/main/java/org/apache/maven/jxr/pacman/JavaFile.java
@@ -20,8 +20,10 @@ package org.apache.maven.jxr.pacman;
  */
 
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
 import java.util.List;
-import java.util.Vector;
+import java.util.Set;
 
 /**
  * Interface for objects which wish to provide meta-info about a JavaFile.
@@ -31,8 +33,7 @@ import java.util.Vector;
  */
 public abstract class JavaFile
 {
-
-    private Vector<ImportType> imports = new Vector<ImportType>();
+    private Set<ImportType> imports = new HashSet<ImportType>();
 
     private List<ClassType> classTypes = new ArrayList<ClassType>();
 
@@ -45,12 +46,9 @@ public abstract class JavaFile
     /**
      * Get the imported packages/files that this package has.
      */
-    public ImportType[] getImportTypes()
+    public Set<ImportType> getImportTypes()
     {
-
-        ImportType[] it = new ImportType[this.imports.size()];
-        this.imports.copyInto( it );
-        return it;
+        return Collections.unmodifiableSet( imports );
     }
 
     /**
@@ -99,7 +97,7 @@ public abstract class JavaFile
      */
     public void addImportType( ImportType importType )
     {
-        this.imports.addElement( importType );
+        this.imports.add( importType );
     }
 
     /**
diff --git a/maven-jxr/src/main/java/org/apache/maven/jxr/util/SimpleWordTokenizer.java b/maven-jxr/src/main/java/org/apache/maven/jxr/util/SimpleWordTokenizer.java
index 5cdfe1a..12fc16b 100644
--- a/maven-jxr/src/main/java/org/apache/maven/jxr/util/SimpleWordTokenizer.java
+++ b/maven-jxr/src/main/java/org/apache/maven/jxr/util/SimpleWordTokenizer.java
@@ -19,8 +19,9 @@ package org.apache.maven.jxr.util;
  * under the License.
  */
 
+import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Vector;
+import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -42,7 +43,7 @@ public class SimpleWordTokenizer
     /**
      * Break the given line into multiple StringUtils
      */
-    public static StringEntry[] tokenize( String line )
+    public static List<StringEntry> tokenize( String line )
     {
 
         /*
@@ -55,7 +56,7 @@ public class SimpleWordTokenizer
 
         if ( line == null || line.length() == 0 || start == -1 )
         {
-            return new StringEntry[0];
+            return Collections.emptyList();
         }
 
         return tokenize( line, start );
@@ -67,35 +68,32 @@ public class SimpleWordTokenizer
      * @param line String to search in
      * @param find String to match.
      */
-    public static StringEntry[] tokenize( String line, String find )
+    public static List<StringEntry> tokenize( String line, String find )
     {
 
-        Vector<StringEntry> v = new Vector<StringEntry>();
+        List<StringEntry> foundTokens = new ArrayList<StringEntry>();
 
         for ( StringEntry se : tokenize( line ) )
         {
 
             if ( se.toString().equals( find ) )
             {
-                v.addElement( se );
+                foundTokens.add( se );
             }
 
         }
 
-        StringEntry[] found = new StringEntry[v.size()];
-        Collections.sort( v );
-        v.copyInto( found );
-        return found;
+        return foundTokens;
     }
 
     /**
      * Internal impl. Specify the start and end.
      */
-    private static StringEntry[] tokenize( String line, int start )
+    private static List<StringEntry> tokenize( String line, int start )
     {
         Matcher matcher = NONBREAKERS.matcher( line.substring( start ) );
 
-        Vector<StringEntry> words = new Vector<StringEntry>();
+        List<StringEntry> words = new ArrayList<StringEntry>();
 
         while ( matcher.find() )
         {
@@ -103,9 +101,7 @@ public class SimpleWordTokenizer
             words.add( entry );
         }
 
-        StringEntry[] found = new StringEntry[words.size()];
-        words.copyInto( found );
-        return found;
+        return words;
     }
 
     /**
diff --git a/maven-jxr/src/test/java/org/apache/maven/jxr/util/SimpleWordTokenizerTest.java b/maven-jxr/src/test/java/org/apache/maven/jxr/util/SimpleWordTokenizerTest.java
index 43c0a15..16a5ec1 100644
--- a/maven-jxr/src/test/java/org/apache/maven/jxr/util/SimpleWordTokenizerTest.java
+++ b/maven-jxr/src/test/java/org/apache/maven/jxr/util/SimpleWordTokenizerTest.java
@@ -21,6 +21,8 @@ package org.apache.maven.jxr.util;
 
 import static org.junit.Assert.assertEquals;
 
+import java.util.List;
+
 import org.junit.Test;
 
 public class SimpleWordTokenizerTest
@@ -28,97 +30,97 @@ public class SimpleWordTokenizerTest
     @Test
     public void testCompact()
     {
-        StringEntry[] entries = SimpleWordTokenizer.tokenize( "public void withApp1(App app)" );
-        assertEquals( 5, entries.length );
+        List<StringEntry> entries = SimpleWordTokenizer.tokenize( "public void withApp1(App app)" );
+        assertEquals( 5, entries.size() );
 
-        assertEquals( "public", entries[0].toString() );
-        assertEquals( 0, entries[0].getIndex() );
+        assertEquals( "public", entries.get(0).toString() );
+        assertEquals( 0, entries.get(0).getIndex() );
 
-        assertEquals( "void", entries[1].toString() );
-        assertEquals( 7, entries[1].getIndex() );
+        assertEquals( "void", entries.get(1).toString() );
+        assertEquals( 7, entries.get(1).getIndex() );
 
-        assertEquals( "withApp1", entries[2].toString() );
-        assertEquals( 12, entries[2].getIndex() );
+        assertEquals( "withApp1", entries.get(2).toString() );
+        assertEquals( 12, entries.get(2).getIndex() );
 
-        assertEquals( "App", entries[3].toString() );
-        assertEquals( 21, entries[3].getIndex() );
+        assertEquals( "App", entries.get(3).toString() );
+        assertEquals( 21, entries.get(3).getIndex() );
 
-        assertEquals( "app", entries[4].toString() );
-        assertEquals( 25, entries[4].getIndex() );
+        assertEquals( "app", entries.get(4).toString() );
+        assertEquals( 25, entries.get(4).getIndex() );
     }
     
     @Test
     public void testSpacesAroundParenOpen()
     {
-        StringEntry[] entries = SimpleWordTokenizer.tokenize( "public void withApp2 ( App app)" );
-        assertEquals( 5, entries.length );
+        List<StringEntry> entries = SimpleWordTokenizer.tokenize( "public void withApp2 ( App app)" );
+        assertEquals( 5, entries.size() );
 
-        assertEquals( "public", entries[0].toString() );
-        assertEquals( 0, entries[0].getIndex() );
+        assertEquals( "public", entries.get(0).toString() );
+        assertEquals( 0, entries.get(0).getIndex() );
 
-        assertEquals( "void", entries[1].toString() );
-        assertEquals( 7, entries[1].getIndex() );
+        assertEquals( "void", entries.get(1).toString() );
+        assertEquals( 7, entries.get(1).getIndex() );
 
-        assertEquals( "withApp2", entries[2].toString() );
-        assertEquals( 12, entries[2].getIndex() );
+        assertEquals( "withApp2", entries.get(2).toString() );
+        assertEquals( 12, entries.get(2).getIndex() );
 
-        assertEquals( "App", entries[3].toString() );
-        assertEquals( 23, entries[3].getIndex() );
+        assertEquals( "App", entries.get(3).toString() );
+        assertEquals( 23, entries.get(3).getIndex() );
 
-        assertEquals( "app", entries[4].toString() );
-        assertEquals( 27, entries[4].getIndex() );        
+        assertEquals( "app", entries.get(4).toString() );
+        assertEquals( 27, entries.get(4).getIndex() );        
     }
 
     @Test
     public void testSpaceBeforeParenOpen()
     {
-        StringEntry[] entries = SimpleWordTokenizer.tokenize( "public void withApp3 (App app)" );
-        assertEquals( 5, entries.length );
+        List<StringEntry> entries = SimpleWordTokenizer.tokenize( "public void withApp3 (App app)" );
+        assertEquals( 5, entries.size() );
 
-        assertEquals( "public", entries[0].toString() );
-        assertEquals( 0, entries[0].getIndex() );
+        assertEquals( "public", entries.get(0).toString() );
+        assertEquals( 0, entries.get(0).getIndex() );
 
-        assertEquals( "void", entries[1].toString() );
-        assertEquals( 7, entries[1].getIndex() );
+        assertEquals( "void", entries.get(1).toString() );
+        assertEquals( 7, entries.get(1).getIndex() );
 
-        assertEquals( "withApp3", entries[2].toString() );
-        assertEquals( 12, entries[2].getIndex() );
+        assertEquals( "withApp3", entries.get(2).toString() );
+        assertEquals( 12, entries.get(2).getIndex() );
 
-        assertEquals( "App", entries[3].toString() );
-        assertEquals( 22, entries[3].getIndex() );
+        assertEquals( "App", entries.get(3).toString() );
+        assertEquals( 22, entries.get(3).getIndex() );
 
-        assertEquals( "app", entries[4].toString() );
-        assertEquals( 26, entries[4].getIndex() );        
+        assertEquals( "app", entries.get(4).toString() );
+        assertEquals( 26, entries.get(4).getIndex() );        
     }
 
     @Test
     public void testSpaceAfterParenOpen()
     {
-        StringEntry[] entries = SimpleWordTokenizer.tokenize( "public void withApp4( App app)" );
-        assertEquals( 5, entries.length );
+        List<StringEntry> entries = SimpleWordTokenizer.tokenize( "public void withApp4( App app)" );
+        assertEquals( 5, entries.size() );
 
-        assertEquals( "public", entries[0].toString() );
-        assertEquals( 0, entries[0].getIndex() );
+        assertEquals( "public", entries.get(0).toString() );
+        assertEquals( 0, entries.get(0).getIndex() );
 
-        assertEquals( "void", entries[1].toString() );
-        assertEquals( 7, entries[1].getIndex() );
+        assertEquals( "void", entries.get(1).toString() );
+        assertEquals( 7, entries.get(1).getIndex() );
 
-        assertEquals( "withApp4", entries[2].toString() );
-        assertEquals( 12, entries[2].getIndex() );
+        assertEquals( "withApp4", entries.get(2).toString() );
+        assertEquals( 12, entries.get(2).getIndex() );
 
-        assertEquals( "App", entries[3].toString() );
-        assertEquals( 22, entries[3].getIndex() );
+        assertEquals( "App", entries.get(3).toString() );
+        assertEquals( 22, entries.get(3).getIndex() );
 
-        assertEquals( "app", entries[4].toString() );
-        assertEquals( 26, entries[4].getIndex() );         
+        assertEquals( "app", entries.get(4).toString() );
+        assertEquals( 26, entries.get(4).getIndex() );         
     }
     
     @Test
     public void testWithIndent()
     {
-        StringEntry[] entries = SimpleWordTokenizer.tokenize( "    public void withApp3 (App app)", "App" );
-        assertEquals( 1, entries.length );
+        List<StringEntry> entries = SimpleWordTokenizer.tokenize( "    public void withApp3 (App app)", "App" );
+        assertEquals( 1, entries.size() );
         
-        assertEquals( 26, entries[0].getIndex() );
+        assertEquals( 26, entries.get(0).getIndex() );
     }
 }
\ No newline at end of file