aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/pdsuicommon/synchronization/utils/FakeIdGen.scala
blob: 196aab1af3ef078acbe434db8eb86f6f2ea6cf94 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package xyz.driver.pdsuicommon.synchronization.utils

import xyz.driver.pdsuicommon.synchronization.domain.FakeId

/**
  * Used to generate a fake id from an entity.
  * A fake id is used in comparison between entities with different types,
  * for example, RawTrial and Trial.
  *
  * @see FakeId
  */
trait FakeIdGen[-T] extends (T => FakeId) {

  def getFor(x: T): FakeId

  override def apply(x: T): FakeId = getFor(x)

}

object FakeIdGen {

  def create[T](f: T => FakeId) = new FakeIdGen[T] {
    override def getFor(x: T): FakeId = f(x)
  }

}