Skip to content
This repository has been archived by the owner on Dec 7, 2019. It is now read-only.

start of filesystem impl conversion to kotlin #358

Open
wants to merge 7 commits into
base: feature/kotlin_conversion
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion buildsystem/dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ ext.versions = [
// Testing.
junit : '4.12',
assertJ : '1.7.1',
mockito : '1.9.5',
mockito : '2.8.9',
robolectric : '3.1.2',
supportTestRunner : '0.4.1',
espresso : '2.2.1',
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.nytimes.android.external.fs3

import com.nytimes.android.external.fs3.filesystem.FileSystem
import com.nytimes.android.external.store3.base.DiskAllErase
import io.reactivex.Observable


class FSAllEraser(private val fileSystem: FileSystem) : DiskAllErase {
override fun deleteAll(path: String): Observable<Boolean> = Observable.fromCallable {
fileSystem.deleteAll(path)
true
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.nytimes.android.external.fs3

import com.nytimes.android.external.fs3.filesystem.FileSystem
import com.nytimes.android.external.store3.base.DiskWrite

import io.reactivex.Single
import okio.BufferedSource

/**
* FSReader is used when persisting to file system
* PathResolver will be used in creating file system paths based on cache keys.
* Make sure to have keys containing same data resolve to same "path"
* @param <T> key type
</T> */
open class FSWriter<T>(private val fileSystem: FileSystem, internal val pathResolver: PathResolver<T>) : DiskWrite<BufferedSource, T> {

override fun write(key: T, data: BufferedSource): Single<Boolean> = Single.fromCallable {
fileSystem.write(pathResolver.resolve(key), data)
true
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.nytimes.android.external.fs3

import com.nytimes.android.external.fs3.filesystem.FileSystem
import com.nytimes.android.external.store3.base.RecordProvider
import com.nytimes.android.external.store3.base.RecordState
import com.nytimes.android.external.store3.base.impl.BarCode

import java.util.concurrent.TimeUnit
import javax.inject.Inject

class RecordPersister @Inject
constructor(fileSystem: FileSystem,
private val expirationDuration: Long,
private val expirationUnit: TimeUnit) : SourcePersister(fileSystem), RecordProvider<BarCode> {

override fun getRecordState(barCode: BarCode): RecordState = sourceFileReader.getRecordState(barCode, expirationUnit, expirationDuration)

companion object {

fun create(fileSystem: FileSystem,
expirationDuration: Long,
expirationUnit: TimeUnit): RecordPersister = RecordPersister(fileSystem, expirationDuration, expirationUnit)
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package com.nytimes.android.external.fs3


import com.nytimes.android.external.fs3.filesystem.FileSystem
import com.nytimes.android.external.store3.base.AllPersister
import com.nytimes.android.external.store3.base.impl.BarCode

import java.io.FileNotFoundException
import javax.inject.Inject

import io.reactivex.Maybe
import io.reactivex.Observable
import io.reactivex.Single
import okio.BufferedSource

class SourceAllPersister @Inject
constructor(fileSystem: FileSystem) : AllPersister<BufferedSource, BarCode> {

private val sourceFileAllReader: FSAllReader by lazy { FSAllReader(fileSystem) }
private val sourceFileAllEraser: FSAllEraser by lazy { FSAllEraser(fileSystem) }

private val sourceFileReader: FSReader<BarCode> by lazy { FSReader(fileSystem, BarCodeReadAllPathResolver()) }
private val sourceFileWriter: FSWriter<BarCode> by lazy { FSWriter(fileSystem, BarCodeReadAllPathResolver()) }

@Throws(FileNotFoundException::class)
override fun readAll(path: String): Observable<BufferedSource> = sourceFileAllReader.readAll(path)

override fun deleteAll(path: String): Observable<Boolean> = sourceFileAllEraser.deleteAll(path)

override fun read(barCode: BarCode): Maybe<BufferedSource> = sourceFileReader.read(barCode)

override fun write(barCode: BarCode, data: BufferedSource): Single<Boolean> = sourceFileWriter.write(barCode, data)

companion object {

fun create(fileSystem: FileSystem): SourceAllPersister {
return SourceAllPersister(fileSystem)
}
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.nytimes.android.external.fs3

import com.nytimes.android.external.fs3.filesystem.FileSystem
import com.nytimes.android.external.store3.base.DiskRead
import com.nytimes.android.external.store3.base.RecordState
import com.nytimes.android.external.store3.base.impl.BarCode
import okio.BufferedSource
import java.util.concurrent.TimeUnit

class SourceFileReader @JvmOverloads constructor(fileSystem: FileSystem, pathResolver: PathResolver<BarCode> = BarCodePathResolver()) : FSReader<BarCode>(fileSystem, pathResolver), DiskRead<BufferedSource, BarCode> {

fun getRecordState(barCode: BarCode,
expirationUnit: TimeUnit,
expirationDuration: Long): RecordState = fileSystem.getRecordState(expirationUnit, expirationDuration, SourcePersister.pathForBarcode(barCode))
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.nytimes.android.external.fs3

import com.nytimes.android.external.fs3.filesystem.FileSystem
import com.nytimes.android.external.store3.base.DiskWrite
import com.nytimes.android.external.store3.base.impl.BarCode

import okio.BufferedSource

class SourceFileWriter @JvmOverloads constructor(fileSystem: FileSystem, pathResolver: PathResolver<BarCode> = BarCodePathResolver()) : FSWriter<BarCode>(fileSystem, pathResolver), DiskWrite<BufferedSource, BarCode>
Loading