public override void FromXml(string source)
        {
            // Deserializes initial condition from xml string
            XqlParser parser = new XqlParser();

            parser.LoadData(source);
            List <Hashtable> results = parser.Query("SELECT type, key, value FROM " + ElementType);

            if (results.Count == 0)
            {
                throw new HsfElementException("Unable to parse " + ElementType + " from xml");
            }

            // Load type enum
            Array posValues = Enum.GetValues(typeof(HsfType));

            foreach (HsfType v in posValues)
            {
                if (Enum.GetName(typeof(HsfType), v) == results[0]["type"].ToString())
                {
                    Type = v;
                }
            }

            // Load values
            Key   = results[0]["key"].ToString();
            Value = results[0]["key"].ToString();
        }
 public IcElement()
 {
     ElementType = "IC";
     Type        = HsfType.Bool;
     Key         = "unnamed_variable";
     Value       = "0.0";
 }
        public override void FromXml(string source)
        {
            // Deserializes object from xml string
            XqlParser parser = new XqlParser();

            parser.LoadData(source);
            List <Hashtable> results = parser.Query("SELECT scripted, type, key, callKey FROM " + ElementType);

            if (results.Count == 0)
            {
                throw new HsfElementException("Unable to parse " + ElementType + " from xml");
            }

            // Load type enum
            Array posValues = Enum.GetValues(typeof(HsfType));

            foreach (HsfType v in posValues)
            {
                if (Enum.GetName(typeof(HsfType), v) == results[0]["type"].ToString())
                {
                    Type = v;
                }
            }

            // Load flag
            IsScripted = results[0]["scripted"].ToString() == "True" ? true : false;

            // Load strings
            Key     = results[0]["key"].ToString();
            CallKey = results[0]["callKey"].ToString();
        }
        public void LoadFunction(string functionHeader)
        {
            // Parses and loads function from given header
            // Sample: Double getValueAtTime(String SubsystemKey, Double time)
            // ASSUMES CORRECT FORMAT
            string[] parenSplitter = { "(" };
            string[] spaceSplitter = { " " };
            string[] paramSplitter = { ", " };
            string[] header        = functionHeader.Split(parenSplitter, StringSplitOptions.RemoveEmptyEntries);

            // Parse type and name from first two strings
            string[] title = header[0].Split(spaceSplitter, StringSplitOptions.RemoveEmptyEntries);
            _functionType = stringToType(title[0]);
            _functionName = title[1];

            // Parse function parameters
            _parameterNames.Clear();
            _parameterTypes.Clear();
            string[] parameters = header[1].Replace(")", "").Split(paramSplitter, StringSplitOptions.RemoveEmptyEntries);
            foreach (string param in parameters)
            {
                string[] pair = param.Split(spaceSplitter, StringSplitOptions.RemoveEmptyEntries);
                _parameterTypes.Add(stringToType(pair[0]));
                _parameterNames.Add(pair[1]);
            }

            // Set contents and resize accordingly
            Text  = RawHeader;
            Width = Text.Length * 6 + Text.Length / 3;
        }
 public DependencyFunctionElement()
 {
     Enabled     = false;
     ElementType = "DEPENDENCY_FCN";
     IsScripted  = false;
     Type        = HsfType.Bool;
     Key         = "unknown_key";
     CallKey     = "unknown_call_key";
 }
 private string typeToString(HsfType type)
 {
     // Converts given HsfType to string equivalent
     return(Enum.GetName(typeof(HsfType), type));
 }