public Usage.ModeEnum ModeForParameter(Parameter parameter)
{
// By default, the variable is only read, but if we find a write on it
Usage.ModeEnum retVal = Usage.ModeEnum.Read;
if (!ComputingModeForParameter)
{
try
{
ComputingModeForParameter = true;
foreach (Rule rule in Rules)
{
var mode = rule.GetModeForTypedElement(parameter);
if (mode != Usage.ModeEnum.Read)
{
retVal = mode;
break;
}
}
}
finally
{
ComputingModeForParameter = false;
}
}
return retVal;
}