Inherit KProperty interfaces from function types

To be able to write the following: listOfStrings.map(String::length)
This commit is contained in:
Alexander Udalov
2015-12-11 17:13:00 +03:00
parent f25f0db10e
commit dc84445e2e
14 changed files with 98 additions and 4 deletions
@@ -36,6 +36,11 @@ public class MutablePropertyReference0 extends MutablePropertyReference implemen
((KMutableProperty0) getReflected()).set(value);
}
@Override
public Object invoke() {
return get();
}
@Override
public KProperty0.Getter getGetter() {
return ((KMutableProperty0) getReflected()).getGetter();
@@ -36,6 +36,11 @@ public class MutablePropertyReference1 extends MutablePropertyReference implemen
((KMutableProperty1) getReflected()).set(receiver, value);
}
@Override
public Object invoke(Object receiver) {
return get(receiver);
}
@Override
public KProperty1.Getter getGetter() {
return ((KMutableProperty1) getReflected()).getGetter();
@@ -36,6 +36,11 @@ public class MutablePropertyReference2 extends MutablePropertyReference implemen
((KMutableProperty2) getReflected()).set(receiver1, receiver2, value);
}
@Override
public Object invoke(Object receiver1, Object receiver2) {
return get(receiver1, receiver2);
}
@Override
public KProperty2.Getter getGetter() {
return ((KMutableProperty2) getReflected()).getGetter();
@@ -30,6 +30,11 @@ public class PropertyReference0 extends PropertyReference implements KProperty0
return ((KProperty0) getReflected()).get();
}
@Override
public Object invoke() {
return get();
}
@Override
public KProperty0.Getter getGetter() {
return ((KProperty0) getReflected()).getGetter();
@@ -30,6 +30,11 @@ public class PropertyReference1 extends PropertyReference implements KProperty1
return ((KProperty1) getReflected()).get(receiver);
}
@Override
public Object invoke(Object receiver) {
return get(receiver);
}
@Override
public KProperty1.Getter getGetter() {
return ((KProperty1) getReflected()).getGetter();
@@ -30,6 +30,11 @@ public class PropertyReference2 extends PropertyReference implements KProperty2
return ((KProperty2) getReflected()).get(receiver1, receiver2);
}
@Override
public Object invoke(Object receiver1, Object receiver2) {
return get(receiver1, receiver2);
}
@Override
public KProperty2.Getter getGetter() {
return ((KProperty2) getReflected()).getGetter();