package kernel.binstore; import bin.ID; import bin.exporter.Res; import bin.exporter.ResManager; import bin.KSettings; import bin.Perf; import bin.srsc.CLI; import bin.srsc.SiteRessourceController; import bin.HelloWorldService; import bin.Service; import bin.LSPS; import bin.Turtle; import bin.Terminal; import bin.Redstone; import bin.Net; import bin.KernelLog; import bin.HelloWorld; import bin.GPS; import bin.Disk; import haxe.ds.ReadOnlyArray; class BinStore { public static var instance: BinStore; private final store:ReadOnlyArray = [ {c: Disk, name: "Disk", aliases: ["disk"]}, {c: GPS, name: "GPS", aliases: ["gps"]}, {c: HelloWorld, name: "HelloWorld", aliases: ["hello"]}, {c: KernelLog, name: "KernelLog", aliases: ["log"]}, {c: Net, name: "Net", aliases: ["net"]}, {c: Redstone, name: "Redstone", aliases: ["redstone","rs"]}, {c: Terminal, name: "Terminal", aliases: ["terminal","term"]}, {c: Turtle, name: "Turtle", aliases: ["turtle"]}, {c: LSPS, name: "PM", aliases: ["lsps"]}, {c: Service, name: "Service", aliases: ["service","srv"]}, {c: HelloWorldService, name: "HelloWorldService", aliases: ["hello-service"] }, {c: SiteRessourceController, name: "SiteRessourceController", aliases: ["srsc"]}, {c: CLI, name: "SRSC CLI", aliases: ["srsc-cli"]}, {c: Perf, name: "Perf", aliases: ["perf"]}, {c: KSettings, name: "KSettings", aliases: ["ksettings","ks"]}, {c: ResManager, name: "ResManager", aliases: ["resmanager","resmgr"]}, {c: Res, name: "Res", aliases: ["res"]}, {c: ID , name: "ID", aliases: ["id"]} ]; @:allow(kernel.Init) private function new() { } public function getBinByName(name:String):Null { for (bin in store) { if (bin.name == name) { return bin; } } return null; } public function getBinByAlias(alias:String):Null { for (bin in store) { for (a in bin.aliases) { if (a == alias) { return bin; } } } return null; } public function getNameByAlias(alias: String): String { var bin = getBinByAlias(alias); if (bin == null) { return null; } return bin.name; } }