hello:
I want to get all the values of one FID, what should I do.
Is there any dictionary?
Hi @luxiangyuan
As you will note from the output, Currency is a Enum (enumerated) type field.
Please refer to the enumtype.def file which comes with the ElektronSDK installation.
You will find it in the Java\etc folder
In the file search for the Enum FID you are interested in e.g.
! ACRONYM FID ! ------- --- ! CURRENCY 15 CURRENCY_2 1084 CURRENCY_3 1085 .... ....
and below the list of the FIDs that share the same enumerated values, you will find the enum values:
! VALUE DISPLAY MEANING ! ----- ------- ------- 0 " " Not allocated 4 "AFA" Afghanistan afghani (from 1925 until 2003) 8 "ALL" Albanian lek 12 "DZD" Algerian dinar 20 "ADP" Andorran peseta 24 "AON" Angolan new kwanza .... ....
In your code you can obtain the Display string or the numeric value as follows:
System.out.println(fieldEntry.hasEnumDisplay() ? fieldEntry.enumDisplay() : fieldEntry.enumValue());
So,the above snippet checks if a display string is present in the dictionary (normally should be present) and outputs the display string. IF the display string is not available (e.g. out of date dictionary file) then it outputs the numeric value.
When writing a consumer, you should ideally use the default DictionaryType of ChannelDictionary (downloaded from server) to ensure you have the latest.
thank you!!!
“ChannelDictionary ”?
what is it?
how can I download it, will you please give me a link?
As I mentioned above, this is the default dictionary type and EMA will automatically download it behind the scenes (for the API to use for decoding fields etc) - unless you change the DicitonaryType to FileDictionary in your EMA config (not recommended).
The files provided in the Java\etc folder can be used for your local reference - but you should obtain the latest whenever there is a new release of the ElektronSDK.