//// Copyright (c) 2016, Andy Frank// Licensed under the Academic Free License version 3.0//// History:// 23 Aug 2016 Andy Frank Creation//using concurrent**** System models a target system image.**constclass System{** It-block ctor.new make(Str name, Version version){this.name = namethis.version = versionthis.uri = `https://bitbucket.org/afrankvt/studs/downloads/studs-system-${name}-${version}.tar.gz`}** Unique name for this systemconst Str name** Vesion of system.const Version version** URI to fetch system image.const Uri uri** JRE platform for this system.// TODOconst Str jre := "linux-armv6-vfp-hflt"** List available systems.static System[] list(){ defList }** Find System with given name. If system not found throw** Err if 'checked' is true, otherwise return 'null'.static System? find(Str name, Bool checked := true){ sys := list.find |s| { s.name == name }if(sys == null && checked)throw Err("System not found '$name'")return sys}** Default list of system images - use `list` to get full list.privatestaticconst System[] defList := [ System("bbb", Version("1.0.0")), System("rpi3", Version("1.0.0")),]}