ADD week 5
This commit is contained in:
43
02-Easy5/E5/sources/kotlin/properties/Delegates.java
Normal file
43
02-Easy5/E5/sources/kotlin/properties/Delegates.java
Normal file
@ -0,0 +1,43 @@
|
||||
package kotlin.properties;
|
||||
|
||||
import kotlin.Metadata;
|
||||
import kotlin.Unit;
|
||||
import kotlin.jvm.functions.Function3;
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
import kotlin.reflect.KProperty;
|
||||
|
||||
/* compiled from: Delegates.kt */
|
||||
@Metadata(d1 = {"\u00002\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0010\u0002\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0000\bÆ\u0002\u0018\u00002\u00020\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0002J\u001e\u0010\u0003\u001a\u0010\u0012\u0006\u0012\u0004\u0018\u00010\u0001\u0012\u0004\u0012\u0002H\u00050\u0004\"\b\b\u0000\u0010\u0005*\u00020\u0001J\u0080\u0001\u0010\u0006\u001a\u0010\u0012\u0006\u0012\u0004\u0018\u00010\u0001\u0012\u0004\u0012\u0002H\u00050\u0004\"\u0004\b\u0000\u0010\u00052\u0006\u0010\u0007\u001a\u0002H\u00052Q\b\u0004\u0010\b\u001aK\u0012\u0017\u0012\u0015\u0012\u0002\b\u00030\n¢\u0006\f\b\u000b\u0012\b\b\f\u0012\u0004\b\b(\r\u0012\u0013\u0012\u0011H\u0005¢\u0006\f\b\u000b\u0012\b\b\f\u0012\u0004\b\b(\u000e\u0012\u0013\u0012\u0011H\u0005¢\u0006\f\b\u000b\u0012\b\b\f\u0012\u0004\b\b(\u000f\u0012\u0004\u0012\u00020\u00100\tH\u0086\bø\u0001\u0000¢\u0006\u0002\u0010\u0011J\u0080\u0001\u0010\u0012\u001a\u0010\u0012\u0006\u0012\u0004\u0018\u00010\u0001\u0012\u0004\u0012\u0002H\u00050\u0004\"\u0004\b\u0000\u0010\u00052\u0006\u0010\u0007\u001a\u0002H\u00052Q\b\u0004\u0010\b\u001aK\u0012\u0017\u0012\u0015\u0012\u0002\b\u00030\n¢\u0006\f\b\u000b\u0012\b\b\f\u0012\u0004\b\b(\r\u0012\u0013\u0012\u0011H\u0005¢\u0006\f\b\u000b\u0012\b\b\f\u0012\u0004\b\b(\u000e\u0012\u0013\u0012\u0011H\u0005¢\u0006\f\b\u000b\u0012\b\b\f\u0012\u0004\b\b(\u000f\u0012\u0004\u0012\u00020\u00130\tH\u0086\bø\u0001\u0000¢\u0006\u0002\u0010\u0011\u0082\u0002\u0007\n\u0005\b\u009920\u0001¨\u0006\u0014"}, d2 = {"Lkotlin/properties/Delegates;", "", "()V", "notNull", "Lkotlin/properties/ReadWriteProperty;", "T", "observable", "initialValue", "onChange", "Lkotlin/Function3;", "Lkotlin/reflect/KProperty;", "Lkotlin/ParameterName;", "name", "property", "oldValue", "newValue", "", "(Ljava/lang/Object;Lkotlin/jvm/functions/Function3;)Lkotlin/properties/ReadWriteProperty;", "vetoable", "", "kotlin-stdlib"}, k = 1, mv = {1, 8, 0}, xi = 48)
|
||||
/* loaded from: classes.dex */
|
||||
public final class Delegates {
|
||||
public static final Delegates INSTANCE = new Delegates();
|
||||
|
||||
private Delegates() {
|
||||
}
|
||||
|
||||
public final <T> ReadWriteProperty<Object, T> notNull() {
|
||||
return new NotNullVar();
|
||||
}
|
||||
|
||||
public final <T> ReadWriteProperty<Object, T> observable(final T initialValue, final Function3<? super KProperty<?>, ? super T, ? super T, Unit> onChange) {
|
||||
Intrinsics.checkNotNullParameter(onChange, "onChange");
|
||||
return new ObservableProperty<T>(initialValue) { // from class: kotlin.properties.Delegates$observable$1
|
||||
@Override // kotlin.properties.ObservableProperty
|
||||
protected void afterChange(KProperty<?> property, T oldValue, T newValue) {
|
||||
Intrinsics.checkNotNullParameter(property, "property");
|
||||
onChange.invoke(property, oldValue, newValue);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public final <T> ReadWriteProperty<Object, T> vetoable(final T initialValue, final Function3<? super KProperty<?>, ? super T, ? super T, Boolean> onChange) {
|
||||
Intrinsics.checkNotNullParameter(onChange, "onChange");
|
||||
return new ObservableProperty<T>(initialValue) { // from class: kotlin.properties.Delegates$vetoable$1
|
||||
@Override // kotlin.properties.ObservableProperty
|
||||
protected boolean beforeChange(KProperty<?> property, T oldValue, T newValue) {
|
||||
Intrinsics.checkNotNullParameter(property, "property");
|
||||
return onChange.invoke(property, oldValue, newValue).booleanValue();
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
29
02-Easy5/E5/sources/kotlin/properties/NotNullVar.java
Normal file
29
02-Easy5/E5/sources/kotlin/properties/NotNullVar.java
Normal file
@ -0,0 +1,29 @@
|
||||
package kotlin.properties;
|
||||
|
||||
import kotlin.Metadata;
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
import kotlin.reflect.KProperty;
|
||||
|
||||
/* compiled from: Delegates.kt */
|
||||
@Metadata(d1 = {"\u0000\"\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0000\n\u0002\u0018\u0002\n\u0002\b\u0006\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0002\b\u0002\b\u0002\u0018\u0000*\b\b\u0000\u0010\u0001*\u00020\u00022\u0010\u0012\u0006\u0012\u0004\u0018\u00010\u0002\u0012\u0004\u0012\u0002H\u00010\u0003B\u0005¢\u0006\u0002\u0010\u0004J$\u0010\u0007\u001a\u00028\u00002\b\u0010\b\u001a\u0004\u0018\u00010\u00022\n\u0010\t\u001a\u0006\u0012\u0002\b\u00030\nH\u0096\u0002¢\u0006\u0002\u0010\u000bJ,\u0010\f\u001a\u00020\r2\b\u0010\b\u001a\u0004\u0018\u00010\u00022\n\u0010\t\u001a\u0006\u0012\u0002\b\u00030\n2\u0006\u0010\u0005\u001a\u00028\u0000H\u0096\u0002¢\u0006\u0002\u0010\u000eR\u0012\u0010\u0005\u001a\u0004\u0018\u00018\u0000X\u0082\u000e¢\u0006\u0004\n\u0002\u0010\u0006¨\u0006\u000f"}, d2 = {"Lkotlin/properties/NotNullVar;", "T", "", "Lkotlin/properties/ReadWriteProperty;", "()V", "value", "Ljava/lang/Object;", "getValue", "thisRef", "property", "Lkotlin/reflect/KProperty;", "(Ljava/lang/Object;Lkotlin/reflect/KProperty;)Ljava/lang/Object;", "setValue", "", "(Ljava/lang/Object;Lkotlin/reflect/KProperty;Ljava/lang/Object;)V", "kotlin-stdlib"}, k = 1, mv = {1, 8, 0}, xi = 48)
|
||||
/* loaded from: classes.dex */
|
||||
final class NotNullVar<T> implements ReadWriteProperty<Object, T> {
|
||||
private T value;
|
||||
|
||||
@Override // kotlin.properties.ReadWriteProperty
|
||||
public void setValue(Object thisRef, KProperty<?> property, T value) {
|
||||
Intrinsics.checkNotNullParameter(property, "property");
|
||||
Intrinsics.checkNotNullParameter(value, "value");
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@Override // kotlin.properties.ReadWriteProperty, kotlin.properties.ReadOnlyProperty
|
||||
public T getValue(Object thisRef, KProperty<?> property) {
|
||||
Intrinsics.checkNotNullParameter(property, "property");
|
||||
T t = this.value;
|
||||
if (t != null) {
|
||||
return t;
|
||||
}
|
||||
throw new IllegalStateException("Property " + property.getName() + " should be initialized before get.");
|
||||
}
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
package kotlin.properties;
|
||||
|
||||
import kotlin.Metadata;
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
import kotlin.reflect.KProperty;
|
||||
|
||||
/* compiled from: ObservableProperty.kt */
|
||||
@Metadata(d1 = {"\u0000(\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0005\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0010\u000b\n\u0002\b\u0007\b&\u0018\u0000*\u0004\b\u0000\u0010\u00012\u0010\u0012\u0006\u0012\u0004\u0018\u00010\u0003\u0012\u0004\u0012\u0002H\u00010\u0002B\r\u0012\u0006\u0010\u0004\u001a\u00028\u0000¢\u0006\u0002\u0010\u0005J)\u0010\b\u001a\u00020\t2\n\u0010\n\u001a\u0006\u0012\u0002\b\u00030\u000b2\u0006\u0010\f\u001a\u00028\u00002\u0006\u0010\r\u001a\u00028\u0000H\u0014¢\u0006\u0002\u0010\u000eJ)\u0010\u000f\u001a\u00020\u00102\n\u0010\n\u001a\u0006\u0012\u0002\b\u00030\u000b2\u0006\u0010\f\u001a\u00028\u00002\u0006\u0010\r\u001a\u00028\u0000H\u0014¢\u0006\u0002\u0010\u0011J$\u0010\u0012\u001a\u00028\u00002\b\u0010\u0013\u001a\u0004\u0018\u00010\u00032\n\u0010\n\u001a\u0006\u0012\u0002\b\u00030\u000bH\u0096\u0002¢\u0006\u0002\u0010\u0014J,\u0010\u0015\u001a\u00020\t2\b\u0010\u0013\u001a\u0004\u0018\u00010\u00032\n\u0010\n\u001a\u0006\u0012\u0002\b\u00030\u000b2\u0006\u0010\u0006\u001a\u00028\u0000H\u0096\u0002¢\u0006\u0002\u0010\u0016R\u0010\u0010\u0006\u001a\u00028\u0000X\u0082\u000e¢\u0006\u0004\n\u0002\u0010\u0007¨\u0006\u0017"}, d2 = {"Lkotlin/properties/ObservableProperty;", "V", "Lkotlin/properties/ReadWriteProperty;", "", "initialValue", "(Ljava/lang/Object;)V", "value", "Ljava/lang/Object;", "afterChange", "", "property", "Lkotlin/reflect/KProperty;", "oldValue", "newValue", "(Lkotlin/reflect/KProperty;Ljava/lang/Object;Ljava/lang/Object;)V", "beforeChange", "", "(Lkotlin/reflect/KProperty;Ljava/lang/Object;Ljava/lang/Object;)Z", "getValue", "thisRef", "(Ljava/lang/Object;Lkotlin/reflect/KProperty;)Ljava/lang/Object;", "setValue", "(Ljava/lang/Object;Lkotlin/reflect/KProperty;Ljava/lang/Object;)V", "kotlin-stdlib"}, k = 1, mv = {1, 8, 0}, xi = 48)
|
||||
/* loaded from: classes.dex */
|
||||
public abstract class ObservableProperty<V> implements ReadWriteProperty<Object, V> {
|
||||
private V value;
|
||||
|
||||
protected void afterChange(KProperty<?> property, V oldValue, V newValue) {
|
||||
Intrinsics.checkNotNullParameter(property, "property");
|
||||
}
|
||||
|
||||
protected boolean beforeChange(KProperty<?> property, V oldValue, V newValue) {
|
||||
Intrinsics.checkNotNullParameter(property, "property");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override // kotlin.properties.ReadWriteProperty, kotlin.properties.ReadOnlyProperty
|
||||
public V getValue(Object thisRef, KProperty<?> property) {
|
||||
Intrinsics.checkNotNullParameter(property, "property");
|
||||
return this.value;
|
||||
}
|
||||
|
||||
public ObservableProperty(V v) {
|
||||
this.value = v;
|
||||
}
|
||||
|
||||
@Override // kotlin.properties.ReadWriteProperty
|
||||
public void setValue(Object thisRef, KProperty<?> property, V value) {
|
||||
Intrinsics.checkNotNullParameter(property, "property");
|
||||
V v = this.value;
|
||||
if (beforeChange(property, v, value)) {
|
||||
this.value = value;
|
||||
afterChange(property, v, value);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package kotlin.properties;
|
||||
|
||||
import kotlin.Metadata;
|
||||
import kotlin.reflect.KProperty;
|
||||
|
||||
/* compiled from: Interfaces.kt */
|
||||
@Metadata(d1 = {"\u0000\u0018\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u0000\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0002\bç\u0080\u0001\u0018\u0000*\u0006\b\u0000\u0010\u0001 \u0000*\u0006\b\u0001\u0010\u0002 \u00012\u00020\u0003J\"\u0010\u0004\u001a\u00028\u00012\u0006\u0010\u0005\u001a\u00028\u00002\n\u0010\u0006\u001a\u0006\u0012\u0002\b\u00030\u0007H¦\u0002¢\u0006\u0002\u0010\b¨\u0006\t"}, d2 = {"Lkotlin/properties/PropertyDelegateProvider;", "T", "D", "", "provideDelegate", "thisRef", "property", "Lkotlin/reflect/KProperty;", "(Ljava/lang/Object;Lkotlin/reflect/KProperty;)Ljava/lang/Object;", "kotlin-stdlib"}, k = 1, mv = {1, 8, 0}, xi = 48)
|
||||
/* loaded from: classes.dex */
|
||||
public interface PropertyDelegateProvider<T, D> {
|
||||
D provideDelegate(T thisRef, KProperty<?> property);
|
||||
}
|
11
02-Easy5/E5/sources/kotlin/properties/ReadOnlyProperty.java
Normal file
11
02-Easy5/E5/sources/kotlin/properties/ReadOnlyProperty.java
Normal file
@ -0,0 +1,11 @@
|
||||
package kotlin.properties;
|
||||
|
||||
import kotlin.Metadata;
|
||||
import kotlin.reflect.KProperty;
|
||||
|
||||
/* compiled from: Interfaces.kt */
|
||||
@Metadata(d1 = {"\u0000\u0018\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u0000\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0002\bæ\u0080\u0001\u0018\u0000*\u0006\b\u0000\u0010\u0001 \u0000*\u0006\b\u0001\u0010\u0002 \u00012\u00020\u0003J\"\u0010\u0004\u001a\u00028\u00012\u0006\u0010\u0005\u001a\u00028\u00002\n\u0010\u0006\u001a\u0006\u0012\u0002\b\u00030\u0007H¦\u0002¢\u0006\u0002\u0010\b¨\u0006\t"}, d2 = {"Lkotlin/properties/ReadOnlyProperty;", "T", "V", "", "getValue", "thisRef", "property", "Lkotlin/reflect/KProperty;", "(Ljava/lang/Object;Lkotlin/reflect/KProperty;)Ljava/lang/Object;", "kotlin-stdlib"}, k = 1, mv = {1, 8, 0}, xi = 48)
|
||||
/* loaded from: classes.dex */
|
||||
public interface ReadOnlyProperty<T, V> {
|
||||
V getValue(T thisRef, KProperty<?> property);
|
||||
}
|
14
02-Easy5/E5/sources/kotlin/properties/ReadWriteProperty.java
Normal file
14
02-Easy5/E5/sources/kotlin/properties/ReadWriteProperty.java
Normal file
@ -0,0 +1,14 @@
|
||||
package kotlin.properties;
|
||||
|
||||
import kotlin.Metadata;
|
||||
import kotlin.reflect.KProperty;
|
||||
|
||||
/* compiled from: Interfaces.kt */
|
||||
@Metadata(d1 = {"\u0000 \n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0002\b\u0003\bf\u0018\u0000*\u0006\b\u0000\u0010\u0001 \u0000*\u0004\b\u0001\u0010\u00022\u000e\u0012\u0004\u0012\u0002H\u0001\u0012\u0004\u0012\u0002H\u00020\u0003J\"\u0010\u0004\u001a\u00028\u00012\u0006\u0010\u0005\u001a\u00028\u00002\n\u0010\u0006\u001a\u0006\u0012\u0002\b\u00030\u0007H¦\u0002¢\u0006\u0002\u0010\bJ*\u0010\t\u001a\u00020\n2\u0006\u0010\u0005\u001a\u00028\u00002\n\u0010\u0006\u001a\u0006\u0012\u0002\b\u00030\u00072\u0006\u0010\u000b\u001a\u00028\u0001H¦\u0002¢\u0006\u0002\u0010\f¨\u0006\r"}, d2 = {"Lkotlin/properties/ReadWriteProperty;", "T", "V", "Lkotlin/properties/ReadOnlyProperty;", "getValue", "thisRef", "property", "Lkotlin/reflect/KProperty;", "(Ljava/lang/Object;Lkotlin/reflect/KProperty;)Ljava/lang/Object;", "setValue", "", "value", "(Ljava/lang/Object;Lkotlin/reflect/KProperty;Ljava/lang/Object;)V", "kotlin-stdlib"}, k = 1, mv = {1, 8, 0}, xi = 48)
|
||||
/* loaded from: classes.dex */
|
||||
public interface ReadWriteProperty<T, V> extends ReadOnlyProperty<T, V> {
|
||||
@Override // kotlin.properties.ReadOnlyProperty
|
||||
V getValue(T thisRef, KProperty<?> property);
|
||||
|
||||
void setValue(T thisRef, KProperty<?> property, V value);
|
||||
}
|
Reference in New Issue
Block a user