You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2023/07/07 03:53:14 UTC

[commons-compress] 05/05: Use modern Map APIs

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

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-compress.git

commit b46835ce195c77763b0c37e1e9203fb42dc0a91a
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Thu Jul 6 23:53:04 2023 -0400

    Use modern Map APIs
---
 .../compress/archivers/zip/ZipArchiveEntry.java    |  4 ++++
 .../archivers/zip/ZipArchiveOutputStream.java      |  7 +++----
 .../commons/compress/archivers/zip/ZipFile.java    |  4 +---
 .../compress/harmony/pack200/ClassBands.java       | 22 ++++++++--------------
 .../commons/compress/harmony/pack200/CpBands.java  |  3 +--
 .../compress/harmony/unpack200/CpBands.java        |  7 +------
 6 files changed, 18 insertions(+), 29 deletions(-)

diff --git a/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveEntry.java b/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveEntry.java
index 595d0420..62f93b9a 100644
--- a/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveEntry.java
+++ b/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveEntry.java
@@ -26,6 +26,7 @@ import java.nio.file.attribute.FileTime;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.NoSuchElementException;
 import java.util.Objects;
@@ -226,7 +227,10 @@ public class ZipArchiveEntry extends java.util.zip.ZipEntry implements ArchiveEn
          */
         UNICODE_EXTRA_FIELD
     }
+
     static final ZipArchiveEntry[] EMPTY_ARRAY = {};
+    static LinkedList<ZipArchiveEntry> EMPTY_LINKED_LIST = new LinkedList<>();
+
     public static final int PLATFORM_UNIX = 3;
     public static final int PLATFORM_FAT  = 0;
     public static final int CRC_UNKNOWN = -1;
diff --git a/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java b/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java
index 852ddf75..7739efb8 100644
--- a/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java
+++ b/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java
@@ -1644,8 +1644,7 @@ public class ZipArchiveOutputStream extends ArchiveOutputStream {
                     .NUMBER_OF_THE_DISK_OF_CENTRAL_DIRECTORY_TOO_BIG_MESSAGE);
         }
 
