public HashSet <EventDefinition> GetEventDefintionsInContract(ContractDefinition contract) { if (ContractToEventsMap.ContainsKey(contract)) { return(ContractToEventsMap[contract]); } return(new HashSet <EventDefinition>()); }
public void AddEventToContract(ContractDefinition contract, EventDefinition eventDef) { if (!ContractToEventsMap.ContainsKey(contract)) { ContractToEventsMap[contract] = new HashSet <EventDefinition>(); } Debug.Assert(!ContractToEventsMap[contract].Contains(eventDef), $"Duplicated event definition: {eventDef.Name} in {contract.Name}"); ContractToEventsMap[contract].Add(eventDef); }
public void AddEventToContract(ContractDefinition contract, EventDefinition eventDef) { if (!ContractToEventsMap.ContainsKey(contract)) { ContractToEventsMap[contract] = new HashSet <EventDefinition>(); } //Debug.Assert(!ContractToEventsMap[contract].Contains(eventDef), $"Duplicated event definition: {eventDef.Name} in {contract.Name}"); // For the case A <: B <: C and A has event E, it will be added to B and then to A through both B and C if (!ContractToEventsMap[contract].Contains(eventDef)) { ContractToEventsMap[contract].Add(eventDef); } }
public bool HasEventNameInContract(ContractDefinition contract, string eventName) { if (!ContractToEventsMap.ContainsKey(contract)) { return(false); } foreach (EventDefinition eventDef in ContractToEventsMap[contract]) { if (eventName.Equals(eventDef.Name)) { return(true); } } return(false); }