Simplify property hierarchy in reflection

Leave only 3*2 = 6 classes: KProperty0, KProperty1, KProperty2 and their
mutable analogs, depending on the number of receivers a property takes
This commit is contained in:
Alexander Udalov
2015-06-26 16:40:39 +03:00
parent c3b97e0668
commit 30794060a9
58 changed files with 374 additions and 653 deletions
@@ -67,27 +67,27 @@ public class Reflection {
// Properties
public static KMemberProperty memberProperty(String name, KClass owner) {
public static KProperty1 memberProperty(String name, KClass owner) {
return factory.memberProperty(name, owner);
}
public static KMutableMemberProperty mutableMemberProperty(String name, KClass owner) {
public static KMutableProperty1 mutableMemberProperty(String name, KClass owner) {
return factory.mutableMemberProperty(name, owner);
}
public static KTopLevelVariable topLevelVariable(String name, KPackage owner) {
public static KProperty0 topLevelVariable(String name, KPackage owner) {
return factory.topLevelVariable(name, owner);
}
public static KMutableTopLevelVariable mutableTopLevelVariable(String name, KPackage owner) {
public static KMutableProperty0 mutableTopLevelVariable(String name, KPackage owner) {
return factory.mutableTopLevelVariable(name, owner);
}
public static KTopLevelExtensionProperty topLevelExtensionProperty(String name, KPackage owner, Class receiver) {
public static KProperty1 topLevelExtensionProperty(String name, KPackage owner, Class receiver) {
return factory.topLevelExtensionProperty(name, owner, receiver);
}
public static KMutableTopLevelExtensionProperty mutableTopLevelExtensionProperty(String name, KPackage owner, Class receiver) {
public static KMutableProperty1 mutableTopLevelExtensionProperty(String name, KPackage owner, Class receiver) {
return factory.mutableTopLevelExtensionProperty(name, owner, receiver);
}
}
@@ -40,27 +40,27 @@ public class ReflectionFactory {
// Properties
public KMemberProperty memberProperty(String name, KClass owner) {
public KProperty1 memberProperty(String name, KClass owner) {
throw error();
}
public KMutableMemberProperty mutableMemberProperty(String name, KClass owner) {
public KMutableProperty1 mutableMemberProperty(String name, KClass owner) {
throw error();
}
public KTopLevelVariable topLevelVariable(String name, KPackage owner) {
public KProperty0 topLevelVariable(String name, KPackage owner) {
throw error();
}
public KMutableTopLevelVariable mutableTopLevelVariable(String name, KPackage owner) {
public KMutableProperty0 mutableTopLevelVariable(String name, KPackage owner) {
throw error();
}
public KTopLevelExtensionProperty topLevelExtensionProperty(String name, KPackage owner, Class receiver) {
public KProperty1 topLevelExtensionProperty(String name, KPackage owner, Class receiver) {
throw error();
}
public KMutableTopLevelExtensionProperty mutableTopLevelExtensionProperty(String name, KPackage owner, Class receiver) {
public KMutableProperty1 mutableTopLevelExtensionProperty(String name, KPackage owner, Class receiver) {
throw error();
}