Skip to content

Commit e2d72c6

Browse files
committed
Changed KLS URI query parameter values to String
1 parent 47a38fb commit e2d72c6

File tree

1 file changed

+7
-15
lines changed
  • server/src/main/kotlin/org/javacs/kt/externalsources

1 file changed

+7
-15
lines changed

server/src/main/kotlin/org/javacs/kt/externalsources/KlsURI.kt

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,12 @@ fun URI.toKlsURI(): KlsURI? = when (scheme) {
2929
* Other file extensions for classes (such as .kt and .java) are supported too, in
3030
* which case the file will directly be used without invoking the decompiler.
3131
*/
32-
data class KlsURI(val fileUri: URI, val query: Map<QueryParam, Any>) {
32+
data class KlsURI(val fileUri: URI, val query: Map<QueryParam, String>) {
3333
/** Possible KLS URI query parameters. */
3434
enum class QueryParam(val parameterName: String) {
3535
SOURCE("source");
3636

3737
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-
}
4438
}
4539

4640
private val queryString: String
@@ -60,7 +54,7 @@ data class KlsURI(val fileUri: URI, val query: Map<QueryParam, Any>) {
6054
get() = fileUri.schemeSpecificPart.split("!", limit = 2).get(1)
6155

6256
val source: Boolean
63-
get() = query[QueryParam.SOURCE].toString().toBoolean()
57+
get() = query[QueryParam.SOURCE].toBoolean()
6458
val isCompiled: Boolean
6559
get() = fileExtension == "class"
6660

@@ -77,7 +71,7 @@ data class KlsURI(val fileUri: URI, val query: Map<QueryParam, Any>) {
7771
}
7872

7973
fun withSource(source: Boolean): KlsURI {
80-
val newQuery: MutableMap<QueryParam, Any> = mutableMapOf()
74+
val newQuery: MutableMap<QueryParam, String> = mutableMapOf()
8175
newQuery.putAll(query)
8276
newQuery[QueryParam.SOURCE] = source.toString()
8377
return KlsURI(fileUri, newQuery)
@@ -124,21 +118,19 @@ data class KlsURI(val fileUri: URI, val query: Map<QueryParam, Any>) {
124118

125119
private fun parseKlsURIFileURI(uri: URI): URI = URI(uri.toString().split("?")[0])
126120

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) { "" })
128122

129-
private fun parseQuery(query: String): Map<KlsURI.QueryParam, Any> =
123+
private fun parseQuery(query: String): Map<KlsURI.QueryParam, String> =
130124
query.split("&").mapNotNull {
131125
val parts = it.split("=")
132126
if (parts.size == 2) getQueryParameter(parts[0], parts[1]) else null
133127
}.toMap()
134128

135-
private fun getQueryParameter(property: String, value: String): Pair<KlsURI.QueryParam, Any>? {
129+
private fun getQueryParameter(property: String, value: String): Pair<KlsURI.QueryParam, String>? {
136130
val queryParam: KlsURI.QueryParam? = KlsURI.QueryParam.values().find { it.parameterName == property }
137131

138132
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)
142134
}
143135

144136
return null

0 commit comments

Comments
 (0)