| commit | 2b5fb91c6340970e2e942ad9d9347a0ee69aec8f | [log] [tgz] |
|---|---|---|
| author | Stefan Bodewig <bodewig@apache.org> | Wed Feb 25 16:29:00 2009 +0000 |
| committer | Stefan Bodewig <bodewig@apache.org> | Wed Feb 25 16:29:00 2009 +0000 |
| tree | 5b6e921bf6977cdc84baa887593c4a3e764d57b7 | |
| parent | 2d44864a5f7d30eaee42cf30b4808566febebf6e [diff] |
provide direct access to extra fields by id git-svn-id: https://svn.apache.org/repos/asf/commons/sandbox/compress/trunk@747850 13f79535-47bb-0310-9956-ffa450edef68
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 c17c856..9dc6ed5 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
@@ -265,6 +265,18 @@ } /** + * Looks up an extra field by its header id. + * + * @return null if no such field exists. + */ + public ZipExtraField getExtraField(ZipShort type) { + if (extraFields != null) { + return (ZipExtraField) extraFields.get(type); + } + return null; + } + + /** * Throws an Exception if extra data cannot be parsed into extra fields. * @param extra an array of bytes to be parsed into extra fields * @throws RuntimeException if the bytes cannot be parsed
diff --git a/src/test/java/org/apache/commons/compress/archivers/zip/UTF8ZipFilesTest.java b/src/test/java/org/apache/commons/compress/archivers/zip/UTF8ZipFilesTest.java index d2aca3e..4aa1689 100644 --- a/src/test/java/org/apache/commons/compress/archivers/zip/UTF8ZipFilesTest.java +++ b/src/test/java/org/apache/commons/compress/archivers/zip/UTF8ZipFilesTest.java
@@ -205,14 +205,8 @@ } private static UnicodePathExtraField findUniCodePath(ZipArchiveEntry ze) { - - ZipExtraField[] efs = ze.getExtraFields(); - for (int i = 0; i < efs.length; ++i) { - if (efs[i].getHeaderId().equals(UnicodePathExtraField.UPATH_ID)) { - return (UnicodePathExtraField) efs[i]; - } - } - return null; + return (UnicodePathExtraField) + ze.getExtraField(UnicodePathExtraField.UPATH_ID); } private static void assertUnicodeName(ZipArchiveEntry ze,