New J2K: Extract common conversions logic to base class

This commit is contained in:
Simon Ogorodnik
2018-05-29 15:20:52 +03:00
committed by Ilya Kirillov
parent 003cee8cc1
commit c84ecb162e
2 changed files with 4 additions and 29 deletions
@@ -5,25 +5,12 @@
package org.jetbrains.kotlin.j2k.conversions
import org.jetbrains.kotlin.j2k.ConversionContext
import org.jetbrains.kotlin.j2k.tree.*
import org.jetbrains.kotlin.j2k.tree.impl.JKBlockImpl
import org.jetbrains.kotlin.j2k.tree.impl.JKKtPropertyImpl
import org.jetbrains.kotlin.load.java.JvmAbi
class FieldToPropertyConversion : MatchBasedConversion() {
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
}
class FieldToPropertyConversion : RecursiveApplicableConversionBase() {
data class PropertyInfo(
val name: String,
@@ -32,7 +19,7 @@ class FieldToPropertyConversion : MatchBasedConversion() {
var field: JKJavaField? = null
)
fun applyToElement(element: JKTreeElement): JKTreeElement {
override fun applyToElement(element: JKTreeElement): JKTreeElement {
if (element !is JKClass) return applyRecursive(element, this::applyToElement)
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.resolve.ImportPath
class TypeMappingConversion(val context: ConversionContext) : MatchBasedConversion() {
override fun onElementChanged(new: JKTreeElement, old: JKTreeElement) {
somethingChanged = true
}
class TypeMappingConversion(val context: ConversionContext) : RecursiveApplicableConversionBase() {
override fun runConversion(treeRoot: JKTreeElement, context: ConversionContext): Boolean {
val root = applyToElement(treeRoot)
assert(root === treeRoot)
return somethingChanged
}
var somethingChanged = false
fun applyToElement(element: JKTreeElement): JKTreeElement {
override fun applyToElement(element: JKTreeElement): JKTreeElement {
return if (element is JKTypeElement) {
val type = element.type
when (type) {