package org.jetbrains.dokka.javadoc

import com.sun.javadoc.SourcePosition
import org.jetbrains.dokka.DocumentationNode
import org.jetbrains.dokka.NodeKind
import java.io.File

class SourcePositionAdapter(val docNode: DocumentationNode) : SourcePosition {

    private val sourcePositionParts: List<String> by lazy {
        docNode.details(NodeKind.SourcePosition).firstOrNull()?.name?.split(":") ?: emptyList()
    }

    override fun file(): File? = if (sourcePositionParts.isEmpty()) null else File(sourcePositionParts[0])

    override fun line(): Int = sourcePositionParts.getOrNull(1)?.toInt() ?: -1

    override fun column(): Int = sourcePositionParts.getOrNull(2)?.toInt() ?: -1
}