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