Advertisement
Guest User

Untitled

a guest
Jul 17th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.91 KB | None | 0 0
  1. data class Match(
  2. @PrimaryKey var uid: Long? = null,
  3. @ColumnInfo var homeTeamId: Long? = null,
  4. @ColumnInfo var awayTeamId: Long? = null,
  5. @Ignore var homeTeam: Team? = null,
  6. @Ignore var awayTeam: Team? = null
  7. )
  8.  
  9. data class Team(
  10. @PrimaryKey var uid: Long? = null,
  11. @ColumnInfo var captainId: Long? = null,
  12. @Ignore var captain: Player? = null
  13. )
  14.  
  15. data class Player(
  16. @PrimaryKey var uid: Long? = null,
  17. @ColumnInfo var name: String? = null,
  18. var number: Int? = null
  19. )
  20.  
  21. // inside fragment
  22. matchDao.getLive(matchId).observe(this, Observer {})
  23.  
  24. fun getMatchLive(id: Long): LiveData<Match> {
  25. return Transformations.switchMap(matchDao.getLive(id)) { inputMatch ->
  26. val output1: LiveData<Match>? = inputMatch.homeTeamId?.run {
  27. Transformations.switchMap(teamDao.getLive(this)) { team ->
  28. team.captainId?.run {
  29. Transformations.map(playerDao.getLive(this)) { player ->
  30. team.apply {
  31. captain = player
  32. inputMatch.homeTeam = team
  33. }
  34. inputMatch
  35. }
  36. }
  37. }
  38. }
  39.  
  40. output1?.run {
  41. Transformations.switchMap(this) { inputMatch1 ->
  42. inputMatch1.awayTeamId?.run {
  43. Transformations.switchMap(teamDao.getLive(this)) { team ->
  44. team.captainId?.run {
  45. Transformations.map(playerDao.getLive(this)) { player ->
  46. team.apply {
  47. captain = player
  48. inputMatch1.awayTeam = team
  49. }
  50. inputMatch1
  51. }
  52. }
  53. }
  54. }
  55. }
  56. }
  57. }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement