summaryrefslogtreecommitdiff
path: root/platform/script-debugger/protocol/protocol-model-generator/src/ParserRootInterfaceItem.kt
blob: 3854bb0ec24affffe7a9224eb6410d1ab180a276 (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
package org.jetbrains.protocolModelGenerator

import org.jetbrains.protocolReader.JSON_READER_PARAMETER_DEF
import org.jetbrains.protocolReader.TextOutput

class ParserRootInterfaceItem(val domain: String, val name: String, private val nameScheme: ClassNameScheme.Input) : Comparable<ParserRootInterfaceItem> {
  val fullName: String

  init {
    fullName = nameScheme.getFullName(domain, name).getFullText()
  }

  fun writeCode(out: TextOutput) {
    out.append("@JsonParseMethod").newLine()
    out.append("fun ")
    appendReadMethodName(out)
    out.append('(').append(JSON_READER_PARAMETER_DEF).append("): ").append(fullName).newLine()
  }

  fun appendReadMethodName(out: TextOutput) {
    out.append(nameScheme.getParseMethodName(domain, name))
  }

  override fun compareTo(other: ParserRootInterfaceItem): Int {
    return fullName.compareTo(other.fullName)
  }
}