Beispiel #1
0
        public object Deserialize(System.Xml.XmlReader xmlReader)
        {
            List <Profile> profiles = new List <Profile>();

            xmlReader.ReadStartElement("Profiles");
            while (xmlReader.IsStartElement("Profile"))
            {
                Profile item = new Profile();
                xmlReader.ReadStartElement();
                item.Name    = xmlReader.ReadElementString("Name");
                item.Enabled = bool.Parse(xmlReader.ReadElementString("Enabled"));

                if (xmlReader.IsStartElement("EventTrigger"))
                {
                    xmlReader.ReadStartElement();
                    ISerializer   ser     = SerializerProvider.GetSerializer(typeof(ITrigger));
                    IEventTrigger trigger = (IEventTrigger)ser.Deserialize(xmlReader);
                    item.EventTrigger = trigger;
                    xmlReader.ReadEndElement();
                    SerializerHelper.ReadWhiteSpace(xmlReader);
                }
                item.StateTriggers = new List <IStateTrigger>();
                if (xmlReader.IsStartElement("StateTriggers"))
                {
                    xmlReader.ReadStartElement();
                    SerializerHelper.ReadWhiteSpace(xmlReader);
                    while (xmlReader.IsStartElement())
                    {
                        ISerializer   ser     = SerializerProvider.GetSerializer(typeof(ITrigger));
                        IStateTrigger trigger = (IStateTrigger)ser.Deserialize(xmlReader);
                        item.StateTriggers.Add(trigger);
                    }
                    xmlReader.ReadEndElement();
                    SerializerHelper.ReadWhiteSpace(xmlReader);
                }
                if (xmlReader.IsStartElement("EnterStateAction"))
                {
                    xmlReader.ReadStartElement();
                    SerializerHelper.ReadWhiteSpace(xmlReader);
                    item.ActionToExecute = SerializerHelper.DeserializeAction(xmlReader);
                    xmlReader.ReadEndElement();
                    SerializerHelper.ReadWhiteSpace(xmlReader);
                }
                if (xmlReader.IsStartElement("ExitStateAction"))
                {
                    xmlReader.ReadStartElement();
                    SerializerHelper.ReadWhiteSpace(xmlReader);
                    item.ActionToExecute = SerializerHelper.DeserializeAction(xmlReader);
                    xmlReader.ReadEndElement();
                    SerializerHelper.ReadWhiteSpace(xmlReader);
                }
                xmlReader.ReadEndElement();
                SerializerHelper.ReadWhiteSpace(xmlReader);
                profiles.Add(item);
            }
            xmlReader.ReadEndElement();
            return(profiles);
        }
        /// <summary>
        /// Receive state machine related functions that give states required behaviour
        /// </summary>
        public void SetStateMachineFunctions(IStateDataBool<TBoolEnum> booleans, IStateTrigger<TTriggerEnum> triggers)
        {
            stateTriggers = triggers ?? throw new ArgumentNullException(
                paramName: nameof(triggers),
                message: "stateMachine cannot be null.");

            stateBooleans = booleans ?? throw new ArgumentNullException(
                paramName: nameof(booleans),
                message: "stateMachine cannot be null.");
        }
Beispiel #3
0
 /// <summary>
 /// Receive state machine related functions that give states required behaviour
 /// </summary>
 public void SetStateMachineFunctions(IStateTrigger <TTriggerEnum> triggers)
 {
     stateTriggers = triggers ?? throw new ArgumentNullException(
                               paramName: nameof(triggers),
                               message: "AITools.StateMachine cannot be null.");
 }