def loadDataIfNeccesary(cachedData) { cachedData?:loadData() // Optional.ofNullable(cachedData).orElse(loadData()) } def loadData() { sleep(5000) // very expensive operation "fresh data" } loadDataIfNeccesary("dataz")