Skip to content

Commit 2edc978

Browse files
committed
Language migrations from 8 --> 22
1 parent 573baba commit 2edc978

File tree

7 files changed

+49
-90
lines changed

7 files changed

+49
-90
lines changed

src/main/java/software/coley/lljzip/ZipIO.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ public static ZipArchive readJvm(Path path) throws IOException {
172172
*
173173
* @return Archive from path.
174174
*
175-
* @throws IOException
175+
* @throws IOException When the archive cannot be read.
176176
*/
177177
public static ZipArchive readAdaptingIO(Path path) throws IOException {
178178
ZipArchive archive = new ZipArchive();

src/main/java/software/coley/lljzip/format/compression/ZipCompressions.java

Lines changed: 37 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -131,66 +131,37 @@ public interface ZipCompressions {
131131
* @return Name of method.
132132
*/
133133
static String getName(int method) {
134-
switch (method) {
135-
case STORED:
136-
return "STORED";
137-
case SHRUNK:
138-
return "SHRUNK";
139-
case REDUCED_F1:
140-
return "REDUCED_F1";
141-
case REDUCED_F2:
142-
return "REDUCED_F2";
143-
case REDUCED_F3:
144-
return "REDUCED_F3";
145-
case REDUCED_F4:
146-
return "REDUCED_F4";
147-
case IMPLODED:
148-
return "IMPLODED";
149-
case RESERVED_TOKENIZING:
150-
return "RESERVED_TOKENIZING";
151-
case DEFLATED:
152-
return "DEFLATED";
153-
case DEFLATED_64:
154-
return "DEFLATED_64";
155-
case PKWARE_IMPLODING:
156-
return "PKWARE_IMPLODING";
157-
case PKWARE_RESERVED_11:
158-
return "PKWARE_RESERVED_11";
159-
case BZIP2:
160-
return "BZIP2";
161-
case PKWARE_RESERVED_13:
162-
return "PKWARE_RESERVED_13";
163-
case LZMA:
164-
return "LZMA";
165-
case PKWARE_RESERVED_15:
166-
return "PKWARE_RESERVED_15";
167-
case CMPSC:
168-
return "CMPSC";
169-
case PKWARE_RESERVED_17:
170-
return "PKWARE_RESERVED_17";
171-
case IBM_TERSE:
172-
return "IBM_TERSE";
173-
case IBM_LZ77:
174-
return "IBM_LZ77";
175-
case DEPRECATED_ZSTD:
176-
return "DEPRECATED_ZSTD";
177-
case ZSTANDARD:
178-
return "ZSTANDARD";
179-
case MP3:
180-
return "MP3";
181-
case XZ:
182-
return "XZ";
183-
case JPEG:
184-
return "JPEG";
185-
case WAVPACK:
186-
return "WAVPACK";
187-
case PPMD:
188-
return "PPMD";
189-
case AE_x:
190-
return "AE_x";
191-
default:
192-
return "Unknown[" + method + "]";
193-
}
134+
return switch (method) {
135+
case STORED -> "STORED";
136+
case SHRUNK -> "SHRUNK";
137+
case REDUCED_F1 -> "REDUCED_F1";
138+
case REDUCED_F2 -> "REDUCED_F2";
139+
case REDUCED_F3 -> "REDUCED_F3";
140+
case REDUCED_F4 -> "REDUCED_F4";
141+
case IMPLODED -> "IMPLODED";
142+
case RESERVED_TOKENIZING -> "RESERVED_TOKENIZING";
143+
case DEFLATED -> "DEFLATED";
144+
case DEFLATED_64 -> "DEFLATED_64";
145+
case PKWARE_IMPLODING -> "PKWARE_IMPLODING";
146+
case PKWARE_RESERVED_11 -> "PKWARE_RESERVED_11";
147+
case BZIP2 -> "BZIP2";
148+
case PKWARE_RESERVED_13 -> "PKWARE_RESERVED_13";
149+
case LZMA -> "LZMA";
150+
case PKWARE_RESERVED_15 -> "PKWARE_RESERVED_15";
151+
case CMPSC -> "CMPSC";
152+
case PKWARE_RESERVED_17 -> "PKWARE_RESERVED_17";
153+
case IBM_TERSE -> "IBM_TERSE";
154+
case IBM_LZ77 -> "IBM_LZ77";
155+
case DEPRECATED_ZSTD -> "DEPRECATED_ZSTD";
156+
case ZSTANDARD -> "ZSTANDARD";
157+
case MP3 -> "MP3";
158+
case XZ -> "XZ";
159+
case JPEG -> "JPEG";
160+
case WAVPACK -> "WAVPACK";
161+
case PPMD -> "PPMD";
162+
case AE_x -> "AE_x";
163+
default -> "Unknown[" + method + "]";
164+
};
194165
}
195166

196167
/**
@@ -204,15 +175,14 @@ static String getName(int method) {
204175
*/
205176
static MemorySegment decompress(LocalFileHeader header) throws IOException {
206177
int method = header.getCompressionMethod();
207-
switch (method) {
208-
case STORED:
209-
return header.getFileData();
210-
case DEFLATED:
211-
return header.decompress(UnsafeDeflateDecompressor.INSTANCE);
212-
default:
178+
return switch (method) {
179+
case STORED -> header.getFileData();
180+
case DEFLATED -> header.decompress(UnsafeDeflateDecompressor.INSTANCE);
181+
default -> {
213182
// TODO: Support other decompressing techniques
214183
String methodName = getName(method);
215184
throw new IOException("Unsupported compression method: " + methodName);
216-
}
185+
}
186+
};
217187
}
218188
}

src/main/java/software/coley/lljzip/format/model/LocalFileHeader.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -240,11 +240,6 @@ public PartType type() {
240240
return PartType.LOCAL_FILE_HEADER;
241241
}
242242

243-
@Override
244-
public long offset() {
245-
return offset;
246-
}
247-
248243
/**
249244
* @param decompressor
250245
* Decompressor implementation.

src/main/java/software/coley/lljzip/format/model/ZipArchive.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ public List<LocalFileHeader> getNameFilteredLocalFiles(Predicate<String> nameFil
157157
public LocalFileHeader getLocalFileByName(String name) {
158158
List<LocalFileHeader> matches = getNameFilteredLocalFiles(name::equals);
159159
if (matches.isEmpty()) return null;
160-
return matches.get(0);
160+
return matches.getFirst();
161161
}
162162

163163
/**

src/main/java/software/coley/lljzip/format/transform/ZipPartMapper.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,13 @@ public interface ZipPartMapper {
2121
*/
2222
@Nullable
2323
default ZipPart map(@Nonnull ZipArchive archive, @Nonnull ZipPart part) {
24-
if (part instanceof LocalFileHeader) {
25-
return mapLocal(archive, (LocalFileHeader) part);
26-
} else if (part instanceof CentralDirectoryFileHeader) {
27-
return mapCentral(archive, (CentralDirectoryFileHeader) part);
28-
} else if (part instanceof EndOfCentralDirectory) {
29-
return mapEnd(archive, (EndOfCentralDirectory) part);
30-
}
31-
// Unknown part type, keep as-is.
32-
return part;
24+
return switch (part) {
25+
case LocalFileHeader localFileHeader -> mapLocal(archive, localFileHeader);
26+
case CentralDirectoryFileHeader centralDirectoryFileHeader ->
27+
mapCentral(archive, centralDirectoryFileHeader);
28+
case EndOfCentralDirectory endOfCentralDirectory -> mapEnd(archive, endOfCentralDirectory);
29+
default -> part; // Unknown part type, keep as-is.
30+
};
3331
}
3432

3533
/**

src/main/java/software/coley/lljzip/util/ExtraFieldTime.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ private static TimeWrapper read(@Nonnull MemorySegment extra) {
115115
*/
116116
@Nonnull
117117
public static FileTime winTimeToFileTime(long time) {
118-
return FileTime.from(time / 10 + -11644473600000000L /* windows epoch */, TimeUnit.MICROSECONDS);
118+
return FileTime.from(time / 10 - 11644473600000000L /* windows epoch */, TimeUnit.MICROSECONDS);
119119
}
120120

121121
/**

src/main/java/software/coley/lljzip/util/NameComparator.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,15 @@ public NameComparator(Comparator<ZipPart> fallback) {
2727

2828
@Override
2929
public int compare(ZipPart o1, ZipPart o2) {
30-
if (o1 instanceof LocalFileHeader && o2 instanceof LocalFileHeader) {
31-
LocalFileHeader header1 = (LocalFileHeader) o1;
32-
LocalFileHeader header2 = (LocalFileHeader) o2;
30+
if (o1 instanceof LocalFileHeader header1 && o2 instanceof LocalFileHeader header2) {
3331
String name1 = Optional.ofNullable(header1.getLinkedDirectoryFileHeader())
3432
.map(CentralDirectoryFileHeader::getFileNameAsString)
3533
.orElse(header1.getFileNameAsString());
3634
String name2 = Optional.ofNullable(header2.getLinkedDirectoryFileHeader())
3735
.map(CentralDirectoryFileHeader::getFileNameAsString)
3836
.orElse(header2.getFileNameAsString());
3937
return name1.compareTo(name2);
40-
} else if (o1 instanceof CentralDirectoryFileHeader && o2 instanceof CentralDirectoryFileHeader) {
41-
CentralDirectoryFileHeader header1 = (CentralDirectoryFileHeader) o1;
42-
CentralDirectoryFileHeader header2 = (CentralDirectoryFileHeader) o2;
38+
} else if (o1 instanceof CentralDirectoryFileHeader header1 && o2 instanceof CentralDirectoryFileHeader header2) {
4339
String name1 = header1.getFileNameAsString();
4440
String name2 = header2.getFileNameAsString();
4541
return name1.compareTo(name2);

0 commit comments

Comments
 (0)