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}