Raktárak¶
Tárolók¶
A nyílt architektúra lényeges része. A beolvasott forráskódok is ebbe a strtuktúrába töltödnek be, és kérdezhetőek le. Kulcs/érték alapon adatokat lehet tárolni bennük. Lehetnek nyílt (osztott) elérésűek.
Célok:
adatot lehet megosztani különböző folyamatok között,
a transzformációhoz keresési információkat gyorstárazhatják,
csomagokat lehet importálni, akár dinamikus (igény szerinti) betöltéssel
a végrehajtáshoz szükséges futtatható kódot tárolhatják.
Lekérdezés¶
Lekérdezéseket szabadon lehet megvalósítani, de az egyszerűség kedvéért projektekhez és raktárakhoz egy pici DSL alapú
bővítés készült. A *query
definíciók automatikusan metódusokká transzformálódnak. Keresési feltételek bővíthetőek.
Lekérdezés megvalósítás:
*class TestQuery {
*method bool testIntegerButNot5 (Node value) {
*if (value.@type != "Data::Int32")
*return false;
*return *cast<Data::Int32>(value) != 5;
};
*query query1 (System::Repository repository) {
*for a
*where
testIntegerButNot5(a)
*return "0" + a.@string;
};
};
Lekérdezés használata:
*function test () {
System::Respository repository;
repository.storeItem("one", 1);
repository.storeItem("two", 2);
repository.storeItem("five", 5);
repository.storeItem("six", "six");
Query::Result result := TestQuery().query1(repository);
*foreach (Data::Int32 value: result.container) {
System::stdout("Query result: %1\n"[value]);
}
};
Csomag betöltés¶
A raktár tartalmát előre elkészített csomagok betöltésével is bővíteni lehet. Jelenleg csak Modema/Lang nyelven megírt tartalom betöltésére van lehetőség.