Skip to content

Instantly share code, notes, and snippets.

class SimpleBaseGenericReactiveMongoRepository<ENTITY>(
private val entityInformation: MappingMongoEntityInformation<ENTITY, String>,
private val template: ReactiveMongoTemplate
) : SimpleReactiveMongoRepository<ENTITY, String>(entityInformation, template),
BaseGenericReactiveMongoRepository<ENTITY> {
private val eventPublisher: ApplicationEventPublisher?
init {
val context = template.converter.mappingContext as MongoMappingContext
@ghahramani
ghahramani / BookRepository.kt
Last active January 21, 2020 23:43
Spring data default methods
interface BookRepository : BaseMongoRepository<Book> {
findByNameContainingIgnoreCaseAndVisibileIsTrue(name:String): Flux<Book>
}
@ghahramani
ghahramani / BookRepository.kt
Created January 21, 2020 23:49
Spring data default methods
interface BookRepository : ReactiveMongoRepository<Book, String> {
findByNameContainingIgnoreCaseAndVisibileIsTrue(name:String): Flux<Book>
}
@ghahramani
ghahramani / BaseGenericReactiveMongoRepository.kt
Created January 22, 2020 00:41
Spring data extending default methods
@NoRepositoryBean
interface BaseGenericReactiveMongoRepository<T> : ReactiveMongoRepository<T, String> {
fun patch(id: String, fields: Map<String, Any>): Mono<T>
}
@ghahramani
ghahramani / ComponentAccessor.kt
Last active February 9, 2020 22:26
Custom view lifecycle
import androidx.annotation.CallSuper
import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleObserver
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.LifecycleRegistry
import dagger.android.DaggerApplication
import io.reactivex.disposables.Disposable
interface ComponentAccessor : LifecycleOwner, LifecycleObserver {
@ghahramani
ghahramani / ComponentAccessorImpl.kt
Last active March 27, 2020 12:20
Custom view lifecycle
import android.annotation.SuppressLint
import android.content.Context
import android.content.ContextWrapper
import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.LifecycleRegistry
import androidx.lifecycle.OnLifecycleEvent
import dagger.android.DaggerApplication
import io.reactivex.disposables.CompositeDisposable
@ghahramani
ghahramani / ViewModelAccessor.kt
Last active February 10, 2020 13:10
Custom view lifecycle
import androidx.fragment.app.FragmentActivity
import com.something.ViewModelUtil
import com.something.BaseViewModel
import dagger.Lazy
import kotlin.reflect.KClass
interface ViewModelAccessor {
val viewModelUtil: Lazy<ViewModelUtil>
@ghahramani
ghahramani / ViewModelUtil.kt
Created February 9, 2020 23:37
Custom view lifecycle
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.ViewModelProviders
import javax.inject.Inject
import kotlin.reflect.KClass
class ViewModelUtil @Inject constructor(private val viewModelFactory: ViewModelProvider.Factory) {
@ghahramani
ghahramani / CardViewWithLifecyle.kt
Created February 10, 2020 00:01
Custom view lifecycle
import android.content.Context
import android.util.AttributeSet
import androidx.cardview.widget.CardView
import com.something.ViewModelUtil
import com.something.ComponentAccessor
import com.something.ComponentAccessorImpl
import com.something.ViewModelAccessor
import dagger.Lazy
import javax.inject.Inject
@ghahramani
ghahramani / CardViewWithLifecyle.kt
Created February 10, 2020 00:01
Custom view lifecycle
import android.content.Context
import android.util.AttributeSet
import androidx.cardview.widget.CardView
import com.something.ViewModelUtil
import com.something.ComponentAccessor
import com.something.ComponentAccessorImpl
import com.something.ViewModelAccessor
import dagger.Lazy
import javax.inject.Inject