Skip to content

Commit 54f4c10

Browse files
Improve the java implementation of the Decompression extension.
1 parent 5869ecd commit 54f4c10

File tree

14 files changed

+59
-55
lines changed

14 files changed

+59
-55
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.runetopic.cache.codec
2+
3+
import com.runetopic.cache.codec.impl.BZip2Codec
4+
import com.runetopic.cache.codec.impl.GZipCodec
5+
import com.runetopic.cache.codec.impl.NoFileCodec
6+
7+
/**
8+
* @author Tyler Telis
9+
* @email <[email protected]>
10+
*
11+
* @author Jordan Abraham
12+
*/
13+
internal sealed class CodecType(
14+
val codec: IFileCodec
15+
) {
16+
object BadCodec: CodecType(NoFileCodec())
17+
object NoCodec: CodecType(NoFileCodec())
18+
object BZipCodec: CodecType(BZip2Codec())
19+
object GZipCodec: CodecType(GZipCodec())
20+
}

cache/src/main/kotlin/com/runetopic/cache/compression/Container.kt renamed to cache/src/main/kotlin/com/runetopic/cache/codec/Container.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.runetopic.cache.compression
1+
package com.runetopic.cache.codec
22

33
/**
44
* @author Tyler Telis

cache/src/main/kotlin/com/runetopic/cache/compression/Compression.kt renamed to cache/src/main/kotlin/com/runetopic/cache/codec/ContainerCodec.kt

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
package com.runetopic.cache.compression
1+
package com.runetopic.cache.codec
22

3-
import com.runetopic.cache.compression.CompressionType.*
3+
import com.runetopic.cache.codec.CodecType.*
44
import com.runetopic.cache.exception.CompressionException
55
import com.runetopic.cache.extension.readUnsignedShort
66
import com.runetopic.cache.extension.remainingBytes
@@ -14,7 +14,7 @@ import java.util.zip.CRC32
1414
*
1515
* @author Jordan Abraham
1616
*/
17-
internal object Compression {
17+
internal object ContainerCodec {
1818

1919
fun decompress(data: ByteArray, keys: IntArray = intArrayOf()): Container {
2020
val buffer = ByteBuffer.wrap(data)
@@ -30,8 +30,8 @@ internal object Compression {
3030
crc32.update(data, 0, 5)
3131

3232
return when (val type = compressionType(compression)) {
33-
BadCompression -> throw CompressionException("Compression type not found with a compression opcode of $compression.")
34-
is NoCompression -> {
33+
BadCodec -> throw CompressionException("Compression type not found with a compression opcode of $compression.")
34+
is NoCodec -> {
3535
val encrypted = ByteArray(length)
3636
buffer.get(encrypted, 0, length)
3737
crc32.update(encrypted, 0, length)
@@ -41,7 +41,7 @@ internal object Compression {
4141

4242
Container(decrypted, compression, revision, crc32.value.toInt())
4343
}
44-
GZipCompression, BZipCompression-> {
44+
GZipCodec, BZipCodec-> {
4545
val encrypted = ByteArray(length + 4)
4646
buffer.get(encrypted)
4747
crc32.update(encrypted, 0, encrypted.size)
@@ -66,12 +66,12 @@ internal object Compression {
6666
}
6767
}
6868

69-
private fun compressionType(compression: Int): CompressionType {
69+
private fun compressionType(compression: Int): CodecType {
7070
return when (compression) {
71-
0 -> NoCompression
72-
1 -> BZipCompression
73-
2 -> GZipCompression
74-
else -> BadCompression
71+
0 -> NoCodec
72+
1 -> BZipCodec
73+
2 -> GZipCodec
74+
else -> BadCodec
7575
}
7676
}
7777
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
@file:JvmName("Decompression")
2+
package com.runetopic.cache.codec
3+
4+
/**
5+
* @author Jordan Abraham
6+
*/
7+
fun ByteArray.decompress(keys: IntArray = intArrayOf()): ByteArray {
8+
return ContainerCodec.decompress(this, keys).data
9+
}
10+
11+
fun ByteArray.decompress(): ByteArray {
12+
return ContainerCodec.decompress(this, intArrayOf()).data
13+
}

cache/src/main/kotlin/com/runetopic/cache/compression/IFileCodec.kt renamed to cache/src/main/kotlin/com/runetopic/cache/codec/IFileCodec.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.runetopic.cache.compression
1+
package com.runetopic.cache.codec
22

33
/**
44
* @author Tyler Telis

cache/src/main/kotlin/com/runetopic/cache/compression/impl/BZip2Codec.kt renamed to cache/src/main/kotlin/com/runetopic/cache/codec/impl/BZip2Codec.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
package com.runetopic.cache.compression.impl
1+
package com.runetopic.cache.codec.impl
22

3-
import com.runetopic.cache.compression.IFileCodec
3+
import com.runetopic.cache.codec.IFileCodec
44
import com.runetopic.cache.store.Constants.BZIP_HEADER
55
import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream
66
import org.apache.commons.compress.compressors.bzip2.BZip2CompressorOutputStream

cache/src/main/kotlin/com/runetopic/cache/compression/impl/GZipCodec.kt renamed to cache/src/main/kotlin/com/runetopic/cache/codec/impl/GZipCodec.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
package com.runetopic.cache.compression.impl
1+
package com.runetopic.cache.codec.impl
22

3-
import com.runetopic.cache.compression.IFileCodec
3+
import com.runetopic.cache.codec.IFileCodec
44
import org.apache.commons.compress.utils.IOUtils
55
import java.io.ByteArrayInputStream
66
import java.io.ByteArrayOutputStream

cache/src/main/kotlin/com/runetopic/cache/compression/impl/NoFileCodec.kt renamed to cache/src/main/kotlin/com/runetopic/cache/codec/impl/NoFileCodec.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
package com.runetopic.cache.compression.impl
1+
package com.runetopic.cache.codec.impl
22

3-
import com.runetopic.cache.compression.IFileCodec
3+
import com.runetopic.cache.codec.IFileCodec
44

55
/**
66
* @author Tyler Telis

cache/src/main/kotlin/com/runetopic/cache/compression/CompressionType.kt

Lines changed: 0 additions & 20 deletions
This file was deleted.

cache/src/main/kotlin/com/runetopic/cache/extension/ByteArray.kt

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)