Move getterName/setterName to JvmAbi

Reuse in RuntimeTypeMapper in reflection
This commit is contained in:
Alexander Udalov
2015-07-09 20:05:44 +03:00
parent 64d8e35d26
commit c62f19ee82
13 changed files with 82 additions and 94 deletions
@@ -111,7 +111,7 @@ object RuntimeTypeMapper {
val field = signature.getField()
// TODO: some kind of test on the Java Bean convention?
return getterName(nameResolver.getString(field.getName())) +
return JvmAbi.getterName(nameResolver.getString(field.getName())) +
"()" +
deserializer.typeDescriptor(field.getType())
}
@@ -120,7 +120,7 @@ object RuntimeTypeMapper {
throw KotlinReflectionInternalError("Incorrect resolution sequence for Java field $property")
return StringBuilder {
append(getterName(method.getName().asString()))
append(JvmAbi.getterName(method.getName().asString()))
append("()")
appendJavaType(method.getType())
}.toString()
@@ -128,14 +128,6 @@ object RuntimeTypeMapper {
else throw KotlinReflectionInternalError("Unknown origin of $property (${property.javaClass})")
}
private fun getterName(propertyName: String): String {
return JvmAbi.GETTER_PREFIX + propertyName.capitalizeWithJavaBeanConvention()
}
private fun String.capitalizeWithJavaBeanConvention(): String {
return if (length() > 1 && this[1].isUpperCase()) this else capitalize()
}
fun mapJvmClassToKotlinClassId(klass: Class<*>): ClassId {
if (klass.isArray()) {
klass.getComponentType().primitiveType?.let {