package li.cil.oc.util | |
import li.cil.oc.api.network.Component | |
import li.cil.oc.api.network.Node | |
import li.cil.oc.server.component.UpgradeDatabase | |
object DatabaseAccess { | |
def withDatabase(node: Node, address: String, f: UpgradeDatabase => Array[AnyRef]): Array[AnyRef] = { | |
node.network.node(address) match { | |
case component: Component => component.host match { | |
case database: UpgradeDatabase => f(database) | |
case _ => throw new IllegalArgumentException("not a database") | |
} | |
case _ => throw new IllegalArgumentException("no such component") | |
} | |
} | |
} |