New J2K: Extract common conversions logic to base class
This commit is contained in:
committed by
Ilya Kirillov
parent
003cee8cc1
commit
c84ecb162e
@@ -5,25 +5,12 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.j2k.conversions
|
package org.jetbrains.kotlin.j2k.conversions
|
||||||
|
|
||||||
import org.jetbrains.kotlin.j2k.ConversionContext
|
|
||||||
import org.jetbrains.kotlin.j2k.tree.*
|
import org.jetbrains.kotlin.j2k.tree.*
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKBlockImpl
|
import org.jetbrains.kotlin.j2k.tree.impl.JKBlockImpl
|
||||||
import org.jetbrains.kotlin.j2k.tree.impl.JKKtPropertyImpl
|
import org.jetbrains.kotlin.j2k.tree.impl.JKKtPropertyImpl
|
||||||
import org.jetbrains.kotlin.load.java.JvmAbi
|
import org.jetbrains.kotlin.load.java.JvmAbi
|
||||||
|
|
||||||
class FieldToPropertyConversion : MatchBasedConversion() {
|
class FieldToPropertyConversion : RecursiveApplicableConversionBase() {
|
||||||
override fun onElementChanged(new: JKTreeElement, old: JKTreeElement) {
|
|
||||||
somethingChanged = true
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
var somethingChanged = false
|
|
||||||
|
|
||||||
override fun runConversion(treeRoot: JKTreeElement, context: ConversionContext): Boolean {
|
|
||||||
val root = applyToElement(treeRoot)
|
|
||||||
assert(root === treeRoot)
|
|
||||||
return somethingChanged
|
|
||||||
}
|
|
||||||
|
|
||||||
data class PropertyInfo(
|
data class PropertyInfo(
|
||||||
val name: String,
|
val name: String,
|
||||||
@@ -32,7 +19,7 @@ class FieldToPropertyConversion : MatchBasedConversion() {
|
|||||||
var field: JKJavaField? = null
|
var field: JKJavaField? = null
|
||||||
)
|
)
|
||||||
|
|
||||||
fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
if (element !is JKClass) return applyRecursive(element, this::applyToElement)
|
if (element !is JKClass) return applyRecursive(element, this::applyToElement)
|
||||||
|
|
||||||
val propertyInfos = mutableMapOf<String, PropertyInfo>()
|
val propertyInfos = mutableMapOf<String, PropertyInfo>()
|
||||||
|
|||||||
@@ -22,21 +22,9 @@ import org.jetbrains.kotlin.psi.analysisContext
|
|||||||
import org.jetbrains.kotlin.psi.psiUtil.getChildOfType
|
import org.jetbrains.kotlin.psi.psiUtil.getChildOfType
|
||||||
import org.jetbrains.kotlin.resolve.ImportPath
|
import org.jetbrains.kotlin.resolve.ImportPath
|
||||||
|
|
||||||
class TypeMappingConversion(val context: ConversionContext) : MatchBasedConversion() {
|
class TypeMappingConversion(val context: ConversionContext) : RecursiveApplicableConversionBase() {
|
||||||
override fun onElementChanged(new: JKTreeElement, old: JKTreeElement) {
|
|
||||||
somethingChanged = true
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun runConversion(treeRoot: JKTreeElement, context: ConversionContext): Boolean {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
val root = applyToElement(treeRoot)
|
|
||||||
assert(root === treeRoot)
|
|
||||||
return somethingChanged
|
|
||||||
}
|
|
||||||
|
|
||||||
var somethingChanged = false
|
|
||||||
|
|
||||||
|
|
||||||
fun applyToElement(element: JKTreeElement): JKTreeElement {
|
|
||||||
return if (element is JKTypeElement) {
|
return if (element is JKTypeElement) {
|
||||||
val type = element.type
|
val type = element.type
|
||||||
when (type) {
|
when (type) {
|
||||||
|
|||||||
Reference in New Issue
Block a user