@@ -27,24 +27,24 @@ fun URI.toKlsURI(): KlsURI? = when (scheme) {
27
27
* Other file extensions for classes (such as .kt and .java) are supported too, in
28
28
* which case the file will directly be used without invoking the decompiler.
29
29
*/
30
- data class KlsURI (val fileUri : URI , val query : Map <QueryParams , Any >) {
30
+ data class KlsURI (val fileUri : URI , val query : Map <QueryParam , Any >) {
31
31
32
32
/* *
33
33
* Possible KLS URI query parameters
34
34
*/
35
- enum class QueryParams (val parameterName : String ) {
35
+ enum class QueryParam (val parameterName : String ) {
36
36
SOURCE (" source" );
37
37
38
38
override fun toString (): String = parameterName
39
39
40
40
companion object {
41
- val ValueParsers : Map <QueryParams , (String ) - > Any > = mapOf (
42
- Pair (QueryParams .SOURCE ) { it.toBoolean() }
41
+ val VALUE_PARSERS : Map <QueryParam , (String ) - > Any > = mapOf (
42
+ Pair (QueryParam .SOURCE ) { it.toBoolean() }
43
43
)
44
44
}
45
45
}
46
46
47
- constructor (uri: URI ) : this (parseKlsURIFileName (uri), parseKlsURIQuery(uri))
47
+ constructor (uri: URI ) : this (parseKlsURIFileURI (uri), parseKlsURIQuery(uri))
48
48
49
49
val fileName: String
50
50
get() = fileUri.toString().substringAfterLast(" /" )
@@ -55,7 +55,7 @@ data class KlsURI(val fileUri: URI, val query: Map<QueryParams, Any>) {
55
55
?.lastOrNull()
56
56
private val queryString get() = if (query.isEmpty()) " " else query.entries.fold(" ?" ) { accum, next -> " $accum${next.key} =${next.value} " }
57
57
private val uri: URI get() = URI (fileUri.toString() + queryString)
58
- val source: Boolean get() = if ( query[QueryParams .SOURCE ] != null ) query[ QueryParams . SOURCE ] as Boolean else false
58
+ val source: Boolean get() = query[QueryParam .SOURCE ] as ? Boolean ? : false
59
59
val isCompiled: Boolean
60
60
get() = fileExtension == " class"
61
61
@@ -66,9 +66,9 @@ data class KlsURI(val fileUri: URI, val query: Map<QueryParams, Any>) {
66
66
}
67
67
68
68
fun withSource (source : Boolean ): KlsURI {
69
- val newQuery: MutableMap <QueryParams , Any > = mutableMapOf ()
69
+ val newQuery: MutableMap <QueryParam , Any > = mutableMapOf ()
70
70
newQuery.putAll(query)
71
- newQuery[QueryParams .SOURCE ] = source.toString()
71
+ newQuery[QueryParam .SOURCE ] = source.toString()
72
72
return KlsURI (fileUri, newQuery)
73
73
}
74
74
@@ -113,23 +113,23 @@ data class KlsURI(val fileUri: URI, val query: Map<QueryParams, Any>) {
113
113
override fun toString (): String = uri.toString()
114
114
}
115
115
116
- private fun parseKlsURIFileName (uri : URI ): URI = URI (uri.toString().split(" ?" )[0 ])
116
+ private fun parseKlsURIFileURI (uri : URI ): URI = URI (uri.toString().split(" ?" )[0 ])
117
117
118
- private fun parseKlsURIQuery (uri : URI ): Map <KlsURI .QueryParams , Any > = parseQuery(uri.toString().split(" ?" ).getOrElse(1 ) { " " })
118
+ private fun parseKlsURIQuery (uri : URI ): Map <KlsURI .QueryParam , Any > = parseQuery(uri.toString().split(" ?" ).getOrElse(1 ) { " " })
119
119
120
- private fun parseQuery (query : String ): Map <KlsURI .QueryParams , Any > =
120
+ private fun parseQuery (query : String ): Map <KlsURI .QueryParam , Any > =
121
121
query.split(" &" ).mapNotNull {
122
122
val parts = it.split(" =" )
123
123
if (parts.size == 2 ) getQueryParameter(parts[0 ], parts[1 ]) else null
124
124
}.toMap()
125
125
126
- private fun getQueryParameter (property : String , value : String ): Pair <KlsURI .QueryParams , Any >? {
127
- val queryParam: KlsURI .QueryParams ? = KlsURI .QueryParams .values().find { it.parameterName == property }
126
+ private fun getQueryParameter (property : String , value : String ): Pair <KlsURI .QueryParam , Any >? {
127
+ val queryParam: KlsURI .QueryParam ? = KlsURI .QueryParam .values().find { it.parameterName == property }
128
128
129
129
if (queryParam != null ) {
130
- val typeParser = KlsURI .QueryParams . ValueParsers [queryParam]
130
+ val typeParser = KlsURI .QueryParam . VALUE_PARSERS [queryParam]
131
131
val queryParamValue = typeParser?.invoke(value)
132
- return if ( queryParamValue != null ) Pair (queryParam, queryParamValue) else null
132
+ return queryParamValue?. let { Pair (queryParam, it) }
133
133
}
134
134
135
135
return null
0 commit comments