Beispiel #1
0
        public override EventPropertyGetterSPI GetGetterDOM(
            SchemaElementComplex complexProperty,
            EventBeanTypedEventFactory eventBeanTypedEventFactory,
            BaseXMLEventType xmlEventType,
            string propertyExpression)
        {
            foreach (var attribute in complexProperty.Attributes) {
                if (attribute.Name.Equals(PropertyNameAtomic)) {
                    return new DOMSimpleAttributeGetter(PropertyNameAtomic);
                }
            }

            foreach (var simple in complexProperty.SimpleElements) {
                if (simple.Name.Equals(PropertyNameAtomic)) {
                    return new DOMComplexElementGetter(PropertyNameAtomic, null, simple.IsArray);
                }
            }

            foreach (SchemaElementComplex complex in complexProperty.ComplexElements) {
                var complexFragmentFactory = new FragmentFactoryDOMGetter(
                    eventBeanTypedEventFactory,
                    xmlEventType,
                    propertyExpression);
                if (complex.Name.Equals(PropertyNameAtomic)) {
                    return new DOMComplexElementGetter(PropertyNameAtomic, complexFragmentFactory, complex.IsArray);
                }
            }

            return null;
        }
Beispiel #2
0
        public override EventPropertyGetter GetGetterDOM(SchemaElementComplex complexProperty, EventAdapterService eventAdapterService, BaseXMLEventType xmlEventType, String propertyExpression)
        {
            if (complexProperty.Attributes.Any(attribute => attribute.Name == PropertyNameAtomic))
            {
                return(new DOMSimpleAttributeGetter(PropertyNameAtomic));
            }

            foreach (var simple in complexProperty.SimpleElements.Where(simple => simple.Name == PropertyNameAtomic))
            {
                return(new DOMComplexElementGetter(PropertyNameAtomic, null, simple.IsArray));
            }

            foreach (SchemaElementComplex complex in complexProperty.ComplexElements)
            {
                var complexFragmentFactory = new FragmentFactoryDOMGetter(eventAdapterService, xmlEventType, propertyExpression);
                if (complex.Name == PropertyNameAtomic)
                {
                    return(new DOMComplexElementGetter(PropertyNameAtomic, complexFragmentFactory, complex.IsArray));
                }
            }

            return(null);
        }