public ParamDefinedEvent DefineParameter(Concept2 concept, Concept2 parameter, ConceptInstance pattern) { var result = new ParamDefinedEvent(concept, parameter, pattern); PushToAll(result); return(result); }
internal static ConceptInstance GetValue(ConceptInstance instance, ParamDefinedEvent parameter, BeamNode node) { var currentNode = node; while (currentNode != null) { var substitutionEvent = currentNode.Evt as PropertySetEvent; var propertyMatch = substitutionEvent?.Target.Property == parameter.Property || parameter.Property == Concept2.Something; if (substitutionEvent?.Target.Instance == instance && propertyMatch) { return(substitutionEvent.SubstitutedValue); } currentNode = currentNode.ParentNode; } return(null); }
internal ConceptInstance GetValue(ConceptInstance instance, ParamDefinedEvent parameter) { return(GetValue(instance, parameter, getCurrentNode())); }
internal virtual void Visit(ParamDefinedEvent evt) { // nothing to do by default }