summaryrefslogtreecommitdiff
path: root/platform/script-debugger/protocol/protocol-reader/src/MethodHandler.kt
blob: f0dd55c6f91f8ca1a27b716a2dc204b20d363de4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package org.jetbrains.protocolReader

import java.lang.reflect.Method

internal fun appendMethodSignatureJava(method: Method, paramNames: List<String>, out: TextOutput) {
  out.append(method.name).append('(')
  var firstArg = true
  val types = method.genericParameterTypes
  for (i in 0..types.size - 1) {
    val arg = types[i]
    if (firstArg) {
      firstArg = false
    }
    else {
      out.comma()
    }
    out.append(paramNames.get(i))
    out.append(": ")
    writeJavaTypeName(arg, out)
  }
  out.append(')')
}

fun writeMethodDeclarationJava(out: TextOutput, m: Method, paramNames: List<String> = listOf<String>()) {
  out.append("override fun ")
  appendMethodSignatureJava(m, paramNames, out)
}

internal interface MethodHandler {
  fun writeMethodImplementationJava(scope: ClassScope, method: Method, out: TextOutput)
}