-        final int numOfEntriesOnThisDisk = numberOfCDInDiskData.get(numberOfThisDisk) == null
-            ? 0 : numberOfCDInDiskData.get(numberOfThisDisk);
+        final int numOfEntriesOnThisDisk = numberOfCDInDiskData.getOrDefault(numberOfThisDisk, 0);
         if (numOfEntriesOnThisDisk >= ZipConstants.ZIP64_MAGIC_SHORT) {
             throw new Zip64RequiredException(Zip64RequiredException
                     .TOO_MANY_ENTRIES_ON_THIS_DISK_MESSAGE);
@@ -1762,7 +1761,7 @@ public class ZipArchiveOutputStream extends ArchiveOutputStream {
 
         // total number of entries in the central directory on this disk
         final int numOfEntriesOnThisDisk = isSplitZip
-            ? numberOfCDInDiskData.get(numberOfThisDisk) == null ? 0 : numberOfCDInDiskData.get(numberOfThisDisk)
+            ? numberOfCDInDiskData.getOrDefault(numberOfThisDisk, 0)
             : numberOfEntries;
         final byte[] numOfEntriesOnThisDiskData = ZipShort
                 .getBytes(Math.min(numOfEntriesOnThisDisk, ZipConstants.ZIP64_MAGIC_SHORT));
@@ -1984,7 +1983,7 @@ public class ZipArchiveOutputStream extends ArchiveOutputStream {
 
         // total number of entries in the central directory on this disk
         final int numOfEntriesOnThisDisk = isSplitZip
-            ? numberOfCDInDiskData.get(numberOfThisDisk) == null ? 0 : numberOfCDInDiskData.get(numberOfThisDisk)
+            ? numberOfCDInDiskData.getOrDefault(numberOfThisDisk, 0)
             : entries.size();
         final byte[] numOfEntriesOnThisDiskData = ZipEightByteInteger.getBytes(numOfEntriesOnThisDisk);
         writeOut(numOfEntriesOnThisDiskData);
diff --git a/src/main/java/org/apache/commons/compress/archivers/zip/ZipFile.java b/src/main/java/org/apache/commons/compress/archivers/zip/ZipFile.java
index 47861753..81569c41 100644
--- a/src/main/java/org/apache/commons/compress/archivers/zip/ZipFile.java
+++ b/src/main/java/org/apache/commons/compress/archivers/zip/ZipFile.java
@@ -868,9 +868,7 @@ public class ZipFile implements Closeable {
      * @since 1.6
      */
     public Iterable<ZipArchiveEntry> getEntries(final String name) {
-        final List<ZipArchiveEntry> entriesOfThatName = nameMap.get(name);
-        return entriesOfThatName != null ? entriesOfThatName
-            : Collections.emptyList();
+        return nameMap.getOrDefault(name, ZipArchiveEntry.EMPTY_LINKED_LIST);
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/ClassBands.java b/src/main/java/org/apache/commons/compress/harmony/pack200/ClassBands.java
index 3fb42001..79ddb0d3 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/ClassBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/ClassBands.java
@@ -589,20 +589,14 @@ public class ClassBands extends BandSet {
 		}
 	}
 
-	public void currentClassReferencesInnerClass(final CPClass inner) {
-		if (!(index >= class_this.length)) {
-			final CPClass currentClass = class_this[index];
-			if (currentClass != null && !currentClass.equals(inner)
-					&& !isInnerClassOf(currentClass.toString(), inner)) {
-				Set<CPClass> referencedInnerClasses = classReferencesInnerClass.get(currentClass);
-				if (referencedInnerClasses == null) {
-					referencedInnerClasses = new HashSet<>();
-					classReferencesInnerClass.put(currentClass, referencedInnerClasses);
-				}
-				referencedInnerClasses.add(inner);
-			}
-		}
-	}
+    public void currentClassReferencesInnerClass(final CPClass inner) {
+        if (!(index >= class_this.length)) {
+            final CPClass currentClass = class_this[index];
+            if (currentClass != null && !currentClass.equals(inner) && !isInnerClassOf(currentClass.toString(), inner)) {
+                classReferencesInnerClass.computeIfAbsent(currentClass, c -> new HashSet<>()).add(inner);
+            }
+        }
+    }
 
 	public void doBciRenumbering(final IntList bciRenumbering, final Map<Label, Integer> labelsToOffsets) {
 		renumberBci(codeLineNumberTableBciP, bciRenumbering, labelsToOffsets);
diff --git a/src/main/java/org/apache/commons/compress/harmony/pack200/CpBands.java b/src/main/java/org/apache/commons/compress/harmony/pack200/CpBands.java
index bef2cfe1..7b8562ac 100644
--- a/src/main/java/org/apache/commons/compress/harmony/pack200/CpBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/pack200/CpBands.java
@@ -147,8 +147,7 @@ public class CpBands extends BandSet {
 	}
 
     public boolean existsCpClass(final String className) {
-        final CPClass cpClass = stringsToCpClass.get(className);
-        return cpClass != null;
+        return stringsToCpClass.containsKey(className);
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/compress/harmony/unpack200/CpBands.java b/src/main/java/org/apache/commons/compress/harmony/unpack200/CpBands.java
index a31e97a0..ed11c3d4 100644
--- a/src/main/java/org/apache/commons/compress/harmony/unpack200/CpBands.java
+++ b/src/main/java/org/apache/commons/compress/harmony/unpack200/CpBands.java
@@ -107,12 +107,7 @@ public class CpBands extends BandSet {
         final String string = cpClass[index];
         final int utf8Index = cpClassInts[index];
         final int globalIndex = classOffset + index;
-        CPClass cpString = stringsToCPClass.get(string);
-        if (cpString == null) {
-            cpString = new CPClass(cpUTF8Value(utf8Index), globalIndex);
-            stringsToCPClass.put(string, cpString);
-        }
-        return cpString;
+        return stringsToCPClass.computeIfAbsent(string, k -> new CPClass(cpUTF8Value(utf8Index), globalIndex));
     }
 
     public CPClass cpClassValue(final String string) {