Skip to content

Commit

Permalink
Merge branch 'AllanWang-extension-factory-type' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
mikepenz committed Jun 15, 2019
2 parents 8ebd3f6 + bb60200 commit 9c845be
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,9 @@ import com.mikepenz.fastadapter.FastAdapter
import com.mikepenz.fastadapter.IAdapterExtension
import com.mikepenz.fastadapter.IItem

interface ExtensionFactory {
interface ExtensionFactory<T : IAdapterExtension<out IItem<out RecyclerView.ViewHolder>>> {

val clazz: Class<out IAdapterExtension<out IItem<out RecyclerView.ViewHolder>>>
val clazz: Class<T>

fun create(
fastAdapter: FastAdapter<out IItem<out RecyclerView.ViewHolder>>
): IAdapterExtension<out IItem<out RecyclerView.ViewHolder>>?
fun create(fastAdapter: FastAdapter<out IItem<out RecyclerView.ViewHolder>>): T?
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,9 @@ import com.mikepenz.fastadapter.IItem

object ExtensionsFactories {

private val factories =
LinkedHashMap<Class<out IAdapterExtension<out IItem<out RecyclerView.ViewHolder>>>, ExtensionFactory>()
private val factories = LinkedHashMap<Class<out IAdapterExtension<out IItem<out RecyclerView.ViewHolder>>>, ExtensionFactory<*>>()

fun register(factory: ExtensionFactory) {
fun register(factory: ExtensionFactory<*>) {
factories[factory.clazz] = factory
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,16 @@ package com.mikepenz.fastadapter.select

import androidx.recyclerview.widget.RecyclerView
import com.mikepenz.fastadapter.FastAdapter
import com.mikepenz.fastadapter.IAdapterExtension
import com.mikepenz.fastadapter.IItem
import com.mikepenz.fastadapter.extensions.ExtensionFactory

class SelectExtensionFactory : ExtensionFactory {
class SelectExtensionFactory : ExtensionFactory<SelectExtension<*>> {

override val clazz = SelectExtension::class.java

override fun create(
fastAdapter: FastAdapter<out IItem<out RecyclerView.ViewHolder>>
): IAdapterExtension<out IItem<out RecyclerView.ViewHolder>>? {
fastAdapter: FastAdapter<out IItem<out RecyclerView.ViewHolder>>
): SelectExtension<*>? {
return SelectExtension(fastAdapter)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,16 @@ package com.mikepenz.fastadapter.expandable

import androidx.recyclerview.widget.RecyclerView
import com.mikepenz.fastadapter.FastAdapter
import com.mikepenz.fastadapter.IAdapterExtension
import com.mikepenz.fastadapter.IItem
import com.mikepenz.fastadapter.extensions.ExtensionFactory

class ExpandableExtensionFactory : ExtensionFactory {
class ExpandableExtensionFactory : ExtensionFactory<ExpandableExtension<*>> {

override val clazz = ExpandableExtension::class.java

override fun create(
fastAdapter: FastAdapter<out IItem<out RecyclerView.ViewHolder>>
): IAdapterExtension<out IItem<out RecyclerView.ViewHolder>>? {
fastAdapter: FastAdapter<out IItem<out RecyclerView.ViewHolder>>
): ExpandableExtension<*>? {
return ExpandableExtension(fastAdapter)
}
}

0 comments on commit 9c845be

Please sign in to comment.