Beispiel #1
0
        //public AStep()

        public IAttributeModel ProcessElement(IObjectInstance objectInstance)
        {
            if (objectInstance == null)
            {
                objectInstance = this.OwnerInstance;
            }

            return(objectInstance.GetAttribute(this.Name));
        }
Beispiel #2
0
        private static IAttributeModel ProcessPath(List <IAttributeStep> steps, IObjectInstance ownerInstance)
        {
            foreach (IAttributeStep step in steps)
            {
                step.Attribute = ownerInstance.GetAttribute(step.Name);
                IAttributeModel attribute = step.Attribute;

                if (steps.Count > 1 && attribute is IReferenceAttribute)
                {
                    //TODO: rewrite this
                    List <IAttributeStep> tempSteps = new List <IAttributeStep>();
                    for (int i = steps.IndexOf(step) + 1; i < steps.Count; i++)
                    {
                        tempSteps.Add(steps[i]);
                    }
                    return(PathProcessor.ProcessPath(tempSteps, ((IReferenceAttribute)attribute).Field.Reference));
                }
                else
                {
                    return(attribute);
                }
            }
            return(null);
        }