@@ -29,18 +29,12 @@ fun URI.toKlsURI(): KlsURI? = when (scheme) {
29
29
* Other file extensions for classes (such as .kt and .java) are supported too, in
30
30
* which case the file will directly be used without invoking the decompiler.
31
31
*/
32
- data class KlsURI (val fileUri : URI , val query : Map <QueryParam , Any >) {
32
+ data class KlsURI (val fileUri : URI , val query : Map <QueryParam , String >) {
33
33
/* * Possible KLS URI query parameters. */
34
34
enum class QueryParam (val parameterName : String ) {
35
35
SOURCE (" source" );
36
36
37
37
override fun toString (): String = parameterName
38
-
39
- companion object {
40
- val VALUE_PARSERS : Map <QueryParam , (String ) - > Any > = mapOf (
41
- Pair (QueryParam .SOURCE ) { it.toBoolean() }
42
- )
43
- }
44
38
}
45
39
46
40
private val queryString: String
@@ -60,7 +54,7 @@ data class KlsURI(val fileUri: URI, val query: Map<QueryParam, Any>) {
60
54
get() = fileUri.schemeSpecificPart.split(" !" , limit = 2 ).get(1 )
61
55
62
56
val source: Boolean
63
- get() = query[QueryParam .SOURCE ].toString(). toBoolean()
57
+ get() = query[QueryParam .SOURCE ].toBoolean()
64
58
val isCompiled: Boolean
65
59
get() = fileExtension == " class"
66
60
@@ -77,7 +71,7 @@ data class KlsURI(val fileUri: URI, val query: Map<QueryParam, Any>) {
77
71
}
78
72
79
73
fun withSource (source : Boolean ): KlsURI {
80
- val newQuery: MutableMap <QueryParam , Any > = mutableMapOf ()
74
+ val newQuery: MutableMap <QueryParam , String > = mutableMapOf ()
81
75
newQuery.putAll(query)
82
76
newQuery[QueryParam .SOURCE ] = source.toString()
83
77
return KlsURI (fileUri, newQuery)
@@ -124,21 +118,19 @@ data class KlsURI(val fileUri: URI, val query: Map<QueryParam, Any>) {
124
118
125
119
private fun parseKlsURIFileURI (uri : URI ): URI = URI (uri.toString().split(" ?" )[0 ])
126
120
127
- private fun parseKlsURIQuery (uri : URI ): Map <KlsURI .QueryParam , Any > = parseQuery(uri.toString().split(" ?" ).getOrElse(1 ) { " " })
121
+ private fun parseKlsURIQuery (uri : URI ): Map <KlsURI .QueryParam , String > = parseQuery(uri.toString().split(" ?" ).getOrElse(1 ) { " " })
128
122
129
- private fun parseQuery (query : String ): Map <KlsURI .QueryParam , Any > =
123
+ private fun parseQuery (query : String ): Map <KlsURI .QueryParam , String > =
130
124
query.split(" &" ).mapNotNull {
131
125
val parts = it.split(" =" )
132
126
if (parts.size == 2 ) getQueryParameter(parts[0 ], parts[1 ]) else null
133
127
}.toMap()
134
128
135
- private fun getQueryParameter (property : String , value : String ): Pair <KlsURI .QueryParam , Any >? {
129
+ private fun getQueryParameter (property : String , value : String ): Pair <KlsURI .QueryParam , String >? {
136
130
val queryParam: KlsURI .QueryParam ? = KlsURI .QueryParam .values().find { it.parameterName == property }
137
131
138
132
if (queryParam != null ) {
139
- val typeParser = KlsURI .QueryParam .VALUE_PARSERS [queryParam]
140
- val queryParamValue = typeParser?.invoke(value)
141
- return queryParamValue?.let { Pair (queryParam, it) }
133
+ return Pair (queryParam, value)
142
134
}
143
135
144
136
return null
0 commit comments