Пример #1
0
        C_ATTRIBUTE[] VisitAttributes(C_ATTRIBUTE[] attributes)
        {
            C_ATTRIBUTE[] result = null;

            if (attributes != null)
            {
                SortedList <string, C_ATTRIBUTE> attributeConstraintList = new SortedList <string, C_ATTRIBUTE>();

                foreach (C_ATTRIBUTE attributeConstraint in attributes)
                {
                    C_ATTRIBUTE          newAttribute;
                    C_MULTIPLE_ATTRIBUTE multipleAttributeConstraint = attributeConstraint as C_MULTIPLE_ATTRIBUTE;

                    if (multipleAttributeConstraint != null)
                    {
                        newAttribute = VisitMultipleAttributeConstraint(multipleAttributeConstraint);
                    }
                    else
                    {
                        newAttribute = VisitSingleAttributeConstraint((C_SINGLE_ATTRIBUTE)attributeConstraint);
                    }

                    System.Diagnostics.Debug.Assert(newAttribute != null, "newAttribute must not be null");
                    newAttribute.children = VisitChildren(attributeConstraint.children);

                    attributeConstraintList.Add(newAttribute.rm_attribute_name, newAttribute);
                }

                result = new C_ATTRIBUTE[attributeConstraintList.Count];
                attributeConstraintList.Values.CopyTo(result, 0);
            }

            return(result);
        }
Пример #2
0
        protected virtual C_ATTRIBUTE CloneAttribute(openehr.openehr.am.archetype.constraint_model.C_ATTRIBUTE o)
        {
            C_ATTRIBUTE result;

            if (o.cardinality() == null)
            {
                result = new C_SINGLE_ATTRIBUTE();
            }
            else
            {
                C_MULTIPLE_ATTRIBUTE cloneMultiple = new C_MULTIPLE_ATTRIBUTE();
                cloneMultiple.cardinality = CloneCardinality(o.cardinality());
                result = cloneMultiple;
            }

            result.rm_attribute_name = o.rm_attribute_name().to_cil();

            if (o.existence() != null)
            {
                result.existence = CloneIntervalOfInteger(o.existence());
            }

            // 0..* children C_OBJECT (set in CloneTree)

            return(result);
        }
Пример #3
0
        C_MULTIPLE_ATTRIBUTE VisitMultipleAttributeConstraint(C_MULTIPLE_ATTRIBUTE attributeConstraint)
        {
            System.Diagnostics.Trace.Assert(attributeConstraint != null, "existingAttribute must not be null");

            C_MULTIPLE_ATTRIBUTE result = new C_MULTIPLE_ATTRIBUTE();

            CloneAttributeConstraint(attributeConstraint, result);
            result.cardinality = attributeConstraint.cardinality;

            return(result);
        }
Пример #4
0
        //public C_MULTIPLE_ATTRIBUTE MakeMultipleAttribute(C_COMPLEX_OBJECT an_object, string name, CARDINALITY a_cardinality)//, int capacity) //JAR: 30APR2007, AE-42 Support XML Schema 1.0.1
        public C_MULTIPLE_ATTRIBUTE MakeMultipleAttribute(C_COMPLEX_OBJECT an_object, string name, CARDINALITY a_cardinality, IntervalOfInteger existence)//, int capacity)
        {
            C_MULTIPLE_ATTRIBUTE result = new C_MULTIPLE_ATTRIBUTE();

            result.rm_attribute_name = name;
            result.cardinality       = a_cardinality;
            result.existence         = existence; //JAR: 30APR2007, AE-42 Support XML Schema 1.0.1
            //result.children = Array.CreateInstance(typeof(XMLParser.C_OBJECT), capacity) as C_OBJECT[];
            add_attribute(an_object, result);
            return(result);
        }