diff --git a/plugins/android-extensions/android-extensions-compiler/src/org/jetbrains/kotlin/android/synthetic/codegen/CacheMechanisms.kt b/plugins/android-extensions/android-extensions-compiler/src/org/jetbrains/kotlin/android/synthetic/codegen/CacheMechanisms.kt index aff68de21a6..8a8e5e6c93f 100644 --- a/plugins/android-extensions/android-extensions-compiler/src/org/jetbrains/kotlin/android/synthetic/codegen/CacheMechanisms.kt +++ b/plugins/android-extensions/android-extensions-compiler/src/org/jetbrains/kotlin/android/synthetic/codegen/CacheMechanisms.kt @@ -21,6 +21,9 @@ import org.jetbrains.org.objectweb.asm.Type import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter import org.jetbrains.kotlin.android.synthetic.codegen.AbstractAndroidExtensionsExpressionCodegenExtension.Companion.PROPERTY_NAME +internal val CacheImplementation.hasCache: Boolean + get() = this != CacheImplementation.NO_CACHE + interface CacheMechanism { /** Push the cache object onto the stack. */ fun loadCache() diff --git a/plugins/android-extensions/android-extensions-runtime/src/kotlinx/android/extensions/CacheImplementation.kt b/plugins/android-extensions/android-extensions-runtime/src/kotlinx/android/extensions/CacheImplementation.kt index 6ecb9b6f3b3..698d1eb9489 100644 --- a/plugins/android-extensions/android-extensions-runtime/src/kotlinx/android/extensions/CacheImplementation.kt +++ b/plugins/android-extensions/android-extensions-runtime/src/kotlinx/android/extensions/CacheImplementation.kt @@ -16,15 +16,20 @@ package kotlinx.android.extensions +/** + * Caching mechanism for [LayoutContainer] implementations, and also for the types directly supported by Android Extensions, + * such as [android.app.Activity] or [android.app.Fragment]. + */ public enum class CacheImplementation { + /** Use [android.util.SparseArray] as a backing store for the resolved views. */ SPARSE_ARRAY, + /** Use [HashMap] as a backing store for the resolved views (default). */ HASH_MAP, + /** Do not cache views for this layout. */ NO_CACHE; - public val hasCache: Boolean - get() = this != NO_CACHE - companion object { + /** The default cache implementation is [HASH_MAP]. */ val DEFAULT = HASH_MAP } } \ No newline at end of file diff --git a/plugins/android-extensions/android-extensions-runtime/src/kotlinx/android/extensions/ContainerOptions.kt b/plugins/android-extensions/android-extensions-runtime/src/kotlinx/android/extensions/ContainerOptions.kt index a1bcf448215..571ecb58a2a 100644 --- a/plugins/android-extensions/android-extensions-runtime/src/kotlinx/android/extensions/ContainerOptions.kt +++ b/plugins/android-extensions/android-extensions-runtime/src/kotlinx/android/extensions/ContainerOptions.kt @@ -18,6 +18,10 @@ package kotlinx.android.extensions import kotlinx.android.extensions.CacheImplementation.* +/** + * Instructs Android Extensions to apply specific options for the annotated layout container. + */ public annotation class ContainerOptions( + /** A cache implementation for the container. */ public val cache: CacheImplementation = HASH_MAP ) \ No newline at end of file diff --git a/plugins/android-extensions/android-extensions-runtime/src/kotlinx/android/extensions/LayoutContainer.kt b/plugins/android-extensions/android-extensions-runtime/src/kotlinx/android/extensions/LayoutContainer.kt index 320fef00109..abd0e3d5ab7 100644 --- a/plugins/android-extensions/android-extensions-runtime/src/kotlinx/android/extensions/LayoutContainer.kt +++ b/plugins/android-extensions/android-extensions-runtime/src/kotlinx/android/extensions/LayoutContainer.kt @@ -18,6 +18,10 @@ package kotlinx.android.extensions import android.view.View +/** + * A base interface for all view holders supporting Android Extensions-style view access. + */ public interface LayoutContainer { + /** Returns the root holder view. */ public val containerView: View? } \ No newline at end of file diff --git a/plugins/android-extensions/android-extensions-runtime/src/kotlinx/android/parcel/IgnoredOnParcel.kt b/plugins/android-extensions/android-extensions-runtime/src/kotlinx/android/parcel/IgnoredOnParcel.kt index 26459be2b7b..8222af40949 100644 --- a/plugins/android-extensions/android-extensions-runtime/src/kotlinx/android/parcel/IgnoredOnParcel.kt +++ b/plugins/android-extensions/android-extensions-runtime/src/kotlinx/android/parcel/IgnoredOnParcel.kt @@ -16,6 +16,9 @@ package kotlinx.android.parcel +/** + * The property annotated with [IgnoredOnParcel] will not be stored into parcel. + */ @Target(AnnotationTarget.PROPERTY) @Retention(AnnotationRetention.SOURCE) annotation class IgnoredOnParcel \ No newline at end of file diff --git a/plugins/android-extensions/android-extensions-runtime/src/kotlinx/android/parcel/Parceler.kt b/plugins/android-extensions/android-extensions-runtime/src/kotlinx/android/parcel/Parceler.kt index ef637cc7611..110798d01b7 100644 --- a/plugins/android-extensions/android-extensions-runtime/src/kotlinx/android/parcel/Parceler.kt +++ b/plugins/android-extensions/android-extensions-runtime/src/kotlinx/android/parcel/Parceler.kt @@ -20,6 +20,9 @@ package kotlinx.android.parcel import android.os.Parcel import android.os.Parcelable +/** + * The base interface for custom [Parcelize] serializers. + */ interface Parceler { /** * Writes the [T] instance state to the [parcel].