Beispiel #1
0
        public ParamDefinedEvent DefineParameter(Concept2 concept, Concept2 parameter, ConceptInstance pattern)
        {
            var result = new ParamDefinedEvent(concept, parameter, pattern);

            PushToAll(result);
            return(result);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 internal ConceptInstance GetValue(ConceptInstance instance, ParamDefinedEvent parameter)
 {
     return(GetValue(instance, parameter, getCurrentNode()));
 }
Beispiel #4
0
 internal virtual void Visit(ParamDefinedEvent evt)
 {
     // nothing to do by default
 }