Skip to content

Commit 78ed251

Browse files
committed
Minor refactoring of IdUtils
1 parent 94d8eca commit 78ed251

File tree

2 files changed

+7
-6
lines changed
  • utbot-framework-api/src/main/kotlin/org/utbot/framework/plugin/api

2 files changed

+7
-6
lines changed

utbot-framework-api/src/main/kotlin/org/utbot/framework/plugin/api/Api.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import org.utbot.framework.plugin.api.util.charClassId
2020
import org.utbot.framework.plugin.api.util.constructor
2121
import org.utbot.framework.plugin.api.util.doubleClassId
2222
import org.utbot.framework.plugin.api.util.executableId
23-
import org.utbot.framework.plugin.api.util.findFieldByIdOrNull
23+
import org.utbot.framework.plugin.api.util.field
2424
import org.utbot.framework.plugin.api.util.floatClassId
2525
import org.utbot.framework.plugin.api.util.id
2626
import org.utbot.framework.plugin.api.util.intClassId
@@ -30,6 +30,7 @@ import org.utbot.framework.plugin.api.util.jClass
3030
import org.utbot.framework.plugin.api.util.longClassId
3131
import org.utbot.framework.plugin.api.util.method
3232
import org.utbot.framework.plugin.api.util.primitiveTypeJvmNameOrNull
33+
import org.utbot.framework.plugin.api.util.safeField
3334
import org.utbot.framework.plugin.api.util.shortClassId
3435
import org.utbot.framework.plugin.api.util.toReferenceTypeBytecodeSignature
3536
import org.utbot.framework.plugin.api.util.voidClassId
@@ -856,7 +857,7 @@ open class FieldId(val declaringClass: ClassId, val name: String) {
856857
return result
857858
}
858859

859-
override fun toString() = declaringClass.findFieldByIdOrNull(this).toString()
860+
override fun toString() = safeField.toString()
860861
}
861862

862863
inline fun <T> withReflection(block: () -> T): T {

utbot-framework-api/src/main/kotlin/org/utbot/framework/plugin/api/util/IdUtil.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ fun ClassId.findFieldByIdOrNull(fieldId: FieldId): Field? {
290290
return null
291291
}
292292

293-
return fieldId.declaringClass.jClass.declaredFields.firstOrNull { it.name == fieldId.name }
293+
return fieldId.safeField
294294
}
295295

296296
fun ClassId.hasField(fieldId: FieldId): Boolean {
@@ -310,11 +310,11 @@ fun ClassId.defaultValueModel(): UtModel = when (this) {
310310
}
311311

312312
// FieldId utils
313+
val FieldId.safeField: Field?
314+
get() = declaringClass.jClass.declaredFields.firstOrNull { it.name == name }
313315

314-
// TODO: maybe cache it somehow in the future
315316
val FieldId.field: Field
316-
get() = declaringClass.jClass.declaredFields.firstOrNull { it.name == name }
317-
?: error("Field $name is not found in class ${declaringClass.jClass.name}")
317+
get() = safeField ?: error("Field $name is not found in class ${declaringClass.jClass.name}")
318318

319319
// https://docstore.mik.ua/orelly/java-ent/jnut/ch03_13.htm
320320
val FieldId.isInnerClassEnclosingClassReference: Boolean

0 commit comments

Comments
 (0)