Typ D2000 Unival (zjednodušene iba unival) je pomerne podrobne popísaný v konfiguračnej príručke pre systém D2000. Z toho dôvodu bude jeho popis v tejto kapitole značne zjednodušený.
Unival predstavuje tzv. „value-time-quality" typ. To je taký, ktorý okrem hodnoty samotnej so sebou nesie aj informáciu o pôvode a kvalite hodnoty. V nasledujúcom texte sú označované ako atribúty unival-u. Najvýznamnejšie z nich sú:
V knižnici JAPI je Unival reprezentovaný rozhraním sk.ipesoft.d2000.base.UnivalValue. Toto rozhranie je generické, pričom generický parameter definuje typ hodnoty v unival-e samotnej. Systém D2000 definuje 13 typov hodnôt, ktoré môže unival niesť. Pre každý z nich je v balíčku sk.ipesoft.d2000.base definované rozhranie rozširujúce UnivalValue. Najčastejšie používané sú popísané v tabuľke:
Pomenovanie v D2000 (označenie typu v ESL) |
Typ v JAPI |
Popis |
Logický (BOOL) |
UnivalBool |
3-stavová logická hodnota s podporou kmitania medzi dvomi logickými stavmi (FALSE, TRUE, OSCILLATE) |
Celočíselný (INT) |
UnivalInt |
Celočíslená 32-bitová hodnota so znamienkom |
Reálny (REAL) |
UnivalReal |
Reálna hodnota v pohyblivej rádovej čiarke v dvojitej presnosti (64-bitov) |
Absolútny čas (TIME) |
UnivalTime |
Časová značka s presnosťou na milisekundy |
Relatívny čas (REAL) V ESL nie je pre relatívny čas samostatný typ, používa sa typ REAL. |
UnivalTimespan |
Dĺžka časového úseku s presnosťou na milisekundy |
Text (TEXT) |
UnivalText |
Unikódový textový reťazec |
Štruktúrovaný (RECORD) |
UnivalRecord |
Tabuľka |
Štruktúrovaný unival je všeobecný typ, ktorý obsahuje údaje organizované vo forme tabuľky. Konkrétna inštancia so štruktúrovanou hodnotou je asociovaná s konkrétnou inštanciou objektu D2000 typu definícia štruktúry, ktorá definuje zoznam stĺpcov tabuľky. Každému stĺpcu prideľuje jednoznačný identifikátor, typ hodnôt a ďalšie vlastnosti. Riadky tabuľky predstavujú jednotlivé záznamy štruktúrovanej hodnoty. Každá bunka v tabuľke obsahuje hodnotu typu unival.
V systéme D2000 je možné pre jednotlivé objekty nastaviť spôsob zobrazovania v používateľskom rozhraní (tradične predovšetkým v procese HI.exe). Využívajú sa k tomu nasledovné mechanizmy:
V knižnici D2JAPI tieto mechanizmy označujeme pojmom „zdieľané zdroje" – „shared resources". Pretože ich definície môžu byť pomerne rozsiahle, knižnica ich po vytvorení spojenia načíta iba ak o to používateľ explicitne požiada v parametri interestSet pri volaní createSession K zdieľaným zdrojom sa počítajú aj definície štruktúrovaných typov. Tie sa však načítajú vždy., napr.:
connector.createSession(this.arguments.getSessionParameters(), eventsListener, EnumSet.allOf(SharedResourceType.class)
Knižnica sťahuje a udržiava iba jednu kópiu zdieľaných zdrojov pre jeden JConnector, bez ohľadu na počet pripojených Session.
Na transformáciu hodnoty objektu slúžia inštancie triedy sk.ipesoft.d2000.d2japi.sharedResources.Convertor, ktoré je možné získať volaním
Convertor convertor = session.createDictionaryConvertor();
Volanie vytvorí konvertor, ktorý bude využívať preklad do jazyka, ktorý je predvolený pre prihláseného používateľa. Následne je možné použiť volania:
Výsledkom je vždy text aj s informáciou o farbe textu a jeho pozadia.
Hore uvedená trieda Convertor pri formátovaní automaticky prekladá slovníkové kľúče. Je určená však predovšetkým pre formátovanie hodnôt objektov systému D2000 a niekedy je potrebné vykonať preklad lokálne uloženého textu. V takom prípade je možné získať samotný prekladač:
Translator translator = session.createDictionaryTranslator();