示例#1
0
 public HashSet <EventDefinition> GetEventDefintionsInContract(ContractDefinition contract)
 {
     if (ContractToEventsMap.ContainsKey(contract))
     {
         return(ContractToEventsMap[contract]);
     }
     return(new HashSet <EventDefinition>());
 }
示例#2
0
        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);
        }
示例#3
0
        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);
            }
        }
示例#4
0
 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);
 }