001package armyc2.c5isr.renderer.utilities; 002 003import android.content.Context; 004import android.os.Build; 005 006import java.io.BufferedReader; 007import java.io.InputStream; 008import java.io.InputStreamReader; 009import java.util.ArrayList; 010import java.util.HashMap; 011import java.util.List; 012import java.util.Map; 013import java.util.logging.Level; 014 015import armyc2.c5isr.renderer.R; 016 017/** 018 * Class that holds all the {@link MSInfo} objects with symbol information 019 */ 020public class MSLookup { 021 022 private static MSLookup _instance = null; 023 private static Boolean _initCalled = false; 024 025 private static Map<String, MSInfo> _MSLookupD = null; 026 private static Map<String, MSInfo> _MSLookup6D = null; 027 private static Map<String, MSInfo> _MSLookupE = null; 028 private static Map<String, MSInfo> _MSLookup6E = null; 029 private String TAG = "MSLookup"; 030 private List<String> _IDListD = null; 031 private List<String> _IDList6D = null; 032 private List<String> _IDListE = null; 033 private List<String> _IDList6E = null; 034 035 036 /* 037 * Holds SymbolDefs for all symbols. (basicSymbolID, Description, MinPoint, MaxPoints, etc...) Call 038 * getInstance(). 039 * 040 */ 041 private MSLookup() { 042 // init(null); 043 // _initCalled=true; 044 } 045 046 public static synchronized MSLookup getInstance() { 047 if (_instance == null) { 048 _instance = new MSLookup(); 049 } 050 051 return _instance; 052 } 053 054 public final synchronized void init(Context context) 055 { 056 if (_initCalled == false) 057 { 058 _MSLookupD = new HashMap<>(); 059 _MSLookup6D = new HashMap<>(); 060 _MSLookupE = new HashMap<>(); 061 _MSLookup6E = new HashMap<>(); 062 _IDListD = new ArrayList<>(); 063 _IDList6D = new ArrayList<>(); 064 _IDListE = new ArrayList<>(); 065 _IDList6E = new ArrayList<>(); 066 067 try 068 { 069 InputStream isD = context.getResources().openRawResource(R.raw.msd); 070 InputStream isE = context.getResources().openRawResource(R.raw.mse); 071 072 BufferedReader brD = new BufferedReader(new InputStreamReader(isD)); 073 populateLookup(brD, SymbolID.Version_2525Dch1); 074 brD.close(); 075 076 BufferedReader brE = new BufferedReader(new InputStreamReader(isE)); 077 populateLookup(brE, SymbolID.Version_2525E); 078 brE.close(); 079 080 _initCalled = true; 081 } 082 catch (Exception e) 083 { 084 System.out.println(e.getMessage()); 085 } 086 } 087 } 088 089 private void populateLookup(BufferedReader br, int version) 090 { 091 Map<String, MSInfo> lookup; 092 List<String> list; 093 String[] temp = null; 094 String delimiter = "\t"; 095 096 try 097 { 098 099 String id = null; 100 String ss = null; 101 int intSS = 0; 102 String e = null; 103 String et = null; 104 String est = null; 105 String ec = null; 106 String ver = null; 107 String g = null; 108 String dr = null; 109 String m = null; 110 String[] modifiers = null; 111 112 String line = br.readLine(); 113 while (line != null) { 114 //parse first line 115 temp = line.split(delimiter); 116 117 if(temp.length < 6) 118 ec = "000000"; 119 else 120 ec = temp[4]; 121 if(ec.equals("0")) 122 ec = "000000"; 123 124 if(temp.length < 4) 125 est = ""; 126 else 127 est = temp[3]; 128 if(temp.length < 3) 129 et = ""; 130 else if(est.equals("")) 131 et = temp[2]; 132 if(temp.length < 2) 133 e = ""; 134 else if(et.equals("")) 135 e = temp[1]; 136 137 if(!temp[0].equals("")) 138 ss = temp[0]; 139 140 if (!temp[5].equals("")) 141 ver = temp[5]; 142 143 id = ss + ec; 144 145 intSS = Integer.parseInt(ss); 146 if(!ec.equals("000000")) 147 { 148 if (temp.length >= 8) 149 {//Control Measures and METOCS 150 if(temp.length >= 9) 151 { 152 m = temp[8];//modifiers 153 if(m != null && !m.equals("")) 154 //m = m.replace("\"",""); 155 modifiers = m.split(","); 156 else 157 modifiers = null; 158 } 159 g = temp[6];//geometry 160 dr = temp[7];//draw rule 161 162 //multi points 163 String[] verArr = ver.split(","); 164 for(String v : verArr) 165 { 166 addToLookup(new MSInfo(Integer.parseInt(v), ss, e, et, est, ec, g, dr, populateModifierList(modifiers))); 167 } 168 } 169 else 170 {//Everything else 171 //single points 172 String[] verArr = ver.split(","); 173 for(String v : verArr) 174 { 175 addToLookup(new MSInfo(Integer.parseInt(v), ss, e, et, est, ec, populateModifierList(ss, ec, Integer.parseInt(v)))); 176 } 177 } 178 addToList(ver, id); 179 } 180 else if(intSS != SymbolID.SymbolSet_ControlMeasure && 181 intSS != SymbolID.SymbolSet_Atmospheric && 182 intSS != SymbolID.SymbolSet_Oceanographic && 183 intSS != SymbolID.SymbolSet_MeteorologicalSpace) 184 { 185 String[] verArr = ver.split(","); 186 for(String v : verArr) 187 { 188 addToLookup(new MSInfo(Integer.parseInt(v), ss, e, et, est, ec, populateModifierList(ss, ec, Integer.parseInt(v)))); 189 } 190 addToList(ver, id); 191 } 192 193 modifiers = null; 194 195 //read next line for next loop 196 line = br.readLine(); 197 } 198 } 199 catch(Exception exc) 200 { 201 System.out.println(exc.getMessage()); 202 } 203 204 } 205 206 private void addToLookup(MSInfo msi) 207 { 208 int version = msi.getVersion(); 209 if(version==SymbolID.Version_2525Dch1) 210 _MSLookupD.put(msi.getBasicSymbolID(), msi); 211 if(version==SymbolID.Version_APP6D) 212 _MSLookup6D.put(msi.getBasicSymbolID(), msi); 213 if(version==SymbolID.Version_2525Ech1) 214 _MSLookupE.put(msi.getBasicSymbolID(), msi); 215 if(version==SymbolID.Version_APP6Ech2) 216 _MSLookup6E.put(msi.getBasicSymbolID(), msi); 217 } 218 219 private boolean addCustomToLookupAndList(MSInfo msi) 220 { 221 boolean success = false; 222 int version = msi.getVersion(); 223 if(version==SymbolID.Version_2525Dch1) { 224 if(!_MSLookupD.containsKey(msi.getBasicSymbolID())) { 225 _MSLookupD.put(msi.getBasicSymbolID(), msi); 226 _IDListD.add(msi.getBasicSymbolID()); 227 success = true; 228 } 229 } 230 if(version==SymbolID.Version_APP6D){ 231 if (!_MSLookup6D.containsKey(msi.getBasicSymbolID())) { 232 _MSLookup6D.put(msi.getBasicSymbolID(), msi); 233 _IDList6D.add(msi.getBasicSymbolID()); 234 success = true; 235 } 236 } 237 if(version==SymbolID.Version_2525Ech1){ 238 if(!_MSLookupE.containsKey(msi.getBasicSymbolID())) { 239 _MSLookupE.put(msi.getBasicSymbolID(), msi); 240 _IDListE.add(msi.getBasicSymbolID()); 241 success = true; 242 } 243 } 244 if(version==SymbolID.Version_APP6Ech2) { 245 if(!_MSLookup6E.containsKey(msi.getBasicSymbolID())) { 246 _MSLookup6E.put(msi.getBasicSymbolID(), msi); 247 _IDList6E.add(msi.getBasicSymbolID()); 248 success = true; 249 } 250 } 251 return success; 252 } 253 254 private void addToList(String versions, String basicSymbolID) 255 { 256 if(versions.contains(String.valueOf(SymbolID.Version_2525Dch1))) 257 _IDListD.add(basicSymbolID); 258 if(versions.contains(String.valueOf(SymbolID.Version_APP6D))) 259 _IDList6D.add(basicSymbolID); 260 if(versions.contains(String.valueOf(SymbolID.Version_2525Ech1))) 261 _IDListE.add(basicSymbolID); 262 if(versions.contains(String.valueOf(SymbolID.Version_APP6Ech2))) 263 _IDList6E.add(basicSymbolID); 264 } 265 266 private ArrayList<String> populateModifierList(String[] modifiers) 267 { 268 ArrayList<String> mods = new ArrayList<String>(); 269 if(modifiers != null && modifiers.length > 0) 270 { 271 for (String mod : modifiers) 272 { 273 mods.add(Modifiers.getModifierKey(mod)); 274 } 275 } 276 return mods; 277 } 278 279 private ArrayList<String> populateModifierList(String symbolSet, String ec, int version) 280 { 281 int ss = Integer.valueOf(symbolSet); 282 ArrayList<String> modifiers = new ArrayList<String>(); 283 284 if(version == SymbolID.Version_APP6Ech2) 285 { 286 switch (ss) { 287 case SymbolID.SymbolSet_LandUnit: 288 case SymbolID.SymbolSet_LandCivilianUnit_Organization: 289 modifiers.add(Modifiers.A_SYMBOL_ICON); 290 modifiers.add(Modifiers.B_ECHELON); 291 modifiers.add(Modifiers.C_QUANTITY); 292 modifiers.add(Modifiers.D_TASK_FORCE_INDICATOR); 293 modifiers.add(Modifiers.F_REINFORCED_REDUCED); 294 modifiers.add(Modifiers.G_STAFF_COMMENTS); 295 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 296 modifiers.add(Modifiers.J_EVALUATION_RATING); 297 modifiers.add(Modifiers.K_COMBAT_EFFECTIVENESS); 298 modifiers.add(Modifiers.M_HIGHER_FORMATION); 299 modifiers.add(Modifiers.P_IFF_SIF_AIS); 300 modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 301 modifiers.add(Modifiers.S_HQ_STAFF_INDICATOR); 302 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 303 modifiers.add(Modifiers.W_DTG_1); 304 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 305 modifiers.add(Modifiers.Y_LOCATION); 306 modifiers.add(Modifiers.Z_SPEED); 307 if(ss==SymbolID.SymbolSet_LandUnit && ec.equals("110000")) 308 modifiers.add(Modifiers.AA_SPECIAL_C2_HQ); 309 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 310 modifiers.add(Modifiers.AD_PLATFORM_TYPE); 311 modifiers.add(Modifiers.AE_EQUIPMENT_TEARDOWN_TIME); 312 modifiers.add(Modifiers.AF_COMMON_IDENTIFIER); 313 modifiers.add(Modifiers.AI_DEAD_RECKONING_TRAILER); 314 modifiers.add(Modifiers.AK_PAIRING_LINE); 315 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 316 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 317 modifiers.add(Modifiers.AS_COUNTRY); 318 modifiers.add(Modifiers.AW_HEADQUARTERS_ELEMENT); 319 break; 320 case SymbolID.SymbolSet_LandEquipment: 321 case SymbolID.SymbolSet_SignalsIntelligence_Land: 322 modifiers.add(Modifiers.A_SYMBOL_ICON); 323 modifiers.add(Modifiers.C_QUANTITY); 324 modifiers.add(Modifiers.G_STAFF_COMMENTS); 325 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 326 modifiers.add(Modifiers.J_EVALUATION_RATING); 327 modifiers.add(Modifiers.K_COMBAT_EFFECTIVENESS); 328 modifiers.add(Modifiers.L_SIGNATURE_EQUIP); 329 modifiers.add(Modifiers.M_HIGHER_FORMATION); 330 modifiers.add(Modifiers.N_HOSTILE); 331 modifiers.add(Modifiers.P_IFF_SIF_AIS); 332 modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 333 modifiers.add(Modifiers.R_MOBILITY_INDICATOR); 334 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 335 modifiers.add(Modifiers.V_EQUIP_TYPE); 336 modifiers.add(Modifiers.W_DTG_1); 337 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 338 modifiers.add(Modifiers.Y_LOCATION); 339 modifiers.add(Modifiers.Z_SPEED); 340 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 341 modifiers.add(Modifiers.AD_PLATFORM_TYPE); 342 modifiers.add(Modifiers.AE_EQUIPMENT_TEARDOWN_TIME); 343 modifiers.add(Modifiers.AF_COMMON_IDENTIFIER); 344 modifiers.add(Modifiers.AG_AUX_EQUIP_INDICATOR); 345 modifiers.add(Modifiers.AH_AREA_OF_UNCERTAINTY); 346 modifiers.add(Modifiers.AI_DEAD_RECKONING_TRAILER); 347 modifiers.add(Modifiers.AK_PAIRING_LINE); 348 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 349 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 350 modifiers.add(Modifiers.AS_COUNTRY); 351 break; 352 case SymbolID.SymbolSet_LandInstallation: 353 modifiers.add(Modifiers.A_SYMBOL_ICON); 354 modifiers.add(Modifiers.C_QUANTITY); 355 modifiers.add(Modifiers.G_STAFF_COMMENTS); 356 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 357 modifiers.add(Modifiers.J_EVALUATION_RATING); 358 modifiers.add(Modifiers.K_COMBAT_EFFECTIVENESS); 359 modifiers.add(Modifiers.P_IFF_SIF_AIS); 360 modifiers.add(Modifiers.S_HQ_STAFF_INDICATOR); 361 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 362 modifiers.add(Modifiers.W_DTG_1); 363 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 364 modifiers.add(Modifiers.Y_LOCATION); 365 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 366 modifiers.add(Modifiers.AE_EQUIPMENT_TEARDOWN_TIME); 367 modifiers.add(Modifiers.AH_AREA_OF_UNCERTAINTY); 368 modifiers.add(Modifiers.AX_INSTALLATION_COMPOSITION); 369 modifiers.add(Modifiers.AK_PAIRING_LINE); 370 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 371 modifiers.add(Modifiers.AS_COUNTRY); 372 break; 373 case SymbolID.SymbolSet_DismountedIndividuals: 374 modifiers.add(Modifiers.A_SYMBOL_ICON); 375 modifiers.add(Modifiers.C_QUANTITY); 376 modifiers.add(Modifiers.G_STAFF_COMMENTS); 377 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 378 modifiers.add(Modifiers.J_EVALUATION_RATING); 379 modifiers.add(Modifiers.K_COMBAT_EFFECTIVENESS); 380 modifiers.add(Modifiers.M_HIGHER_FORMATION); 381 modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 382 modifiers.add(Modifiers.P_IFF_SIF_AIS); 383 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 384 modifiers.add(Modifiers.V_EQUIP_TYPE); 385 modifiers.add(Modifiers.W_DTG_1); 386 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 387 modifiers.add(Modifiers.Y_LOCATION); 388 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 389 modifiers.add(Modifiers.AF_COMMON_IDENTIFIER); 390 modifiers.add(Modifiers.AS_COUNTRY); 391 modifiers.add(Modifiers.AV_LEADERSHIP); 392 break; 393 case SymbolID.SymbolSet_Space: 394 case SymbolID.SymbolSet_SpaceMissile: 395 modifiers.add(Modifiers.A_SYMBOL_ICON); 396 modifiers.add(Modifiers.G_STAFF_COMMENTS); 397 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 398 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 399 modifiers.add(Modifiers.V_EQUIP_TYPE); 400 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 401 modifiers.add(Modifiers.Z_SPEED); 402 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 403 modifiers.add(Modifiers.AJ_SPEED_LEADER); 404 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 405 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 406 modifiers.add(Modifiers.AS_COUNTRY); 407 break; 408 case SymbolID.SymbolSet_Air: 409 case SymbolID.SymbolSet_AirMissile: 410 modifiers.add(Modifiers.A_SYMBOL_ICON); 411 modifiers.add(Modifiers.G_STAFF_COMMENTS); 412 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 413 modifiers.add(Modifiers.P_IFF_SIF_AIS);//air only 414 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 415 modifiers.add(Modifiers.V_EQUIP_TYPE); 416 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 417 modifiers.add(Modifiers.Z_SPEED); 418 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 419 modifiers.add(Modifiers.AJ_SPEED_LEADER); 420 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 421 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 422 modifiers.add(Modifiers.AS_COUNTRY); 423 break; 424 case SymbolID.SymbolSet_SeaSurface: 425 modifiers.add(Modifiers.A_SYMBOL_ICON); 426 modifiers.add(Modifiers.G_STAFF_COMMENTS); 427 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 428 modifiers.add(Modifiers.P_IFF_SIF_AIS); 429 //modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 430 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 431 modifiers.add(Modifiers.V_EQUIP_TYPE); 432 modifiers.add(Modifiers.Y_LOCATION); 433 modifiers.add(Modifiers.Z_SPEED); 434 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 435 modifiers.add(Modifiers.AJ_SPEED_LEADER); 436 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 437 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 438 modifiers.add(Modifiers.AQ_GUARDED_UNIT); 439 modifiers.add(Modifiers.AR_SPECIAL_DESIGNATOR); 440 modifiers.add(Modifiers.AS_COUNTRY); 441 break; 442 case SymbolID.SymbolSet_SeaSubsurface: 443 modifiers.add(Modifiers.A_SYMBOL_ICON); 444 modifiers.add(Modifiers.G_STAFF_COMMENTS); 445 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 446 //modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 447 modifiers.add(Modifiers.P_IFF_SIF_AIS); 448 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 449 modifiers.add(Modifiers.V_EQUIP_TYPE); 450 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 451 modifiers.add(Modifiers.Y_LOCATION); 452 modifiers.add(Modifiers.Z_SPEED); 453 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 454 modifiers.add(Modifiers.AJ_SPEED_LEADER); 455 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 456 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 457 modifiers.add(Modifiers.AR_SPECIAL_DESIGNATOR); 458 modifiers.add(Modifiers.AS_COUNTRY); 459 break; 460 case SymbolID.SymbolSet_Activities: 461 modifiers.add(Modifiers.A_SYMBOL_ICON); 462 modifiers.add(Modifiers.C_QUANTITY); 463 modifiers.add(Modifiers.G_STAFF_COMMENTS); 464 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 465 modifiers.add(Modifiers.J_EVALUATION_RATING); 466 modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 467 modifiers.add(Modifiers.T1_UNIQUE_DESIGNATION_2); 468 modifiers.add(Modifiers.W_DTG_1); 469 modifiers.add(Modifiers.Y_LOCATION); 470 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 471 modifiers.add(Modifiers.AS_COUNTRY); 472 break; 473 case SymbolID.SymbolSet_CyberSpace: 474 modifiers.add(Modifiers.A_SYMBOL_ICON); 475 modifiers.add(Modifiers.B_ECHELON); 476 modifiers.add(Modifiers.C_QUANTITY); 477 modifiers.add(Modifiers.D_TASK_FORCE_INDICATOR); 478 modifiers.add(Modifiers.F_REINFORCED_REDUCED); 479 modifiers.add(Modifiers.G_STAFF_COMMENTS); 480 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 481 modifiers.add(Modifiers.K_COMBAT_EFFECTIVENESS); 482 modifiers.add(Modifiers.L_SIGNATURE_EQUIP); 483 modifiers.add(Modifiers.M_HIGHER_FORMATION); 484 modifiers.add(Modifiers.P_IFF_SIF_AIS); 485 modifiers.add(Modifiers.S_HQ_STAFF_INDICATOR); 486 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 487 modifiers.add(Modifiers.V_EQUIP_TYPE); 488 modifiers.add(Modifiers.W_DTG_1); 489 modifiers.add(Modifiers.Y_LOCATION); 490 modifiers.add(Modifiers.AD_PLATFORM_TYPE); 491 modifiers.add(Modifiers.AE_EQUIPMENT_TEARDOWN_TIME); 492 modifiers.add(Modifiers.AF_COMMON_IDENTIFIER); 493 modifiers.add(Modifiers.AH_AREA_OF_UNCERTAINTY); 494 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 495 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 496 modifiers.add(Modifiers.AR_SPECIAL_DESIGNATOR); 497 modifiers.add(Modifiers.AS_COUNTRY); 498 modifiers.add(Modifiers.AW_HEADQUARTERS_ELEMENT); 499 modifiers.add(Modifiers.AY_NETWORK_IDENTIFIER); 500 break; 501 case SymbolID.SymbolSet_CyberSpace_Equipment: 502 modifiers.add(Modifiers.A_SYMBOL_ICON); 503 modifiers.add(Modifiers.C_QUANTITY); 504 modifiers.add(Modifiers.F_REINFORCED_REDUCED); 505 modifiers.add(Modifiers.G_STAFF_COMMENTS); 506 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 507 modifiers.add(Modifiers.K_COMBAT_EFFECTIVENESS); 508 modifiers.add(Modifiers.L_SIGNATURE_EQUIP); 509 modifiers.add(Modifiers.M_HIGHER_FORMATION); 510 modifiers.add(Modifiers.N_HOSTILE); 511 modifiers.add(Modifiers.P_IFF_SIF_AIS); 512 modifiers.add(Modifiers.R_MOBILITY_INDICATOR); 513 modifiers.add(Modifiers.S_HQ_STAFF_INDICATOR); 514 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 515 modifiers.add(Modifiers.V_EQUIP_TYPE); 516 modifiers.add(Modifiers.W_DTG_1); 517 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 518 modifiers.add(Modifiers.Y_LOCATION); 519 modifiers.add(Modifiers.Z_SPEED); 520 modifiers.add(Modifiers.AD_PLATFORM_TYPE); 521 modifiers.add(Modifiers.AE_EQUIPMENT_TEARDOWN_TIME); 522 modifiers.add(Modifiers.AF_COMMON_IDENTIFIER); 523 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 524 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 525 modifiers.add(Modifiers.AS_COUNTRY); 526 break; 527 528 case SymbolID.SymbolSet_ControlMeasure: 529 //values come from files during MSLookup load 530 break; 531 case SymbolID.SymbolSet_Atmospheric: 532 //Tropopause low, Tropopause high 533 if (ec.equals("110102") || ec.equals("110202") || 534 ec.equals("162200")) 535 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 536 else if (ec.equals("140200")) 537 modifiers.add(Modifiers.AN_AZIMUTH); 538 break; 539 case SymbolID.SymbolSet_MineWarfare: 540 case SymbolID.SymbolSet_Oceanographic: 541 case SymbolID.SymbolSet_MeteorologicalSpace: 542 default://no modifiers 543 break; 544 545 } 546 } 547 else if(version >= SymbolID.Version_2525E) 548 { 549 switch (ss) { 550 case SymbolID.SymbolSet_LandUnit: 551 case SymbolID.SymbolSet_LandCivilianUnit_Organization: 552 modifiers.add(Modifiers.A_SYMBOL_ICON); 553 modifiers.add(Modifiers.B_ECHELON); 554 modifiers.add(Modifiers.C_QUANTITY); 555 modifiers.add(Modifiers.D_TASK_FORCE_INDICATOR); 556 modifiers.add(Modifiers.F_REINFORCED_REDUCED); 557 modifiers.add(Modifiers.G_STAFF_COMMENTS); 558 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 559 modifiers.add(Modifiers.J_EVALUATION_RATING); 560 modifiers.add(Modifiers.K_COMBAT_EFFECTIVENESS); 561 modifiers.add(Modifiers.L_SIGNATURE_EQUIP); 562 modifiers.add(Modifiers.M_HIGHER_FORMATION); 563 modifiers.add(Modifiers.P_IFF_SIF_AIS); 564 modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 565 modifiers.add(Modifiers.S_HQ_STAFF_INDICATOR); 566 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 567 modifiers.add(Modifiers.W_DTG_1); 568 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 569 modifiers.add(Modifiers.Y_LOCATION); 570 modifiers.add(Modifiers.Z_SPEED); 571 if(ss==SymbolID.SymbolSet_LandUnit && ec.equals("110000")) 572 modifiers.add(Modifiers.AA_SPECIAL_C2_HQ); 573 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 574 modifiers.add(Modifiers.AD_PLATFORM_TYPE); 575 modifiers.add(Modifiers.AE_EQUIPMENT_TEARDOWN_TIME); 576 modifiers.add(Modifiers.AF_COMMON_IDENTIFIER); 577 modifiers.add(Modifiers.AH_AREA_OF_UNCERTAINTY); 578 modifiers.add(Modifiers.AI_DEAD_RECKONING_TRAILER); 579 modifiers.add(Modifiers.AK_PAIRING_LINE); 580 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 581 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 582 modifiers.add(Modifiers.AQ_GUARDED_UNIT); 583 modifiers.add(Modifiers.AS_COUNTRY); 584 break; 585 case SymbolID.SymbolSet_LandEquipment: 586 case SymbolID.SymbolSet_SignalsIntelligence_Land: 587 modifiers.add(Modifiers.A_SYMBOL_ICON); 588 modifiers.add(Modifiers.C_QUANTITY); 589 modifiers.add(Modifiers.G_STAFF_COMMENTS); 590 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 591 modifiers.add(Modifiers.J_EVALUATION_RATING); 592 modifiers.add(Modifiers.K_COMBAT_EFFECTIVENESS); 593 modifiers.add(Modifiers.L_SIGNATURE_EQUIP); 594 modifiers.add(Modifiers.N_HOSTILE); 595 modifiers.add(Modifiers.P_IFF_SIF_AIS); 596 modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 597 modifiers.add(Modifiers.R_MOBILITY_INDICATOR); 598 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 599 modifiers.add(Modifiers.V_EQUIP_TYPE); 600 modifiers.add(Modifiers.W_DTG_1); 601 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 602 modifiers.add(Modifiers.Y_LOCATION); 603 modifiers.add(Modifiers.Z_SPEED); 604 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 605 modifiers.add(Modifiers.AD_PLATFORM_TYPE); 606 modifiers.add(Modifiers.AE_EQUIPMENT_TEARDOWN_TIME); 607 modifiers.add(Modifiers.AF_COMMON_IDENTIFIER); 608 modifiers.add(Modifiers.AG_AUX_EQUIP_INDICATOR); 609 modifiers.add(Modifiers.AH_AREA_OF_UNCERTAINTY); 610 modifiers.add(Modifiers.AI_DEAD_RECKONING_TRAILER); 611 modifiers.add(Modifiers.AK_PAIRING_LINE); 612 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 613 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 614 modifiers.add(Modifiers.AQ_GUARDED_UNIT); 615 modifiers.add(Modifiers.AS_COUNTRY); 616 break; 617 case SymbolID.SymbolSet_LandInstallation: 618 modifiers.add(Modifiers.A_SYMBOL_ICON); 619 modifiers.add(Modifiers.C_QUANTITY); 620 modifiers.add(Modifiers.G_STAFF_COMMENTS); 621 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 622 modifiers.add(Modifiers.J_EVALUATION_RATING); 623 modifiers.add(Modifiers.K_COMBAT_EFFECTIVENESS); 624 modifiers.add(Modifiers.P_IFF_SIF_AIS); 625 modifiers.add(Modifiers.S_HQ_STAFF_INDICATOR); 626 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 627 modifiers.add(Modifiers.W_DTG_1); 628 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 629 modifiers.add(Modifiers.Y_LOCATION); 630 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 631 modifiers.add(Modifiers.AE_EQUIPMENT_TEARDOWN_TIME); 632 modifiers.add(Modifiers.AH_AREA_OF_UNCERTAINTY); 633 modifiers.add(Modifiers.AI_DEAD_RECKONING_TRAILER); 634 modifiers.add(Modifiers.AK_PAIRING_LINE); 635 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 636 //modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 637 modifiers.add(Modifiers.AQ_GUARDED_UNIT); 638 modifiers.add(Modifiers.AS_COUNTRY); 639 break; 640 case SymbolID.SymbolSet_DismountedIndividuals: 641 modifiers.add(Modifiers.A_SYMBOL_ICON); 642 modifiers.add(Modifiers.G_STAFF_COMMENTS); 643 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 644 modifiers.add(Modifiers.J_EVALUATION_RATING); 645 modifiers.add(Modifiers.K_COMBAT_EFFECTIVENESS); 646 modifiers.add(Modifiers.M_HIGHER_FORMATION); 647 modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 648 modifiers.add(Modifiers.P_IFF_SIF_AIS); 649 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 650 modifiers.add(Modifiers.V_EQUIP_TYPE); 651 modifiers.add(Modifiers.W_DTG_1); 652 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 653 modifiers.add(Modifiers.Y_LOCATION); 654 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 655 modifiers.add(Modifiers.AF_COMMON_IDENTIFIER); 656 modifiers.add(Modifiers.AS_COUNTRY); 657 modifiers.add(Modifiers.AV_LEADERSHIP); 658 break; 659 case SymbolID.SymbolSet_Space: 660 case SymbolID.SymbolSet_SpaceMissile: 661 case SymbolID.SymbolSet_Air: 662 case SymbolID.SymbolSet_AirMissile: 663 modifiers.add(Modifiers.A_SYMBOL_ICON); 664 modifiers.add(Modifiers.B_ECHELON); 665 modifiers.add(Modifiers.C_QUANTITY); 666 modifiers.add(Modifiers.G_STAFF_COMMENTS); 667 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 668 modifiers.add(Modifiers.J_EVALUATION_RATING); 669 modifiers.add(Modifiers.P_IFF_SIF_AIS); 670 //modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 671 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 672 modifiers.add(Modifiers.V_EQUIP_TYPE); 673 modifiers.add(Modifiers.W_DTG_1); 674 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 675 modifiers.add(Modifiers.Y_LOCATION); 676 modifiers.add(Modifiers.Z_SPEED); 677 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 678 modifiers.add(Modifiers.AD_PLATFORM_TYPE); 679 modifiers.add(Modifiers.AF_COMMON_IDENTIFIER); 680 modifiers.add(Modifiers.AJ_SPEED_LEADER); 681 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 682 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 683 modifiers.add(Modifiers.AR_SPECIAL_DESIGNATOR); 684 modifiers.add(Modifiers.AS_COUNTRY); 685 break; 686 case SymbolID.SymbolSet_SeaSurface: 687 modifiers.add(Modifiers.A_SYMBOL_ICON); 688 modifiers.add(Modifiers.G_STAFF_COMMENTS); 689 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 690 modifiers.add(Modifiers.P_IFF_SIF_AIS); 691 //modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 692 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 693 modifiers.add(Modifiers.V_EQUIP_TYPE); 694 modifiers.add(Modifiers.Y_LOCATION); 695 modifiers.add(Modifiers.Z_SPEED); 696 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 697 modifiers.add(Modifiers.AG_AUX_EQUIP_INDICATOR); 698 modifiers.add(Modifiers.AJ_SPEED_LEADER); 699 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 700 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 701 modifiers.add(Modifiers.AQ_GUARDED_UNIT); 702 modifiers.add(Modifiers.AR_SPECIAL_DESIGNATOR); 703 modifiers.add(Modifiers.AS_COUNTRY); 704 break; 705 case SymbolID.SymbolSet_SeaSubsurface: 706 modifiers.add(Modifiers.A_SYMBOL_ICON); 707 modifiers.add(Modifiers.G_STAFF_COMMENTS); 708 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 709 modifiers.add(Modifiers.P_IFF_SIF_AIS); 710 //modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 711 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 712 modifiers.add(Modifiers.V_EQUIP_TYPE); 713 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 714 modifiers.add(Modifiers.Y_LOCATION); 715 modifiers.add(Modifiers.Z_SPEED); 716 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 717 modifiers.add(Modifiers.AJ_SPEED_LEADER); 718 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 719 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 720 modifiers.add(Modifiers.AR_SPECIAL_DESIGNATOR); 721 modifiers.add(Modifiers.AS_COUNTRY); 722 break; 723 case SymbolID.SymbolSet_Activities: 724 modifiers.add(Modifiers.A_SYMBOL_ICON); 725 modifiers.add(Modifiers.C_QUANTITY); 726 modifiers.add(Modifiers.G_STAFF_COMMENTS); 727 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 728 modifiers.add(Modifiers.J_EVALUATION_RATING); 729 modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 730 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 731 modifiers.add(Modifiers.W_DTG_1); 732 modifiers.add(Modifiers.Y_LOCATION); 733 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 734 modifiers.add(Modifiers.AS_COUNTRY); 735 break; 736 case SymbolID.SymbolSet_CyberSpace: 737 modifiers.add(Modifiers.A_SYMBOL_ICON); 738 modifiers.add(Modifiers.B_ECHELON); 739 modifiers.add(Modifiers.F_REINFORCED_REDUCED); 740 modifiers.add(Modifiers.G_STAFF_COMMENTS); 741 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 742 modifiers.add(Modifiers.K_COMBAT_EFFECTIVENESS); 743 modifiers.add(Modifiers.L_SIGNATURE_EQUIP); 744 modifiers.add(Modifiers.M_HIGHER_FORMATION); 745 modifiers.add(Modifiers.S_HQ_STAFF_INDICATOR); 746 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 747 modifiers.add(Modifiers.V_EQUIP_TYPE); 748 modifiers.add(Modifiers.W_DTG_1); 749 modifiers.add(Modifiers.Y_LOCATION); 750 modifiers.add(Modifiers.AS_COUNTRY); 751 break; 752 /*case SymbolID.SymbolSet_SignalsIntelligence_Air: 753 case SymbolID.SymbolSet_SignalsIntelligence_Land: 754 case SymbolID.SymbolSet_SignalsIntelligence_SeaSurface: 755 case SymbolID.SymbolSet_SignalsIntelligence_SeaSubsurface: 756 case SymbolID.SymbolSet_SignalsIntelligence_Space: 757 modifiers.add(Modifiers.A_SYMBOL_ICON); 758 modifiers.add(Modifiers.D_TASK_FORCE_INDICATOR); 759 modifiers.add(Modifiers.G_STAFF_COMMENTS); 760 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 761 modifiers.add(Modifiers.J_EVALUATION_RATING); 762 modifiers.add(Modifiers.M_HIGHER_FORMATION); 763 modifiers.add(Modifiers.R2_SIGNIT_MOBILITY_INDICATOR); 764 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 765 modifiers.add(Modifiers.V_EQUIP_TYPE); 766 modifiers.add(Modifiers.W1_DTG_2); 767 modifiers.add(Modifiers.Y_LOCATION); 768 modifiers.add(Modifiers.AD_PLATFORM_TYPE);//like equipment 769 modifiers.add(Modifiers.AE_EQUIPMENT_TEARDOWN_TIME);//like equipment 770 modifiers.add(Modifiers.AF_COMMON_IDENTIFIER);//like equipment 771 break;*/ 772 773 case SymbolID.SymbolSet_ControlMeasure: 774 //values come from files during MSLookup load 775 break; 776 case SymbolID.SymbolSet_Atmospheric: 777 //Tropopause low, Tropopause high 778 if ((ec.equals("110102")) || (ec.equals("110202")) || 779 (ec.equals("162200"))) 780 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 781 else if (ec.equals("140200")) 782 modifiers.add(Modifiers.AN_AZIMUTH); 783 break; 784 case SymbolID.SymbolSet_MineWarfare: 785 case SymbolID.SymbolSet_Oceanographic: 786 case SymbolID.SymbolSet_MeteorologicalSpace: 787 default://no modifiers 788 789 } 790 } 791 else if(version == SymbolID.Version_2525Dch1) 792 { 793 switch (ss) { 794 case SymbolID.SymbolSet_LandUnit: 795 case SymbolID.SymbolSet_LandCivilianUnit_Organization: 796 modifiers.add(Modifiers.A_SYMBOL_ICON); 797 modifiers.add(Modifiers.B_ECHELON); 798 modifiers.add(Modifiers.D_TASK_FORCE_INDICATOR); 799 modifiers.add(Modifiers.F_REINFORCED_REDUCED); 800 modifiers.add(Modifiers.G_STAFF_COMMENTS); 801 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 802 modifiers.add(Modifiers.J_EVALUATION_RATING); 803 modifiers.add(Modifiers.K_COMBAT_EFFECTIVENESS); 804 modifiers.add(Modifiers.M_HIGHER_FORMATION); 805 modifiers.add(Modifiers.P_IFF_SIF_AIS); 806 modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 807 modifiers.add(Modifiers.S_HQ_STAFF_INDICATOR); 808 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 809 modifiers.add(Modifiers.W_DTG_1); 810 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 811 modifiers.add(Modifiers.Y_LOCATION); 812 modifiers.add(Modifiers.Z_SPEED); 813 if(ss==SymbolID.SymbolSet_LandUnit && ec.equals("110000")) 814 modifiers.add(Modifiers.AA_SPECIAL_C2_HQ); 815 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 816 modifiers.add(Modifiers.AH_AREA_OF_UNCERTAINTY); 817 modifiers.add(Modifiers.AI_DEAD_RECKONING_TRAILER); 818 modifiers.add(Modifiers.AK_PAIRING_LINE); 819 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 820 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 821 modifiers.add(Modifiers.AS_COUNTRY); 822 break; 823 case SymbolID.SymbolSet_LandEquipment: 824 case SymbolID.SymbolSet_SignalsIntelligence_Land: 825 modifiers.add(Modifiers.A_SYMBOL_ICON); 826 modifiers.add(Modifiers.C_QUANTITY); 827 modifiers.add(Modifiers.G_STAFF_COMMENTS); 828 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 829 modifiers.add(Modifiers.J_EVALUATION_RATING); 830 modifiers.add(Modifiers.L_SIGNATURE_EQUIP); 831 modifiers.add(Modifiers.N_HOSTILE); 832 modifiers.add(Modifiers.P_IFF_SIF_AIS); 833 modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 834 modifiers.add(Modifiers.R_MOBILITY_INDICATOR); 835 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 836 modifiers.add(Modifiers.V_EQUIP_TYPE); 837 modifiers.add(Modifiers.W_DTG_1); 838 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 839 modifiers.add(Modifiers.Y_LOCATION); 840 modifiers.add(Modifiers.Z_SPEED); 841 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 842 modifiers.add(Modifiers.AD_PLATFORM_TYPE); 843 modifiers.add(Modifiers.AE_EQUIPMENT_TEARDOWN_TIME); 844 modifiers.add(Modifiers.AF_COMMON_IDENTIFIER); 845 modifiers.add(Modifiers.AG_AUX_EQUIP_INDICATOR); 846 modifiers.add(Modifiers.AH_AREA_OF_UNCERTAINTY); 847 modifiers.add(Modifiers.AI_DEAD_RECKONING_TRAILER); 848 modifiers.add(Modifiers.AK_PAIRING_LINE); 849 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 850 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 851 modifiers.add(Modifiers.AR_SPECIAL_DESIGNATOR); 852 modifiers.add(Modifiers.AS_COUNTRY); 853 break; 854 case SymbolID.SymbolSet_LandInstallation: 855 modifiers.add(Modifiers.A_SYMBOL_ICON); 856 modifiers.add(Modifiers.G_STAFF_COMMENTS); 857 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 858 modifiers.add(Modifiers.J_EVALUATION_RATING); 859 modifiers.add(Modifiers.K_COMBAT_EFFECTIVENESS); 860 modifiers.add(Modifiers.P_IFF_SIF_AIS); 861 modifiers.add(Modifiers.S_HQ_STAFF_INDICATOR); 862 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 863 modifiers.add(Modifiers.W_DTG_1); 864 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 865 modifiers.add(Modifiers.Y_LOCATION); 866 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 867 modifiers.add(Modifiers.AH_AREA_OF_UNCERTAINTY); 868 modifiers.add(Modifiers.AI_DEAD_RECKONING_TRAILER); 869 modifiers.add(Modifiers.AK_PAIRING_LINE); 870 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 871 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 872 modifiers.add(Modifiers.AS_COUNTRY); 873 break; 874 case SymbolID.SymbolSet_Space: 875 case SymbolID.SymbolSet_SpaceMissile: 876 case SymbolID.SymbolSet_SignalsIntelligence_Space: 877 modifiers.add(Modifiers.A_SYMBOL_ICON); 878 modifiers.add(Modifiers.G_STAFF_COMMENTS); 879 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 880 modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 881 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 882 modifiers.add(Modifiers.V_EQUIP_TYPE); 883 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 884 modifiers.add(Modifiers.Z_SPEED); 885 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 886 modifiers.add(Modifiers.AJ_SPEED_LEADER); 887 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 888 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 889 modifiers.add(Modifiers.AS_COUNTRY); 890 break; 891 case SymbolID.SymbolSet_Air: 892 case SymbolID.SymbolSet_AirMissile: 893 case SymbolID.SymbolSet_SignalsIntelligence_Air: 894 modifiers.add(Modifiers.A_SYMBOL_ICON); 895 modifiers.add(Modifiers.G_STAFF_COMMENTS); 896 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 897 modifiers.add(Modifiers.P_IFF_SIF_AIS);//air only 898 modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 899 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 900 modifiers.add(Modifiers.V_EQUIP_TYPE); 901 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 902 modifiers.add(Modifiers.Z_SPEED); 903 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 904 modifiers.add(Modifiers.AJ_SPEED_LEADER); 905 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 906 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 907 modifiers.add(Modifiers.AS_COUNTRY); 908 break; 909 case SymbolID.SymbolSet_SeaSurface: 910 case SymbolID.SymbolSet_SignalsIntelligence_SeaSurface: 911 modifiers.add(Modifiers.A_SYMBOL_ICON); 912 modifiers.add(Modifiers.G_STAFF_COMMENTS); 913 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 914 modifiers.add(Modifiers.P_IFF_SIF_AIS); 915 modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 916 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 917 modifiers.add(Modifiers.V_EQUIP_TYPE); 918 modifiers.add(Modifiers.Y_LOCATION); 919 modifiers.add(Modifiers.Z_SPEED); 920 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 921 modifiers.add(Modifiers.AJ_SPEED_LEADER); 922 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 923 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 924 modifiers.add(Modifiers.AQ_GUARDED_UNIT); 925 modifiers.add(Modifiers.AR_SPECIAL_DESIGNATOR); 926 modifiers.add(Modifiers.AS_COUNTRY); 927 break; 928 case SymbolID.SymbolSet_SeaSubsurface: 929 case SymbolID.SymbolSet_SignalsIntelligence_SeaSubsurface: 930 modifiers.add(Modifiers.A_SYMBOL_ICON); 931 modifiers.add(Modifiers.AG_AUX_EQUIP_INDICATOR); 932 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 933 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 934 modifiers.add(Modifiers.AR_SPECIAL_DESIGNATOR); 935 modifiers.add(Modifiers.G_STAFF_COMMENTS); 936 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 937 modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 938 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 939 modifiers.add(Modifiers.V_EQUIP_TYPE); 940 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 941 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 942 modifiers.add(Modifiers.AJ_SPEED_LEADER); 943 modifiers.add(Modifiers.AS_COUNTRY); 944 break; 945 case SymbolID.SymbolSet_Activities: 946 modifiers.add(Modifiers.A_SYMBOL_ICON); 947 modifiers.add(Modifiers.G_STAFF_COMMENTS); 948 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 949 modifiers.add(Modifiers.J_EVALUATION_RATING); 950 modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 951 modifiers.add(Modifiers.W_DTG_1); 952 modifiers.add(Modifiers.Y_LOCATION); 953 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 954 modifiers.add(Modifiers.AS_COUNTRY); 955 break; 956 case SymbolID.SymbolSet_CyberSpace: 957 modifiers.add(Modifiers.A_SYMBOL_ICON); 958 modifiers.add(Modifiers.B_ECHELON); 959 modifiers.add(Modifiers.D_TASK_FORCE_INDICATOR); 960 modifiers.add(Modifiers.F_REINFORCED_REDUCED); 961 modifiers.add(Modifiers.G_STAFF_COMMENTS); 962 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 963 modifiers.add(Modifiers.K_COMBAT_EFFECTIVENESS); 964 modifiers.add(Modifiers.L_SIGNATURE_EQUIP); 965 modifiers.add(Modifiers.M_HIGHER_FORMATION); 966 modifiers.add(Modifiers.S_HQ_STAFF_INDICATOR); 967 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 968 modifiers.add(Modifiers.V_EQUIP_TYPE); 969 modifiers.add(Modifiers.W_DTG_1); 970 modifiers.add(Modifiers.Y_LOCATION); 971 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 972 modifiers.add(Modifiers.AS_COUNTRY); 973 break; 974 /*case SymbolID.SymbolSet_SignalsIntelligence_Air: 975 case SymbolID.SymbolSet_SignalsIntelligence_Land: 976 case SymbolID.SymbolSet_SignalsIntelligence_SeaSurface: 977 case SymbolID.SymbolSet_SignalsIntelligence_SeaSubsurface: 978 case SymbolID.SymbolSet_SignalsIntelligence_Space: 979 modifiers.add(Modifiers.A_SYMBOL_ICON); 980 modifiers.add(Modifiers.D_TASK_FORCE_INDICATOR); 981 modifiers.add(Modifiers.G_STAFF_COMMENTS); 982 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 983 modifiers.add(Modifiers.J_EVALUATION_RATING); 984 modifiers.add(Modifiers.M_HIGHER_FORMATION); 985 modifiers.add(Modifiers.R2_SIGNIT_MOBILITY_INDICATOR); 986 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 987 modifiers.add(Modifiers.V_EQUIP_TYPE); 988 modifiers.add(Modifiers.W1_DTG_2); 989 modifiers.add(Modifiers.Y_LOCATION); 990 modifiers.add(Modifiers.AD_PLATFORM_TYPE);//like equipment 991 modifiers.add(Modifiers.AE_EQUIPMENT_TEARDOWN_TIME);//like equipment 992 modifiers.add(Modifiers.AF_COMMON_IDENTIFIER);//like equipment 993 break;*/ 994 995 case SymbolID.SymbolSet_ControlMeasure: 996 //values come from files during MSLookup load 997 break; 998 case SymbolID.SymbolSet_Atmospheric: 999 //Tropopause low, Tropopause high 1000 if ((ec.equals("110102")) || (ec.equals("110202")) || 1001 (ec.equals("162200"))) 1002 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 1003 else if (ec.equals("140200")) 1004 modifiers.add(Modifiers.AN_AZIMUTH); 1005 break; 1006 case SymbolID.SymbolSet_MineWarfare: 1007 case SymbolID.SymbolSet_Oceanographic: 1008 case SymbolID.SymbolSet_MeteorologicalSpace: 1009 default://no modifiers 1010 1011 } 1012 } 1013 else if(version == SymbolID.Version_APP6D) 1014 { 1015 switch (ss) { 1016 case SymbolID.SymbolSet_LandUnit: 1017 case SymbolID.SymbolSet_LandCivilianUnit_Organization: 1018 modifiers.add(Modifiers.A_SYMBOL_ICON); 1019 modifiers.add(Modifiers.B_ECHELON); 1020 modifiers.add(Modifiers.C_QUANTITY); 1021 modifiers.add(Modifiers.D_TASK_FORCE_INDICATOR); 1022 modifiers.add(Modifiers.F_REINFORCED_REDUCED); 1023 modifiers.add(Modifiers.G_STAFF_COMMENTS); 1024 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 1025 modifiers.add(Modifiers.J_EVALUATION_RATING); 1026 modifiers.add(Modifiers.K_COMBAT_EFFECTIVENESS); 1027 modifiers.add(Modifiers.L_SIGNATURE_EQUIP); 1028 modifiers.add(Modifiers.M_HIGHER_FORMATION); 1029 modifiers.add(Modifiers.P_IFF_SIF_AIS); 1030 modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 1031 modifiers.add(Modifiers.S_HQ_STAFF_INDICATOR); 1032 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 1033 modifiers.add(Modifiers.W_DTG_1); 1034 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 1035 modifiers.add(Modifiers.Y_LOCATION); 1036 modifiers.add(Modifiers.Z_SPEED); 1037 if(ss==SymbolID.SymbolSet_LandUnit && ec.equals("110000")) 1038 modifiers.add(Modifiers.AA_SPECIAL_C2_HQ); 1039 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 1040 modifiers.add(Modifiers.AD_PLATFORM_TYPE); 1041 modifiers.add(Modifiers.AE_EQUIPMENT_TEARDOWN_TIME); 1042 modifiers.add(Modifiers.AF_COMMON_IDENTIFIER); 1043 modifiers.add(Modifiers.AH_AREA_OF_UNCERTAINTY); 1044 modifiers.add(Modifiers.AI_DEAD_RECKONING_TRAILER); 1045 modifiers.add(Modifiers.AK_PAIRING_LINE); 1046 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 1047 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 1048 modifiers.add(Modifiers.AS_COUNTRY); 1049 break; 1050 case SymbolID.SymbolSet_LandEquipment: 1051 case SymbolID.SymbolSet_SignalsIntelligence_Land: 1052 modifiers.add(Modifiers.A_SYMBOL_ICON); 1053 modifiers.add(Modifiers.C_QUANTITY); 1054 modifiers.add(Modifiers.G_STAFF_COMMENTS); 1055 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 1056 modifiers.add(Modifiers.J_EVALUATION_RATING); 1057 modifiers.add(Modifiers.K_COMBAT_EFFECTIVENESS); 1058 modifiers.add(Modifiers.L_SIGNATURE_EQUIP); 1059 modifiers.add(Modifiers.M_HIGHER_FORMATION); 1060 modifiers.add(Modifiers.N_HOSTILE); 1061 modifiers.add(Modifiers.P_IFF_SIF_AIS); 1062 modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 1063 modifiers.add(Modifiers.R_MOBILITY_INDICATOR); 1064 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 1065 modifiers.add(Modifiers.V_EQUIP_TYPE); 1066 modifiers.add(Modifiers.W_DTG_1); 1067 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 1068 modifiers.add(Modifiers.Y_LOCATION); 1069 modifiers.add(Modifiers.Z_SPEED); 1070 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 1071 modifiers.add(Modifiers.AD_PLATFORM_TYPE); 1072 modifiers.add(Modifiers.AE_EQUIPMENT_TEARDOWN_TIME); 1073 modifiers.add(Modifiers.AF_COMMON_IDENTIFIER); 1074 modifiers.add(Modifiers.AG_AUX_EQUIP_INDICATOR); 1075 modifiers.add(Modifiers.AH_AREA_OF_UNCERTAINTY); 1076 modifiers.add(Modifiers.AI_DEAD_RECKONING_TRAILER); 1077 modifiers.add(Modifiers.AK_PAIRING_LINE); 1078 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 1079 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 1080 modifiers.add(Modifiers.AS_COUNTRY); 1081 break; 1082 case SymbolID.SymbolSet_LandInstallation: 1083 modifiers.add(Modifiers.A_SYMBOL_ICON); 1084 modifiers.add(Modifiers.C_QUANTITY); 1085 modifiers.add(Modifiers.G_STAFF_COMMENTS); 1086 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 1087 modifiers.add(Modifiers.J_EVALUATION_RATING); 1088 modifiers.add(Modifiers.K_COMBAT_EFFECTIVENESS); 1089 modifiers.add(Modifiers.P_IFF_SIF_AIS); 1090 modifiers.add(Modifiers.S_HQ_STAFF_INDICATOR); 1091 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 1092 modifiers.add(Modifiers.W_DTG_1); 1093 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 1094 modifiers.add(Modifiers.Y_LOCATION); 1095 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 1096 modifiers.add(Modifiers.AE_EQUIPMENT_TEARDOWN_TIME); 1097 modifiers.add(Modifiers.AH_AREA_OF_UNCERTAINTY); 1098 modifiers.add(Modifiers.AI_DEAD_RECKONING_TRAILER); 1099 modifiers.add(Modifiers.AK_PAIRING_LINE); 1100 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 1101 modifiers.add(Modifiers.AS_COUNTRY); 1102 break; 1103 case SymbolID.SymbolSet_DismountedIndividuals: 1104 modifiers.add(Modifiers.A_SYMBOL_ICON); 1105 modifiers.add(Modifiers.C_QUANTITY); 1106 modifiers.add(Modifiers.G_STAFF_COMMENTS); 1107 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 1108 modifiers.add(Modifiers.J_EVALUATION_RATING); 1109 modifiers.add(Modifiers.K_COMBAT_EFFECTIVENESS); 1110 modifiers.add(Modifiers.M_HIGHER_FORMATION); 1111 modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 1112 modifiers.add(Modifiers.P_IFF_SIF_AIS); 1113 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 1114 modifiers.add(Modifiers.V_EQUIP_TYPE); 1115 modifiers.add(Modifiers.W_DTG_1); 1116 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 1117 modifiers.add(Modifiers.Y_LOCATION); 1118 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 1119 modifiers.add(Modifiers.AF_COMMON_IDENTIFIER); 1120 modifiers.add(Modifiers.AS_COUNTRY); 1121 modifiers.add(Modifiers.AV_LEADERSHIP); 1122 break; 1123 case SymbolID.SymbolSet_Space: 1124 case SymbolID.SymbolSet_SpaceMissile: 1125 modifiers.add(Modifiers.A_SYMBOL_ICON); 1126 modifiers.add(Modifiers.G_STAFF_COMMENTS); 1127 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 1128 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 1129 modifiers.add(Modifiers.V_EQUIP_TYPE); 1130 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 1131 modifiers.add(Modifiers.Z_SPEED); 1132 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 1133 modifiers.add(Modifiers.AJ_SPEED_LEADER); 1134 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 1135 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 1136 modifiers.add(Modifiers.AS_COUNTRY); 1137 break; 1138 case SymbolID.SymbolSet_Air: 1139 case SymbolID.SymbolSet_AirMissile: 1140 modifiers.add(Modifiers.A_SYMBOL_ICON); 1141 modifiers.add(Modifiers.G_STAFF_COMMENTS); 1142 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 1143 modifiers.add(Modifiers.P_IFF_SIF_AIS);//air only 1144 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 1145 modifiers.add(Modifiers.V_EQUIP_TYPE); 1146 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 1147 modifiers.add(Modifiers.Z_SPEED); 1148 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 1149 modifiers.add(Modifiers.AJ_SPEED_LEADER); 1150 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 1151 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 1152 modifiers.add(Modifiers.AS_COUNTRY); 1153 break; 1154 case SymbolID.SymbolSet_SeaSurface: 1155 modifiers.add(Modifiers.A_SYMBOL_ICON); 1156 modifiers.add(Modifiers.G_STAFF_COMMENTS); 1157 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 1158 modifiers.add(Modifiers.P_IFF_SIF_AIS); 1159 //modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 1160 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 1161 modifiers.add(Modifiers.V_EQUIP_TYPE); 1162 modifiers.add(Modifiers.Y_LOCATION); 1163 modifiers.add(Modifiers.Z_SPEED); 1164 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 1165 modifiers.add(Modifiers.AJ_SPEED_LEADER); 1166 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 1167 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 1168 modifiers.add(Modifiers.AQ_GUARDED_UNIT); 1169 modifiers.add(Modifiers.AR_SPECIAL_DESIGNATOR); 1170 modifiers.add(Modifiers.AS_COUNTRY); 1171 break; 1172 case SymbolID.SymbolSet_SeaSubsurface: 1173 modifiers.add(Modifiers.A_SYMBOL_ICON); 1174 modifiers.add(Modifiers.G_STAFF_COMMENTS); 1175 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 1176 //modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 1177 modifiers.add(Modifiers.T_UNIQUE_DESIGNATION_1); 1178 modifiers.add(Modifiers.V_EQUIP_TYPE); 1179 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 1180 modifiers.add(Modifiers.Y_LOCATION); 1181 modifiers.add(Modifiers.Z_SPEED); 1182 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 1183 modifiers.add(Modifiers.AJ_SPEED_LEADER); 1184 modifiers.add(Modifiers.AL_OPERATIONAL_CONDITION); 1185 modifiers.add(Modifiers.AO_ENGAGEMENT_BAR); 1186 modifiers.add(Modifiers.AR_SPECIAL_DESIGNATOR); 1187 modifiers.add(Modifiers.AS_COUNTRY); 1188 break; 1189 case SymbolID.SymbolSet_Activities: 1190 modifiers.add(Modifiers.A_SYMBOL_ICON); 1191 modifiers.add(Modifiers.C_QUANTITY); 1192 modifiers.add(Modifiers.G_STAFF_COMMENTS); 1193 modifiers.add(Modifiers.H_ADDITIONAL_INFO_1); 1194 modifiers.add(Modifiers.J_EVALUATION_RATING); 1195 modifiers.add(Modifiers.Q_DIRECTION_OF_MOVEMENT); 1196 modifiers.add(Modifiers.W_DTG_1); 1197 modifiers.add(Modifiers.Y_LOCATION); 1198 modifiers.add(Modifiers.AB_FEINT_DUMMY_INDICATOR); 1199 modifiers.add(Modifiers.AS_COUNTRY); 1200 break; 1201 1202 case SymbolID.SymbolSet_ControlMeasure: 1203 //values come from files during MSLookup load 1204 break; 1205 case SymbolID.SymbolSet_Atmospheric: 1206 //Tropopause low, Tropopause high 1207 if ((ec.equals("110102")) || (ec.equals("110202")) || 1208 (ec.equals("162200"))) 1209 modifiers.add(Modifiers.X_ALTITUDE_DEPTH); 1210 else if (ec.equals("140200")) 1211 modifiers.add(Modifiers.AN_AZIMUTH); 1212 break; 1213 case SymbolID.SymbolSet_MineWarfare: 1214 case SymbolID.SymbolSet_Oceanographic: 1215 case SymbolID.SymbolSet_MeteorologicalSpace: 1216 default://no modifiers 1217 break; 1218 1219 } 1220 } 1221 1222 if(ss == SymbolID.SymbolSet_SignalsIntelligence_Air || 1223 ss == SymbolID.SymbolSet_SignalsIntelligence_Land || 1224 ss == SymbolID.SymbolSet_SignalsIntelligence_SeaSurface || 1225 ss == SymbolID.SymbolSet_SignalsIntelligence_SeaSubsurface || 1226 ss == SymbolID.SymbolSet_SignalsIntelligence_Space) 1227 modifiers.add(Modifiers.R2_SIGNIT_MOBILITY_INDICATOR); 1228 1229 return modifiers; 1230 } 1231 1232 /** 1233 * 1234 * @param symbolID Full 20-30 digits from the symbol code 1235 * @return 1236 */ 1237 public MSInfo getMSLInfo(String symbolID) 1238 { 1239 int length = symbolID.length(); 1240 1241 if(length >= 20 && length <= 30) 1242 { 1243 int version = SymbolID.getVersion(symbolID); 1244 return getMSLInfo(SymbolUtilities.getBasicSymbolID(symbolID), version); 1245 } 1246 else 1247 return null; 1248 } 1249 1250 /** 1251 * 1252 * @param basicID id SymbolSet + Entity code like 50110100 1253 * @param version like SymbolID.Version_2525Dch1 1254 * @return 1255 */ 1256 public MSInfo getMSLInfo(String basicID, int version) 1257 { 1258 int length = basicID.length(); 1259 if (length == 8) { 1260 if (version == SymbolID.Version_2525E || version == SymbolID.Version_2525Ech1) 1261 return _MSLookupE.get(basicID); 1262 else if (version == SymbolID.Version_APP6Ech2 || version == SymbolID.Version_APP6Ech1) 1263 return _MSLookup6E.get(basicID); 1264 else if (version == SymbolID.Version_APP6D) 1265 return _MSLookup6D.get(basicID); 1266 else if (version == SymbolID.Version_2525Dch1) 1267 return _MSLookupD.get(basicID); 1268 else 1269 return null; 1270 } 1271 else if (length >= 20 && length <= 30)//probably got a full id instead of a basic ID. 1272 { 1273 return getMSLInfo(SymbolUtilities.getBasicSymbolID(basicID), version); 1274 } else 1275 return null; 1276 } 1277 1278 /** 1279 * returns a list of all the keys in the order they are listed in the MilStd 2525D document. 1280 * @return 1281 */ 1282 public List<String> getIDList(int version) 1283 { 1284 if (version == SymbolID.Version_2525E || version == SymbolID.Version_2525Ech1) 1285 return _IDListE; 1286 else if (version == SymbolID.Version_APP6D) 1287 return _IDList6D; 1288 else if (version == SymbolID.Version_2525Dch1) 1289 return _IDListD; 1290 else if (version == SymbolID.Version_APP6Ech1 || version == SymbolID.Version_APP6Ech2) 1291 return _IDList6E; 1292 else//default to 2525Dch1 1293 return _IDListD; 1294 } 1295 1296 /* 1297 * For use only by MilStdIconRenderer.addCustomSymbol() 1298 * @param msInfo 1299 * @return 1300 */ 1301 public boolean addCustomSymbol(MSInfo msInfo) 1302 { 1303 boolean success = false; 1304 try 1305 { 1306 if(msInfo != null) 1307 success = addCustomToLookupAndList(msInfo); 1308 else 1309 ErrorLogger.LogMessage("Attempt to add custom msInfo with null object.",Level.INFO,false); 1310 if(msInfo != null && !success) 1311 ErrorLogger.LogMessage("Symbol Set and Entity Code combination already exist: " + msInfo.getBasicSymbolID(),Level.INFO,false); 1312 } 1313 catch(Exception e) 1314 { 1315 ErrorLogger.LogException("MSLookup", "addCustomSymbol",e); 1316 } 1317 return success; 1318 } 1319}