diff --git a/plugins/android-compiler-plugin/src/org/jetbrains/kotlin/lang/resolve/android/AndroidUIXmlProcessor.kt b/plugins/android-compiler-plugin/src/org/jetbrains/kotlin/lang/resolve/android/AndroidUIXmlProcessor.kt index 139163e9770..0a998000dd4 100644 --- a/plugins/android-compiler-plugin/src/org/jetbrains/kotlin/lang/resolve/android/AndroidUIXmlProcessor.kt +++ b/plugins/android-compiler-plugin/src/org/jetbrains/kotlin/lang/resolve/android/AndroidUIXmlProcessor.kt @@ -16,42 +16,16 @@ package org.jetbrains.kotlin.lang.resolve.android -import java.util.ArrayList -import java.util.HashMap -import java.util.concurrent.ConcurrentLinkedQueue -import java.io.File -import javax.xml.parsers.SAXParserFactory -import java.io.File -import java.io.FileInputStream -import com.intellij.openapi.project.Project -import org.jetbrains.kotlin.psi.JetPsiFactory -import org.jetbrains.kotlin.psi.JetFile -import javax.xml.parsers.SAXParser -import java.util.HashMap -import com.intellij.openapi.project.Project -import java.util.concurrent.ConcurrentLinkedQueue -import com.intellij.testFramework.LightVirtualFile -import com.intellij.psi.PsiManager -import java.io.FileInputStream -import org.xml.sax.helpers.DefaultHandler -import org.xml.sax.Attributes -import com.intellij.psi.PsiFileFactory -import com.intellij.psi.util.PsiModificationTracker -import java.util.Queue -import com.intellij.psi.PsiFile import com.intellij.openapi.diagnostic.Logger -import com.intellij.openapi.module.Module +import com.intellij.openapi.project.Project +import com.intellij.psi.PsiFile +import com.intellij.psi.PsiManager import com.intellij.psi.util.CachedValue import com.intellij.psi.util.CachedValueProvider -import com.intellij.psi.util.CachedValuesManager import com.intellij.psi.util.CachedValueProvider.Result -import java.util.concurrent.atomic.AtomicInteger -import com.intellij.openapi.roots.ProjectRootModificationTracker -import com.intellij.openapi.util.* -import com.intellij.openapi.vfs.impl.* -import com.intellij.openapi.vfs.* -import kotlin.properties.* -import com.intellij.psi.impl.* +import com.intellij.psi.util.CachedValuesManager +import com.intellij.testFramework.LightVirtualFile +import org.jetbrains.kotlin.psi.JetFile import org.jetbrains.kotlin.types.Flexibility public class AndroidSyntheticFile(val name: String, val contents: String) @@ -69,12 +43,12 @@ public abstract class AndroidUIXmlProcessor(protected val project: Project) { //MAKE CONSTANT (or abstract) var supportV4 = false - private val cachedJetFiles: CachedValue> by Delegates.lazy { + private val cachedJetFiles: CachedValue> by lazy { cachedValue { val psiManager = PsiManager.getInstance(project) val applicationPackage = resourceManager.androidModuleInfo?.applicationPackage - val jetFiles = cachedSources.getValue().mapIndexed { index, syntheticFile -> + val jetFiles = cachedSources.value.mapIndexed { index, syntheticFile -> val fileName = AndroidConst.SYNTHETIC_FILENAME_PREFIX + syntheticFile.name + ".kt" val virtualFile = LightVirtualFile(fileName, syntheticFile.contents) val jetFile = psiManager.findFile(virtualFile) as JetFile @@ -109,7 +83,7 @@ public abstract class AndroidUIXmlProcessor(protected val project: Project) { val files = entry.getValue() val resources = parseLayout(files) - val layoutName = files[0].getName().substringBefore('.') + val layoutName = files[0].name.substringBefore('.') val mainLayoutFile = renderMainLayoutFile(layoutName, resources) val viewLayoutFile = renderViewLayoutFile(layoutName, resources) @@ -118,7 +92,7 @@ public abstract class AndroidUIXmlProcessor(protected val project: Project) { }.filterNotNull() + commonFiles } - public fun parseToPsi(): List? = cachedJetFiles.getValue() + public fun parseToPsi(): List? = cachedJetFiles.value protected abstract fun parseLayout(files: List): List @@ -209,8 +183,8 @@ public abstract class AndroidUIXmlProcessor(protected val project: Project) { } companion object { - private val EXPLICIT_FLEXIBLE_PACKAGE = Flexibility.FLEXIBLE_TYPE_CLASSIFIER.getPackageFqName().asString() - private val EXPLICIT_FLEXIBLE_CLASS_NAME = Flexibility.FLEXIBLE_TYPE_CLASSIFIER.getRelativeClassName().asString() + private val EXPLICIT_FLEXIBLE_PACKAGE = Flexibility.FLEXIBLE_TYPE_CLASSIFIER.packageFqName.asString() + private val EXPLICIT_FLEXIBLE_CLASS_NAME = Flexibility.FLEXIBLE_TYPE_CLASSIFIER.relativeClassName.asString() private val ANDROID_IMPORTS = listOf( "android.app.*", diff --git a/plugins/android-compiler-plugin/src/org/jetbrains/kotlin/lang/resolve/android/CliAndroidResourceManager.kt b/plugins/android-compiler-plugin/src/org/jetbrains/kotlin/lang/resolve/android/CliAndroidResourceManager.kt index c79174e129b..4c807f9b3fb 100644 --- a/plugins/android-compiler-plugin/src/org/jetbrains/kotlin/lang/resolve/android/CliAndroidResourceManager.kt +++ b/plugins/android-compiler-plugin/src/org/jetbrains/kotlin/lang/resolve/android/CliAndroidResourceManager.kt @@ -17,13 +17,12 @@ package org.jetbrains.kotlin.lang.resolve.android import com.intellij.openapi.project.Project +import org.xml.sax.Attributes +import org.xml.sax.helpers.DefaultHandler import java.io.File import java.io.FileInputStream -import org.xml.sax.helpers.DefaultHandler -import org.xml.sax.Attributes import javax.xml.parsers.SAXParser import javax.xml.parsers.SAXParserFactory -import kotlin.properties.Delegates public class CliAndroidResourceManager( project: Project, @@ -31,7 +30,7 @@ public class CliAndroidResourceManager( private val resDirectories: List ) : AndroidResourceManager(project) { - override val androidModuleInfo by Delegates.lazy { + override val androidModuleInfo by lazy { AndroidModuleInfo(getApplicationPackage(manifestPath), resDirectories) } @@ -39,7 +38,7 @@ public class CliAndroidResourceManager( protected fun initSAX(): SAXParser { val saxFactory = SAXParserFactory.newInstance() - saxFactory.setNamespaceAware(true) + saxFactory.isNamespaceAware = true return saxFactory.newSAXParser() } diff --git a/plugins/android-compiler-plugin/src/org/jetbrains/kotlin/lang/resolve/android/CliAndroidUIXmlProcessor.kt b/plugins/android-compiler-plugin/src/org/jetbrains/kotlin/lang/resolve/android/CliAndroidUIXmlProcessor.kt index ad85c63e305..d2eaac3df8a 100644 --- a/plugins/android-compiler-plugin/src/org/jetbrains/kotlin/lang/resolve/android/CliAndroidUIXmlProcessor.kt +++ b/plugins/android-compiler-plugin/src/org/jetbrains/kotlin/lang/resolve/android/CliAndroidUIXmlProcessor.kt @@ -16,16 +16,12 @@ package org.jetbrains.kotlin.lang.resolve.android -import java.util.ArrayList import com.intellij.openapi.project.Project -import com.intellij.psi.PsiFile -import java.io.ByteArrayInputStream -import kotlin.properties.Delegates -import com.intellij.psi.impl.* -import com.intellij.openapi.components.* import com.intellij.openapi.util.ModificationTracker +import com.intellij.psi.PsiFile import com.intellij.psi.util.CachedValue import com.intellij.psi.util.CachedValueProvider.Result +import java.io.ByteArrayInputStream public class CliAndroidUIXmlProcessor( project: Project, @@ -33,11 +29,11 @@ public class CliAndroidUIXmlProcessor( private val resDirectories: List ) : AndroidUIXmlProcessor(project) { - override val resourceManager: CliAndroidResourceManager by Delegates.lazy { + override val resourceManager: CliAndroidResourceManager by lazy { CliAndroidResourceManager(project, manifestPath, resDirectories) } - override val cachedSources: CachedValue> by Delegates.lazy { + override val cachedSources: CachedValue> by lazy { cachedValue { Result.create(parse(), ModificationTracker.NEVER_CHANGED) } @@ -49,7 +45,7 @@ public class CliAndroidUIXmlProcessor( try { for (file in files) { - val inputStream = ByteArrayInputStream(file.getVirtualFile().contentsToByteArray()) + val inputStream = ByteArrayInputStream(file.virtualFile.contentsToByteArray()) resourceManager.saxParser.parse(inputStream, handler) } return removeDuplicates(resources)