public void Set(Agent pAgent, CMemberBase pMember, string variableName, object value, uint varId) { if (varId == 0u) { varId = Utils.MakeVariableId(variableName); } IVariable variable = null; if (!this.m_variables.TryGetValue(varId, out variable)) { if (pMember == null) { if (pAgent != null) { pMember = pAgent.FindMember(variableName); } else { pMember = Agent.FindMemberBase(variableName); } } variable = new IVariable(pMember, variableName, varId); this.m_variables.Add(varId, variable); } variable.SetValue(value, pAgent); }
public static Property Create(string typeName, string variableName, string value, bool bStatic, bool bConst) { if (!bConst) { string instanceName = null; bool flag = Utils.IsParVar(variableName); string text; if (flag) { text = string.Format("{0}::{1}", typeName, variableName); } else { text = Property.ParseInstanceNameProperty(variableName, ref instanceName); } bool flag2 = false; if (!string.IsNullOrEmpty(text)) { flag2 = Property.ms_properties.ContainsKey(text); } if (!flag2) { Property property = Property.create(flag, bConst, typeName, text, instanceName, value); if (!string.IsNullOrEmpty(text)) { Property.ms_properties.set_Item(text, property); } return(property.clone()); } Property property2 = Property.ms_properties.get_Item(text); Property property3 = property2.clone(); if (!string.IsNullOrEmpty(value) && !Property.IsAgentPtr(typeName, value)) { property3.SetDefaultValue(value); } return(property3); } else { CMemberBase cMemberBase = null; bool flag3 = !string.IsNullOrEmpty(variableName); string instanceName2 = null; string text2 = variableName; if (flag3) { text2 = Property.ParseInstanceNameProperty(variableName, ref instanceName2); cMemberBase = Agent.FindMemberBase(text2); } if (cMemberBase != null) { return(cMemberBase.CreateProperty(value, true)); } bool bParVar = flag3 && Utils.IsParVar(variableName); return(Property.create(bParVar, bConst, typeName, text2, instanceName2, value)); } }
public static Property CreateProperty(string typeName, string propertyName, string defaultValue) { CMemberBase cMemberBase = Agent.FindMemberBase(propertyName); if (cMemberBase != null) { return(cMemberBase.CreateProperty(defaultValue, false)); } return(null); }
public static Property Create(string typeName, string variableName, string value, bool bStatic, bool bConst) { if (!bConst) { string str = null; string str2 = null; bool flag = Utils.IsParVar(variableName); if (flag) { str2 = string.Format("{0}::{1}", typeName, variableName); } else { str2 = ParseInstanceNameProperty(variableName, ref str); } bool flag2 = false; if (!string.IsNullOrEmpty(str2)) { flag2 = ms_properties.ContainsKey(str2); } if (!flag2) { Property property = create(flag, bConst, typeName, str2, str, value); if (!string.IsNullOrEmpty(str2)) { ms_properties[str2] = property; } return(property.clone()); } Property property4 = ms_properties[str2].clone(); if (!string.IsNullOrEmpty(value) && !IsAgentPtr(typeName, value)) { property4.SetDefaultValue(value); } return(property4); } CMemberBase base2 = null; bool flag4 = !string.IsNullOrEmpty(variableName); string instanceName = null; string propertyName = variableName; if (flag4) { propertyName = ParseInstanceNameProperty(variableName, ref instanceName); base2 = Agent.FindMemberBase(propertyName); } if (base2 != null) { return(base2.CreateProperty(value, true)); } bool bParVar = flag4 && Utils.IsParVar(variableName); return(create(bParVar, bConst, typeName, propertyName, instanceName, value)); }
public static CMemberBase FindMemberBase(string propertyName) { string str = null; int num = Agent.ParsePropertyNames(propertyName, ref str); if (num != -1) { string str2 = propertyName.Substring(0, num).Replace("::", "."); CStringID agentClassId = new CStringID(str2); CStringID propertyId = new CStringID(str); return(Agent.FindMemberBase(agentClassId, propertyId)); } return(null); }
public static CMemberBase FindMemberBase(CStringID agentClassId, CStringID propertyId) { if (Agent.Metas.ContainsKey(agentClassId)) { Agent.CTagObjectDescriptor cTagObjectDescriptor = Agent.Metas[agentClassId]; for (int i = 0; i < cTagObjectDescriptor.ms_members.Count; i++) { CMemberBase cMemberBase = cTagObjectDescriptor.ms_members[i]; if (cMemberBase.GetId() == propertyId) { return(cMemberBase); } } if (cTagObjectDescriptor.type.get_BaseType() != null) { CStringID agentClassId2 = new CStringID(cTagObjectDescriptor.type.get_BaseType().get_FullName()); return(Agent.FindMemberBase(agentClassId2, propertyId)); } } return(null); }
public void Set(Agent pAgent, CMemberBase pMember, string variableName, object value, uint varId) { Debug.Check(!string.IsNullOrEmpty(variableName)); if (varId == 0) { varId = Utils.MakeVariableId(variableName); } IVariable pVar = null; if (!this.m_variables.ContainsKey(varId)) { if (pMember == null) { if (pAgent != null) { pMember = pAgent.FindMember(variableName); } else { pMember = Agent.FindMemberBase(variableName); } } pVar = new IVariable(pMember, variableName, varId); behaviac.Debug.Check(pVar != null); m_variables[varId] = pVar; } else { pVar = this.m_variables[varId]; } pVar.SetValue(value, pAgent); }
///create instance property, ///create class scope static property public static Property Create(string typeName, string variableName, string value, bool bStatic, bool bConst) { if (!bConst) { string instanceName = null; string pPropertyName = null; bool bParVar = Utils.IsParVar(variableName); if (bParVar) { pPropertyName = string.Format("{0}::{1}", typeName, variableName); } else { pPropertyName = ParseInstanceNameProperty(variableName, ref instanceName); } bool bFound = false; if (!string.IsNullOrEmpty(pPropertyName)) { bFound = ms_properties.ContainsKey(pPropertyName); } if (!bFound) { Property pProperty = Property.create(bParVar, bConst, typeName, pPropertyName, instanceName, value); if (!string.IsNullOrEmpty(pPropertyName)) { Debug.Check(pProperty != null); ms_properties[pPropertyName] = pProperty; } Property pO = pProperty.clone(); return(pO); } Property p = ms_properties[pPropertyName]; Property pO0 = p.clone(); if (!string.IsNullOrEmpty(value)) { bool bAgentPtr = IsAgentPtr(typeName, value); if (!bAgentPtr) { pO0.SetDefaultValue(value); } } return(pO0); } else { //const CMemberBase pMember = null; bool bValidName = !string.IsNullOrEmpty(variableName); string instanceName = null; string pPropertyName = variableName; if (bValidName) { pPropertyName = ParseInstanceNameProperty(variableName, ref instanceName); pMember = Agent.FindMemberBase(pPropertyName); } if (pMember != null) { Property pProperty = pMember.CreateProperty(value, true); return(pProperty); } else { //CMethodBase pMethod = null; //if (bValidName) //{ // pMethod = Agent.FindMethodBase(pPropertyName); //} //if (pMethod != null) //{ // Property pProperty = pMethod.CreateProperty(value, true); // return pProperty; //} bool bParVar = bValidName && Utils.IsParVar(variableName); Property pProperty1 = Property.create(bParVar, bConst, typeName, pPropertyName, instanceName, value); return(pProperty1); } } //return 0; }