enleur
01/23/2018, 3:13 PMwaqas
01/23/2018, 3:14 PMCzar
01/23/2018, 3:15 PMwaqas
01/23/2018, 3:17 PMCzar
01/23/2018, 3:17 PMwaqas
01/23/2018, 3:18 PMenleur
01/23/2018, 3:18 PMenleur
01/23/2018, 3:18 PMwaqas
01/23/2018, 3:21 PMwhen {
!beaconsSeen.contains(scannedBeacon) -> {
beaconsSeen.add(scannedBeacon)
assetRepository.findIdByUuid(scannedBeacon.uuid)?.let {
logger.debug(tag, "sending asset beacon enter for $scannedBeacon")
val beacon = AssetBeacon(it, scannedBeacon.uuid, scannedBeacon.major, scannedBeacon.minor)
<http://bus.post|bus.post>(AssetEvent.AssetBeaconEnter(beacon))
}
}
}
Czar
01/23/2018, 3:30 PM// 1
when {
!beaconsSeen.contains(scannedBeacon) -> {
beaconsSeen.add(scannedBeacon)
assetRepository.findIdByUuid(scannedBeacon.uuid)?.let {
if (logger.debugEnabled()) {
logger.debug(tag, "sending asset beacon enter for $scannedBeacon")
}
AssetBeacon(
it,
scannedBeacon.uuid,
scannedBeacon.major,
scannedBeacon.minor
)
}?.run { <http://bus.post|bus.post>(AssetEvent.AssetBeaconEnter(this)) }
}
}
// 2
when (scannedBeacon){
!in beaconsSeen -> {
beaconsSeen.add(scannedBeacon)
assetRepository.findIdByUuid(scannedBeacon.uuid)?.let {
if (logger.debugEnabled()) {
logger.debug(tag, "sending asset beacon enter for $scannedBeacon")
}
AssetBeacon(
it,
scannedBeacon.uuid,
scannedBeacon.major,
scannedBeacon.minor
)
}?.run { <http://bus.post|bus.post>(AssetEvent.AssetBeaconEnter(this)) }
}
}
waqas
01/23/2018, 3:34 PMCzar
01/23/2018, 3:35 PM"sending asset beacon enter for $scannedBeacon"
<- this will be interpolated regardless of how debug is implemented.waqas
01/23/2018, 3:39 PMwaqas
01/23/2018, 3:44 PMAssetBeacon(
it,
scannedBeacon.uuid,
scannedBeacon.major,
scannedBeacon.minor
)
Czar
01/23/2018, 3:45 PMlogger.debug(tag) { "your interpolated String with some logic, maybe" }
Czar
01/23/2018, 3:47 PM#2 still has this thoughwell, I'd go with @enleur's suggestion here and add the secondary constructor. It is a small tradeoff to reduce code complexity at the call site.
waqas
01/23/2018, 3:57 PMCzar
01/23/2018, 3:58 PM