46 lines
836 B
Haxe
46 lines
836 B
Haxe
package kernel.binstore;
|
|
|
|
import kernel.ps.IProcess;
|
|
import macros.Binstore;
|
|
|
|
class BinStore {
|
|
private static final bins:Array<Bin> = populateStore();
|
|
|
|
private static function populateStore()
|
|
return {
|
|
var bins:Array<Bin> = [];
|
|
Binstore.generateBinStore();
|
|
return bins;
|
|
}
|
|
|
|
public static function instantiate(alias:String):Null<IProcess> {
|
|
for (bin in bins) {
|
|
for (a in bin.aliases) {
|
|
if (a == alias) {
|
|
return bin.c();
|
|
}
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
private static function getBinByAlias(alias:String):Null<Bin> {
|
|
for (bin in bins) {
|
|
for (a in bin.aliases) {
|
|
if (a == alias) {
|
|
return bin;
|
|
}
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public static function getNameByAlias(alias:String):Null<String> {
|
|
var bin = getBinByAlias(alias);
|
|
if (bin == null) {
|
|
return null;
|
|
}
|
|
return bin.name;
|
|
}
|
|
}
|