Move name sanitization utilities to module 'descriptors'

This commit is contained in:
Alexander Udalov
2017-01-11 14:22:18 +03:00
parent f4d59304e2
commit 6ffa56b640
7 changed files with 63 additions and 38 deletions
@@ -21,9 +21,9 @@ import com.intellij.openapi.vfs.VirtualFile
import org.jetbrains.annotations.TestOnly
import org.jetbrains.kotlin.idea.KotlinFileType
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.load.java.JvmAbi
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.name.NameUtils
import org.jetbrains.kotlin.psi.*
import java.util.*
@@ -33,20 +33,6 @@ object PackagePartClassUtils {
private val PART_CLASS_NAME_SUFFIX = "Kt"
@JvmStatic fun getPartClassName(str: String): String =
if (str.isEmpty())
"_$PART_CLASS_NAME_SUFFIX"
else
capitalizeAsJavaClassName(JvmAbi.sanitizeAsJavaIdentifier(str)) + PART_CLASS_NAME_SUFFIX
private @JvmStatic fun capitalizeAsJavaClassName(str: String): String =
// NB use Locale.ENGLISH so that build is locale-independent.
// See Javadoc on java.lang.String.toUpperCase() for more details.
if (Character.isJavaIdentifierStart(str[0]))
str.substring(0, 1).toUpperCase(Locale.ENGLISH) + str.substring(1)
else
"_$str"
private @JvmStatic fun decapitalizeAsJavaClassName(str: String): String =
// NB use Locale.ENGLISH so that build is locale-independent.
// See Javadoc on java.lang.String.toUpperCase() for more details.
@@ -77,7 +63,7 @@ object PackagePartClassUtils {
}
@JvmStatic fun getFilePartShortName(fileName: String): String =
getPartClassName(FileUtil.getNameWithoutExtension(fileName))
NameUtils.getPackagePartClassNamePrefix(FileUtil.getNameWithoutExtension(fileName)) + PART_CLASS_NAME_SUFFIX
@JvmStatic fun getFileNameByFacadeName(facadeClassName: String): String? {
if (!facadeClassName.endsWith(PART_CLASS_NAME_SUFFIX)) return null