Example #1
0
        /**
         * Performs substitutions on the spec. See individual elements for
         * details on what gets substituted.
         *
         * @param substituter
         * @return The substituted spec.
         */
        public GadgetSpec substitute(Substitutions substituter)
        {
            GadgetSpec spec = new GadgetSpec(this);

            spec.modulePrefs = modulePrefs.substitute(substituter);
            if (userPrefs.Count == 0)
            {
                spec.userPrefs = new List <UserPref>();
            }
            else
            {
                List <UserPref> prefs = new List <UserPref>();
                foreach (UserPref pref in userPrefs)
                {
                    prefs.Add(pref.substitute(substituter));
                }
                spec.userPrefs = prefs;
            }
            Dictionary <String, View> viewMap = new Dictionary <String, View>(views.Count);

            foreach (View view in views.Values)
            {
                viewMap.Add(view.getName(), view.substitute(substituter));
            }
            spec.views = viewMap;

            return(spec);
        }