mirror of
https://github.com/corda/corda.git
synced 2025-02-20 17:33:15 +00:00
IntelliJ reformat of the code
This commit is contained in:
parent
b356220da1
commit
28b7610e47
@ -78,8 +78,8 @@ class ClassCarpenter {
|
|||||||
fun fieldsIncludingSuperclasses(): Map<String, Class<out Any?>> = (superclass?.fieldsIncludingSuperclasses() ?: emptyMap()) + LinkedHashMap(fields)
|
fun fieldsIncludingSuperclasses(): Map<String, Class<out Any?>> = (superclass?.fieldsIncludingSuperclasses() ?: emptyMap()) + LinkedHashMap(fields)
|
||||||
fun descriptorsIncludingSuperclasses(): Map<String, String> = (superclass?.descriptorsIncludingSuperclasses() ?: emptyMap()) + LinkedHashMap(descriptors)
|
fun descriptorsIncludingSuperclasses(): Map<String, String> = (superclass?.descriptorsIncludingSuperclasses() ?: emptyMap()) + LinkedHashMap(descriptors)
|
||||||
|
|
||||||
val jvmName : String
|
val jvmName: String
|
||||||
get() = name.replace (".", "/")
|
get() = name.replace(".", "/")
|
||||||
}
|
}
|
||||||
|
|
||||||
private val String.jvm: String get() = replace(".", "/")
|
private val String.jvm: String get() = replace(".", "/")
|
||||||
@ -89,14 +89,14 @@ class ClassCarpenter {
|
|||||||
fields: Map<String, Class<out Any?>>,
|
fields: Map<String, Class<out Any?>>,
|
||||||
superclass: Schema? = null,
|
superclass: Schema? = null,
|
||||||
interfaces: List<Class<*>> = emptyList()
|
interfaces: List<Class<*>> = emptyList()
|
||||||
) : Schema (name, fields, superclass, interfaces)
|
) : Schema(name, fields, superclass, interfaces)
|
||||||
|
|
||||||
class InterfaceSchema(
|
class InterfaceSchema(
|
||||||
name: String,
|
name: String,
|
||||||
fields: Map<String, Class<out Any?>>,
|
fields: Map<String, Class<out Any?>>,
|
||||||
superclass: Schema? = null,
|
superclass: Schema? = null,
|
||||||
interfaces: List<Class<*>> = emptyList()
|
interfaces: List<Class<*>> = emptyList()
|
||||||
) : Schema (name, fields, superclass, interfaces)
|
) : Schema(name, fields, superclass, interfaces)
|
||||||
|
|
||||||
class DuplicateName : RuntimeException("An attempt was made to register two classes with the same name within the same ClassCarpenter namespace.")
|
class DuplicateName : RuntimeException("An attempt was made to register two classes with the same name within the same ClassCarpenter namespace.")
|
||||||
class InterfaceMismatch(msg: String) : RuntimeException(msg)
|
class InterfaceMismatch(msg: String) : RuntimeException(msg)
|
||||||
@ -104,6 +104,7 @@ class ClassCarpenter {
|
|||||||
private class CarpenterClassLoader : ClassLoader(Thread.currentThread().contextClassLoader) {
|
private class CarpenterClassLoader : ClassLoader(Thread.currentThread().contextClassLoader) {
|
||||||
fun load(name: String, bytes: ByteArray) = defineClass(name, bytes, 0, bytes.size)
|
fun load(name: String, bytes: ByteArray) = defineClass(name, bytes, 0, bytes.size)
|
||||||
}
|
}
|
||||||
|
|
||||||
private val classloader = CarpenterClassLoader()
|
private val classloader = CarpenterClassLoader()
|
||||||
|
|
||||||
private val _loaded = HashMap<String, Class<*>>()
|
private val _loaded = HashMap<String, Class<*>>()
|
||||||
@ -139,11 +140,11 @@ class ClassCarpenter {
|
|||||||
return _loaded[schema.name]!!
|
return _loaded[schema.name]!!
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun generateInterface (schema: Schema): Class<*> {
|
private fun generateInterface(schema: Schema): Class<*> {
|
||||||
return generate (schema) { cw, schema ->
|
return generate(schema) { cw, schema ->
|
||||||
val interfaces = schema.interfaces.map { it.name.jvm }.toTypedArray()
|
val interfaces = schema.interfaces.map { it.name.jvm }.toTypedArray()
|
||||||
|
|
||||||
with (cw) {
|
with(cw) {
|
||||||
visit(V1_8, ACC_PUBLIC + ACC_ABSTRACT + ACC_INTERFACE, schema.jvmName, null, "java/lang/Object", interfaces)
|
visit(V1_8, ACC_PUBLIC + ACC_ABSTRACT + ACC_INTERFACE, schema.jvmName, null, "java/lang/Object", interfaces)
|
||||||
|
|
||||||
generateAbstractGetters(schema)
|
generateAbstractGetters(schema)
|
||||||
@ -153,12 +154,12 @@ class ClassCarpenter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun generateClass (schema: Schema): Class<*> {
|
private fun generateClass(schema: Schema): Class<*> {
|
||||||
return generate (schema) { cw, schema ->
|
return generate(schema) { cw, schema ->
|
||||||
val superName = schema.superclass?.jvmName ?: "java/lang/Object"
|
val superName = schema.superclass?.jvmName ?: "java/lang/Object"
|
||||||
val interfaces = arrayOf(SimpleFieldAccess::class.java.name.jvm) + schema.interfaces.map { it.name.jvm }
|
val interfaces = arrayOf(SimpleFieldAccess::class.java.name.jvm) + schema.interfaces.map { it.name.jvm }
|
||||||
|
|
||||||
with (cw) {
|
with(cw) {
|
||||||
visit(V1_8, ACC_PUBLIC + ACC_SUPER, schema.jvmName, null, superName, interfaces)
|
visit(V1_8, ACC_PUBLIC + ACC_SUPER, schema.jvmName, null, superName, interfaces)
|
||||||
|
|
||||||
generateFields(schema)
|
generateFields(schema)
|
||||||
@ -173,11 +174,11 @@ class ClassCarpenter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun generate(schema: Schema, generator : (ClassWriter, Schema) -> Unit): Class<*> {
|
private fun generate(schema: Schema, generator: (ClassWriter, Schema) -> Unit): Class<*> {
|
||||||
// Lazy: we could compute max locals/max stack ourselves, it'd be faster.
|
// Lazy: we could compute max locals/max stack ourselves, it'd be faster.
|
||||||
val cw = ClassWriter (ClassWriter.COMPUTE_FRAMES or ClassWriter.COMPUTE_MAXS)
|
val cw = ClassWriter(ClassWriter.COMPUTE_FRAMES or ClassWriter.COMPUTE_MAXS)
|
||||||
|
|
||||||
generator (cw, schema)
|
generator(cw, schema)
|
||||||
|
|
||||||
val clazz = classloader.load(schema.name, cw.toByteArray())
|
val clazz = classloader.load(schema.name, cw.toByteArray())
|
||||||
_loaded[schema.name] = clazz
|
_loaded[schema.name] = clazz
|
||||||
@ -253,7 +254,7 @@ class ClassCarpenter {
|
|||||||
for ((name, _) in schema.fields) {
|
for ((name, _) in schema.fields) {
|
||||||
val descriptor = schema.descriptors[name]
|
val descriptor = schema.descriptors[name]
|
||||||
val opcodes = ACC_ABSTRACT + ACC_PUBLIC
|
val opcodes = ACC_ABSTRACT + ACC_PUBLIC
|
||||||
with (visitMethod(opcodes, "get" + name.capitalize(), "()" + descriptor, null, null)) {
|
with(visitMethod(opcodes, "get" + name.capitalize(), "()" + descriptor, null, null)) {
|
||||||
// abstract method doesn't have any implementation so just end
|
// abstract method doesn't have any implementation so just end
|
||||||
visitEnd()
|
visitEnd()
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user