Beispiel #1
0
        public override IXmlAttribute CreateAttribute(IXmlIdentifierNode nameIdentifier,
            IXmlAttributeContainer attributeContainer,
            IXmlTagContainer parentTag)
        {
            IXmlAttribute baseRet = base.CreateAttribute(nameIdentifier, attributeContainer, parentTag);

            return baseRet;
        }
Beispiel #2
0
 public override IXmlTag CreateTag(IXmlTagHeaderNode header, IXmlTagContainer parentTag)
 {
     IXmlTag tag = CreateTagInternal(parentTag, header);
     IL4NElement element = tag as IL4NElement;
     if (element != null)
         HandleCreateTagElement(element, header, parentTag);
     return tag;
 }
Beispiel #3
0
        private void CreateMappingMemberReferenceAttributeValue(INHElement element, IXmlAttribute attribute, IXmlTagContainer parent)
        {
            if (attribute.Value == null)
                return;

            ReferenceParser parser = new ReferenceParser();
            IQualifier qualifier = GetElementQualifier(element, parent);
            IXmlAttributeValue newElement = parser.ParseReferenceIdentifier(attribute.Value, qualifier);
            ReplaceAttributeValue(attribute, newElement);
        }
        protected IXmlTag CreateTagGenerated(IXmlTagHeaderNode header, IXmlTagContainer parentTag)
        {
            string name = header.Name.GetText();

            if (name == "class")
            {
                return new ClassMappingElementImpl();
            }
            else
                return null;
        }
Beispiel #5
0
        public override IXmlTag CreateTag(IXmlTagHeaderNode header, IXmlTagContainer parentTag)
        {
            IXmlTag created = base.CreateTagGenerated(header, parentTag);
            if (created != null)
            {
                HandleCreateTagElement((INHElement)created,header, parentTag);
                return created;
            }

            return base.CreateTag(header, parentTag);
        }
        public static IEnumerable <IXmlTag> FindAllByTagName(this IXmlTagContainer xmlFile, string tagName)
        {
            var xmlTags = new Queue <IXmlTag>(xmlFile.InnerTags);

            while (xmlTags.Count > 0)
            {
                var xmlTag = xmlTags.Dequeue();
                if (xmlTag.GetTagName().Equals(tagName))
                {
                    yield return(xmlTag);
                }

                foreach (var innerTag in xmlTag.InnerTags)
                {
                    xmlTags.Enqueue(innerTag);
                }
            }
        }
Beispiel #7
0
        private IXmlTag CreateTagInternal(IXmlTagContainer parentTag, IXmlTagHeaderNode header)
        {
            string parentTagName = ((IXmlTag)parentTag).TagName;

            string name = header.Name.GetText();

            if (name == L4NConstants.LOG4NET)
            {
                return new L4NSectionImpl();
            }
            else if (parentTag is IL4NSection)
            {
                if (name == L4NConstants.APPENDER)
                {
                    return new AppenderImpl();
                }
                else if (name == L4NConstants.LOGGER || name == L4NConstants.ROOT_LOGGER)
                {
                    return new LoggerImpl();
                }
            }
            else if (parentTag is ILogger)
            {
                if (name == L4NConstants.APPENDER_REF)
                {
                    return new AppenderRefImpl();
                }
                // TODO other properties
                //else
            }
            else if (parentTag is IDeclaredParametersOwner)
            {
                if (name != L4NConstants.PARAM)
                {
                    return new PropertyParamImpl();
                }
            }

            return base.CreateTag(header, parentTag);
        }
        public static IEnumerable <KeyValueSetting> GetChildSettings(
            this IXmlTagContainer xmlTag,
            string keyAttribute,
            string valueAttribute)
        {
            var result = new LinkedList <KeyValueSetting>();

            var innerXmlTags = new Queue <IXmlTag>(xmlTag.InnerTags);

            while (innerXmlTags.Count > 0)
            {
                var currentXmlTag = innerXmlTags.Dequeue();

                var attributes = currentXmlTag.GetAttributes();

                string key   = null;
                string value = null;
                foreach (var attribute in attributes)
                {
                    if (attribute.XmlName.Equals(keyAttribute))
                    {
                        key = attribute.UnquotedValue;
                    }
                    else if (attribute.XmlName.Equals(valueAttribute))
                    {
                        value = attribute.UnquotedValue;
                    }
                }

                if (key == null || value == null)
                {
                    continue;
                }

                result.AddLast(new KeyValueSetting(key, value));
            }

            return(result);
        }
Beispiel #9
0
        private void ProcessAttribute(INHElement element, IXmlAttribute attribute, IXmlTagContainer parent)
        {
            if (element is IClassElement)
            {
                if (attribute.XmlName == "name" || attribute.XmlName == "proxy")
                {
                    CreateTypeReferenceAttributeValue(element, attribute);
                    return;
                }
            }

            if (element is IComponentElement
                || element is ICompositeElementElement
                || element is ICompositeIdElement
                || element is ICompositeIndexElement
                || element is IIndexManyToManyElement
                || element is IKeyManyToOneElement
                || element is IManyToManyElement
                || element is IManyToOneElement
                || element is IMetaValueElement
                || element is INestedCompositeElementElement
                || element is IOneToManyElement
                || element is IOneToOneElement
                || element is IReturnElement)
            {
                if (attribute.XmlName == "class")
                {
                    CreateTypeReferenceAttributeValue(element, attribute);
                    return;
                }
            }

            if(element is ISubclassElement)
            {
                if (attribute.XmlName == "name" || attribute.XmlName == "proxy")
                {
                    CreateTypeReferenceAttributeValue(element, attribute);
                    return;
                }
            }

            IHibernateMappingElement hibernateMappingElement = element as IHibernateMappingElement;
            if (hibernateMappingElement != null)
            {
                if (attribute.XmlName == "assembly")
                {
                    CreateModuleReferenceAttributeValue(hibernateMappingElement, attribute);
                }
                else if (attribute.XmlName == "namespace")
                {
                    CreateNamespaceReferenceAttributeValue(hibernateMappingElement, attribute);
                    return;
                }

            }

            if (element is IAnyElement
                 || element is IArrayElement
                 || element is IBagElement
                 || element is IIdbagElement
                 || element is IIdElement
                 || element is IKeyManyToOneElement
                 || element is IKeyPropertyElement
                 || element is IListElement
                 || element is IManyToOneElement
                 || element is IMapElement
                 || element is IOneToOneElement
                 || element is IPrimitiveArrayElement
                 || element is IPropertyElement
                 || element is IResultsetElement
                 || element is IReturnColumnElement
                 || element is IReturnPropertyElement
                 || element is ISetElement
                 || element is ITimestampElement
                 || element is IVersionElement
                || element is ICompositeIdElement)
            {
                if (attribute.XmlName == "name")
                {
                    CreateMappingMemberReferenceAttributeValue(element, attribute, parent);
                    return;
                }

            }

            if (element is IPropertyElement
                || element is IIdElement
                || element is IKeyPropertyElement
                || element is  IElementElement
                || element is  IDiscriminatorElement
                || element is  ICollectionIdElement
                || element is  IVersionElement
                || element is IReturnScalarElement
                || element is IIndexElement
                || element is IFilterParamElement
            )
            {
                if (attribute.XmlName == "type")
                {
                    CreateTypeWithNHAliasReferenceAttributeValue(element, attribute);
                    return;
                }
            }

            if (attribute.XmlName == "table")
            {
                CreateTableReferenceAttributeValue(element, attribute);
                return;
            }

            if (element is IComponentElement
              || element is ICompositeElementElement
              || element is ICompositeIdElement
              || element is ICompositeIndexElement
              || element is IImportElement
              || element is IIndexManyToManyElement
              || element is IKeyManyToOneElement
              || element is IManyToManyElement
              || element is IManyToOneElement
              || element is IMetaValueElement
              || element is INestedCompositeElementElement
              || element is IOneToManyElement
              || element is IOneToOneElement
              || element is IReturnElement)
             {
                 if (attribute.XmlName == "class")
                 {
                     CreateTypeReferenceAttributeValue(element, attribute);
                     return;
                 }
             }
        }
Beispiel #10
0
 private void HandleCreateTagElement(INHElement element, IXmlTagHeaderNode header, IXmlTagContainer tag)
 {
     foreach (IXmlAttribute attribute in header.Attributes)
     {
         ProcessAttribute(element, attribute, tag);
     }
 }
Beispiel #11
0
        private IQualifier GetElementQualifier(INHElement element, IXmlTagContainer parent)
        {
            ITreeNode node = (ITreeNode)parent;
            while(node != null)
            {
                if (node is IQualifierOwner)
                {
                    var qualifierOwner = (IQualifierOwner)node;
                    var qualifier = qualifierOwner.GetQualifier(QualifierType.Type);
                    if (qualifier != null)
                        return qualifier;
                }
                node = node.Parent;
            }

            return null;
        }
Beispiel #12
0
 public override IXmlTag CreateTag(IXmlTagHeaderNode header, IXmlTagContainer parentTag)
 {
     return base.CreateTag(header, parentTag);
 }
Beispiel #13
0
        private IQualifier GetElementQualifier(INHElement element, IXmlTagContainer parent)
        {
            ITreeNode node = (ITreeNode)parent;
            while(node != null)
            {
                if (node is IQualifier)
                    return (IQualifier)node;
                node = node.Parent;
            }

            return null;
        }
 public override IXmlAttribute CreateAttribute(IXmlIdentifierNode nameIdentifier, IXmlAttributeContainer attributeContainer, IXmlTagContainer parentTag) {
     string attributeName = nameIdentifier.GetText();
     string containerName = attributeContainer.ContainerName;
     if (attributeName == Keyword.Name) {
         switch (containerName) {
             case Keyword.Id:
                 return new PropertyNameAttribute(containerName);
             case Keyword.Property:
                 return new PropertyNameAttribute(containerName);
             case Keyword.Component:
                 return new PropertyNameAttribute(containerName);
             case Keyword.DynamicComponent:
                 return new PropertyNameAttribute(containerName);
             case Keyword.Bag:
                 return new PropertyNameAttribute(containerName);
             case Keyword.Set:
                 return new PropertyNameAttribute(containerName);
             case Keyword.IdBag:
                 return new PropertyNameAttribute(containerName);
             case Keyword.Array:
                 return new PropertyNameAttribute(containerName);
             case Keyword.PrimitiveArray:
                 return new PropertyNameAttribute(containerName);
             case Keyword.List:
                 return new PropertyNameAttribute(containerName);
             case Keyword.Any:
                 return new PropertyNameAttribute(containerName);
             case Keyword.ManyToOne:
                 return new PropertyNameAttribute(containerName);
             case Keyword.OneToOne:
                 return new PropertyNameAttribute(containerName);
             case Keyword.Parent:
                 return new PropertyNameAttribute(containerName);
             case Keyword.NestedCompositeElement:
                 return new PropertyNameAttribute(containerName);
             case Keyword.Class:
                 return new ClassNameAttribute(containerName);
         }
     }
     if ((attributeName == Keyword.Type) || (attributeName == Keyword.Class)) {
         return new ClassNameAttribute(containerName);
     }
     return base.CreateAttribute(nameIdentifier, attributeContainer, parentTag);
 }
        protected IXmlTag CreateTagGenerated(IXmlTagHeaderNode header, IXmlTagContainer parentTag)
        {
            string name = header.Name.GetText();

            if(parentTag is IFilterElement)
            {

                    return null;
            }
            else

            if(parentTag is ISqlInsertElement)
            {

                    return null;
            }
            else

            if(parentTag is ISqlUpdateElement)
            {

                    return null;
            }
            else

            if(parentTag is ISqlDeleteElement)
            {

                    return null;
            }
            else

            if(parentTag is ISqlDeleteAllElement)
            {

                    return null;
            }
            else

            if(parentTag is ILoaderElement)
            {

                    return null;
            }
            else

            if(parentTag is IResultsetElement)
            {

                    return null;
            }
            else

            if(parentTag is IHibernateMappingElement)
            {

                if (name == "meta")
                {
                    return new MetaElementImpl();
                }
                else

                if (name == "import")
                {
                    return new ImportElementImpl();
                }
                else

                if (name == "class")
                {
                    return new ClassElementImpl();
                }

                if (name == "subclass")
                {
                    return new SubclassElementImpl();
                }

                if (name == "joined-subclass")
                {
                    return new JoinedSubclassElementImpl();
                }

                else

                if (name == "resultset")
                {
                    return new ResultsetElementImpl();
                }
                else

                if (name == "query")
                {
                    return new QueryElementImpl();
                }

                if (name == "sql-query")
                {
                    return new SqlQueryElementImpl();
                }

                else

                if (name == "filter-def")
                {
                    return new FilterDefElementImpl();
                }
                else

                if (name == "database-object")
                {
                    return new DatabaseObjectElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IFilterParamElement)
            {

                    return null;
            }
            else

            if(parentTag is IFilterDefElement)
            {

                if (name == "filter-param")
                {
                    return new FilterParamElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is ICreateElement)
            {

                    return null;
            }
            else

            if(parentTag is IDropElement)
            {

                    return null;
            }
            else

            if(parentTag is IDialectScopeElement)
            {

                    return null;
            }
            else

            if(parentTag is IDatabaseObjectElement)
            {

                if (name == "create")
                {
                    return new CreateElementImpl();
                }
                else

                if (name == "drop")
                {
                    return new DropElementImpl();
                }
                else

                if (name == "dialect-scope")
                {
                    return new DialectScopeElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IImportElement)
            {

                    return null;
            }
            else

            if(parentTag is IClassElement)
            {

                if (name == "meta")
                {
                    return new MetaElementImpl();
                }
                else

                if (name == "jcs-cache")
                {
                    return new JcsCacheElementImpl();
                }
                else

                if (name == "cache")
                {
                    return new CacheElementImpl();
                }
                else

                if (name == "id")
                {
                    return new IdElementImpl();
                }
                else

                if (name == "composite-id")
                {
                    return new CompositeIdElementImpl();
                }
                else

                if (name == "discriminator")
                {
                    return new DiscriminatorElementImpl();
                }
                else

                if (name == "version")
                {
                    return new VersionElementImpl();
                }
                else

                if (name == "timestamp")
                {
                    return new TimestampElementImpl();
                }
                else

                if (name == "property")
                {
                    return new PropertyElementImpl();
                }

                if (name == "many-to-one")
                {
                    return new ManyToOneElementImpl();
                }

                if (name == "one-to-one")
                {
                    return new OneToOneElementImpl();
                }

                if (name == "component")
                {
                    return new ComponentElementImpl();
                }

                if (name == "dynamic-component")
                {
                    return new DynamicComponentElementImpl();
                }

                if (name == "any")
                {
                    return new AnyElementImpl();
                }

                if (name == "map")
                {
                    return new MapElementImpl();
                }

                if (name == "set")
                {
                    return new SetElementImpl();
                }

                if (name == "list")
                {
                    return new ListElementImpl();
                }

                if (name == "bag")
                {
                    return new BagElementImpl();
                }

                if (name == "idbag")
                {
                    return new IdbagElementImpl();
                }

                if (name == "array")
                {
                    return new ArrayElementImpl();
                }

                if (name == "primitive-array")
                {
                    return new PrimitiveArrayElementImpl();
                }

                else

                if (name == "subclass")
                {
                    return new SubclassElementImpl();
                }

                else

                if (name == "joined-subclass")
                {
                    return new JoinedSubclassElementImpl();
                }

                else

                if (name == "filter")
                {
                    return new FilterElementImpl();
                }
                else

                if (name == "loader")
                {
                    return new LoaderElementImpl();
                }
                else

                if (name == "sql-insert")
                {
                    return new SqlInsertElementImpl();
                }
                else

                if (name == "sql-update")
                {
                    return new SqlUpdateElementImpl();
                }
                else

                if (name == "sql-delete")
                {
                    return new SqlDeleteElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IIdElement)
            {

                if (name == "meta")
                {
                    return new MetaElementImpl();
                }
                else

                if (name == "column")
                {
                    return new ColumnElementImpl();
                }
                else

                if (name == "generator")
                {
                    return new GeneratorElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is ICompositeIdElement)
            {

                if (name == "key-property")
                {
                    return new KeyPropertyElementImpl();
                }

                if (name == "key-many-to-one")
                {
                    return new KeyManyToOneElementImpl();
                }

                else

                    return null;
            }
            else

            if(parentTag is IDiscriminatorElement)
            {

                if (name == "column")
                {
                    return new ColumnElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IVersionElement)
            {

                    return null;
            }
            else

            if(parentTag is ITimestampElement)
            {

                    return null;
            }
            else

            if(parentTag is ISubclassElement)
            {

                if (name == "meta")
                {
                    return new MetaElementImpl();
                }
                else

                if (name == "property")
                {
                    return new PropertyElementImpl();
                }

                if (name == "many-to-one")
                {
                    return new ManyToOneElementImpl();
                }

                if (name == "one-to-one")
                {
                    return new OneToOneElementImpl();
                }

                if (name == "component")
                {
                    return new ComponentElementImpl();
                }

                if (name == "dynamic-component")
                {
                    return new DynamicComponentElementImpl();
                }

                if (name == "any")
                {
                    return new AnyElementImpl();
                }

                if (name == "map")
                {
                    return new MapElementImpl();
                }

                if (name == "set")
                {
                    return new SetElementImpl();
                }

                if (name == "list")
                {
                    return new ListElementImpl();
                }

                if (name == "bag")
                {
                    return new BagElementImpl();
                }

                if (name == "idbag")
                {
                    return new IdbagElementImpl();
                }

                if (name == "array")
                {
                    return new ArrayElementImpl();
                }

                if (name == "primitive-array")
                {
                    return new PrimitiveArrayElementImpl();
                }

                else

                if (name == "subclass")
                {
                    return new SubclassElementImpl();
                }
                else

                if (name == "loader")
                {
                    return new LoaderElementImpl();
                }
                else

                if (name == "sql-insert")
                {
                    return new SqlInsertElementImpl();
                }
                else

                if (name == "sql-update")
                {
                    return new SqlUpdateElementImpl();
                }
                else

                if (name == "sql-delete")
                {
                    return new SqlDeleteElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IJoinedSubclassElement)
            {

                if (name == "meta")
                {
                    return new MetaElementImpl();
                }
                else

                if (name == "key")
                {
                    return new KeyElementImpl();
                }
                else

                if (name == "property")
                {
                    return new PropertyElementImpl();
                }

                if (name == "many-to-one")
                {
                    return new ManyToOneElementImpl();
                }

                if (name == "one-to-one")
                {
                    return new OneToOneElementImpl();
                }

                if (name == "component")
                {
                    return new ComponentElementImpl();
                }

                if (name == "dynamic-component")
                {
                    return new DynamicComponentElementImpl();
                }

                if (name == "any")
                {
                    return new AnyElementImpl();
                }

                if (name == "map")
                {
                    return new MapElementImpl();
                }

                if (name == "set")
                {
                    return new SetElementImpl();
                }

                if (name == "list")
                {
                    return new ListElementImpl();
                }

                if (name == "bag")
                {
                    return new BagElementImpl();
                }

                if (name == "idbag")
                {
                    return new IdbagElementImpl();
                }

                if (name == "array")
                {
                    return new ArrayElementImpl();
                }

                if (name == "primitive-array")
                {
                    return new PrimitiveArrayElementImpl();
                }

                else

                if (name == "joined-subclass")
                {
                    return new JoinedSubclassElementImpl();
                }
                else

                if (name == "loader")
                {
                    return new LoaderElementImpl();
                }
                else

                if (name == "sql-insert")
                {
                    return new SqlInsertElementImpl();
                }
                else

                if (name == "sql-update")
                {
                    return new SqlUpdateElementImpl();
                }
                else

                if (name == "sql-delete")
                {
                    return new SqlDeleteElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IPropertyElement)
            {

                if (name == "meta")
                {
                    return new MetaElementImpl();
                }
                else

                if (name == "column")
                {
                    return new ColumnElementImpl();
                }
                else

                if (name == "type")
                {
                    return new TypeElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IMetaValueElement)
            {

                    return null;
            }
            else

            if(parentTag is IAnyElement)
            {

                if (name == "meta")
                {
                    return new MetaElementImpl();
                }
                else

                if (name == "meta-value")
                {
                    return new MetaValueElementImpl();
                }
                else

                if (name == "column")
                {
                    return new ColumnElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IArrayElement)
            {

                if (name == "meta")
                {
                    return new MetaElementImpl();
                }
                else

                if (name == "jcs-cache")
                {
                    return new JcsCacheElementImpl();
                }
                else

                if (name == "cache")
                {
                    return new CacheElementImpl();
                }
                else

                if (name == "key")
                {
                    return new KeyElementImpl();
                }
                else

                if (name == "index")
                {
                    return new IndexElementImpl();
                }
                else

                if (name == "element")
                {
                    return new ElementElementImpl();
                }
                else

                if (name == "one-to-many")
                {
                    return new OneToManyElementImpl();
                }
                else

                if (name == "many-to-many")
                {
                    return new ManyToManyElementImpl();
                }
                else

                if (name == "composite-element")
                {
                    return new CompositeElementElementImpl();
                }
                else

                if (name == "many-to-any")
                {
                    return new ManyToAnyElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is ICacheElement)
            {

                    return null;
            }
            else

            if(parentTag is ICollectionIdElement)
            {

                if (name == "meta")
                {
                    return new MetaElementImpl();
                }
                else

                if (name == "column")
                {
                    return new ColumnElementImpl();
                }
                else

                if (name == "generator")
                {
                    return new GeneratorElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IColumnElement)
            {

                    return null;
            }
            else

            if(parentTag is IComponentElement)
            {

                if (name == "parent")
                {
                    return new ParentElementImpl();
                }
                else

                if (name == "property")
                {
                    return new PropertyElementImpl();
                }

                if (name == "many-to-one")
                {
                    return new ManyToOneElementImpl();
                }

                if (name == "one-to-one")
                {
                    return new OneToOneElementImpl();
                }

                if (name == "component")
                {
                    return new ComponentElementImpl();
                }

                if (name == "dynamic-component")
                {
                    return new DynamicComponentElementImpl();
                }

                if (name == "any")
                {
                    return new AnyElementImpl();
                }

                if (name == "map")
                {
                    return new MapElementImpl();
                }

                if (name == "set")
                {
                    return new SetElementImpl();
                }

                if (name == "list")
                {
                    return new ListElementImpl();
                }

                if (name == "bag")
                {
                    return new BagElementImpl();
                }

                if (name == "array")
                {
                    return new ArrayElementImpl();
                }

                if (name == "primitive-array")
                {
                    return new PrimitiveArrayElementImpl();
                }

                else

                    return null;
            }
            else

            if(parentTag is IDynamicComponentElement)
            {

                if (name == "property")
                {
                    return new PropertyElementImpl();
                }

                if (name == "many-to-one")
                {
                    return new ManyToOneElementImpl();
                }

                if (name == "one-to-one")
                {
                    return new OneToOneElementImpl();
                }

                if (name == "component")
                {
                    return new ComponentElementImpl();
                }

                if (name == "dynamic-component")
                {
                    return new DynamicComponentElementImpl();
                }

                if (name == "any")
                {
                    return new AnyElementImpl();
                }

                if (name == "map")
                {
                    return new MapElementImpl();
                }

                if (name == "set")
                {
                    return new SetElementImpl();
                }

                if (name == "list")
                {
                    return new ListElementImpl();
                }

                if (name == "bag")
                {
                    return new BagElementImpl();
                }

                if (name == "array")
                {
                    return new ArrayElementImpl();
                }

                if (name == "primitive-array")
                {
                    return new PrimitiveArrayElementImpl();
                }

                else

                    return null;
            }
            else

            if(parentTag is ICompositeElementElement)
            {

                if (name == "parent")
                {
                    return new ParentElementImpl();
                }
                else

                if (name == "property")
                {
                    return new PropertyElementImpl();
                }

                if (name == "many-to-one")
                {
                    return new ManyToOneElementImpl();
                }

                if (name == "nested-composite-element")
                {
                    return new NestedCompositeElementElementImpl();
                }

                else

                    return null;
            }
            else

            if(parentTag is ICompositeIndexElement)
            {

                if (name == "key-property")
                {
                    return new KeyPropertyElementImpl();
                }

                if (name == "key-many-to-one")
                {
                    return new KeyManyToOneElementImpl();
                }

                else

                    return null;
            }
            else

            if(parentTag is IElementElement)
            {

                if (name == "column")
                {
                    return new ColumnElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IGeneratorElement)
            {

                if (name == "param")
                {
                    return new ParamElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IIdbagElement)
            {

                if (name == "meta")
                {
                    return new MetaElementImpl();
                }
                else

                if (name == "jcs-cache")
                {
                    return new JcsCacheElementImpl();
                }
                else

                if (name == "cache")
                {
                    return new CacheElementImpl();
                }
                else

                if (name == "collection-id")
                {
                    return new CollectionIdElementImpl();
                }
                else

                if (name == "key")
                {
                    return new KeyElementImpl();
                }
                else

                if (name == "element")
                {
                    return new ElementElementImpl();
                }
                else

                if (name == "many-to-many")
                {
                    return new ManyToManyElementImpl();
                }
                else

                if (name == "composite-element")
                {
                    return new CompositeElementElementImpl();
                }
                else

                if (name == "many-to-any")
                {
                    return new ManyToAnyElementImpl();
                }
                else

                if (name == "filter")
                {
                    return new FilterElementImpl();
                }
                else

                if (name == "loader")
                {
                    return new LoaderElementImpl();
                }
                else

                if (name == "sql-insert")
                {
                    return new SqlInsertElementImpl();
                }
                else

                if (name == "sql-update")
                {
                    return new SqlUpdateElementImpl();
                }
                else

                if (name == "sql-delete")
                {
                    return new SqlDeleteElementImpl();
                }
                else

                if (name == "sql-delete-all")
                {
                    return new SqlDeleteAllElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IIndexElement)
            {

                if (name == "column")
                {
                    return new ColumnElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IIndexManyToAnyElement)
            {

                if (name == "column")
                {
                    return new ColumnElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IIndexManyToManyElement)
            {

                if (name == "column")
                {
                    return new ColumnElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IJcsCacheElement)
            {

                    return null;
            }
            else

            if(parentTag is IKeyElement)
            {

                if (name == "column")
                {
                    return new ColumnElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IKeyManyToOneElement)
            {

                if (name == "column")
                {
                    return new ColumnElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IKeyPropertyElement)
            {

                if (name == "column")
                {
                    return new ColumnElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IManyToAnyElement)
            {

                if (name == "meta-value")
                {
                    return new MetaValueElementImpl();
                }
                else

                if (name == "column")
                {
                    return new ColumnElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IManyToManyElement)
            {

                if (name == "meta")
                {
                    return new MetaElementImpl();
                }
                else

                if (name == "column")
                {
                    return new ColumnElementImpl();
                }
                else

                if (name == "filter")
                {
                    return new FilterElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IManyToOneElement)
            {

                if (name == "meta")
                {
                    return new MetaElementImpl();
                }
                else

                if (name == "column")
                {
                    return new ColumnElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IMetaElement)
            {

                    return null;
            }
            else

            if(parentTag is INestedCompositeElementElement)
            {

                if (name == "parent")
                {
                    return new ParentElementImpl();
                }
                else

                if (name == "property")
                {
                    return new PropertyElementImpl();
                }

                if (name == "many-to-one")
                {
                    return new ManyToOneElementImpl();
                }

                if (name == "nested-composite-element")
                {
                    return new NestedCompositeElementElementImpl();
                }

                else

                    return null;
            }
            else

            if(parentTag is IOneToManyElement)
            {

                    return null;
            }
            else

            if(parentTag is IOneToOneElement)
            {

                if (name == "meta")
                {
                    return new MetaElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IParamElement)
            {

                    return null;
            }
            else

            if(parentTag is IParentElement)
            {

                    return null;
            }
            else

            if(parentTag is IPrimitiveArrayElement)
            {

                if (name == "meta")
                {
                    return new MetaElementImpl();
                }
                else

                if (name == "jcs-cache")
                {
                    return new JcsCacheElementImpl();
                }
                else

                if (name == "cache")
                {
                    return new CacheElementImpl();
                }
                else

                if (name == "key")
                {
                    return new KeyElementImpl();
                }
                else

                if (name == "index")
                {
                    return new IndexElementImpl();
                }
                else

                if (name == "element")
                {
                    return new ElementElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IQueryElement)
            {

                    return null;
            }
            else

            if(parentTag is IReturnElement)
            {

                if (name == "return-discriminator")
                {
                    return new ReturnDiscriminatorElementImpl();
                }
                else

                if (name == "return-property")
                {
                    return new ReturnPropertyElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IReturnDiscriminatorElement)
            {

                    return null;
            }
            else

            if(parentTag is IReturnScalarElement)
            {

                    return null;
            }
            else

            if(parentTag is IReturnColumnElement)
            {

                    return null;
            }
            else

            if(parentTag is IReturnPropertyElement)
            {

                if (name == "return-column")
                {
                    return new ReturnColumnElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IReturnJoinElement)
            {

                    return null;
            }
            else

            if(parentTag is ILoadCollectionElement)
            {

                    return null;
            }
            else

            if(parentTag is ISynchronizeElement)
            {

                    return null;
            }
            else

            if(parentTag is ISqlQueryElement)
            {

                    return null;
            }
            else

            if(parentTag is IListElement)
            {

                if (name == "meta")
                {
                    return new MetaElementImpl();
                }
                else

                if (name == "jcs-cache")
                {
                    return new JcsCacheElementImpl();
                }
                else

                if (name == "cache")
                {
                    return new CacheElementImpl();
                }
                else

                if (name == "key")
                {
                    return new KeyElementImpl();
                }
                else

                if (name == "index")
                {
                    return new IndexElementImpl();
                }
                else

                if (name == "element")
                {
                    return new ElementElementImpl();
                }
                else

                if (name == "one-to-many")
                {
                    return new OneToManyElementImpl();
                }
                else

                if (name == "many-to-many")
                {
                    return new ManyToManyElementImpl();
                }
                else

                if (name == "composite-element")
                {
                    return new CompositeElementElementImpl();
                }
                else

                if (name == "many-to-any")
                {
                    return new ManyToAnyElementImpl();
                }
                else

                if (name == "filter")
                {
                    return new FilterElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IBagElement)
            {

                if (name == "meta")
                {
                    return new MetaElementImpl();
                }
                else

                if (name == "jcs-cache")
                {
                    return new JcsCacheElementImpl();
                }
                else

                if (name == "cache")
                {
                    return new CacheElementImpl();
                }
                else

                if (name == "key")
                {
                    return new KeyElementImpl();
                }
                else

                if (name == "element")
                {
                    return new ElementElementImpl();
                }
                else

                if (name == "one-to-many")
                {
                    return new OneToManyElementImpl();
                }
                else

                if (name == "many-to-many")
                {
                    return new ManyToManyElementImpl();
                }
                else

                if (name == "composite-element")
                {
                    return new CompositeElementElementImpl();
                }
                else

                if (name == "many-to-any")
                {
                    return new ManyToAnyElementImpl();
                }
                else

                if (name == "filter")
                {
                    return new FilterElementImpl();
                }
                else

                if (name == "loader")
                {
                    return new LoaderElementImpl();
                }
                else

                if (name == "sql-insert")
                {
                    return new SqlInsertElementImpl();
                }
                else

                if (name == "sql-update")
                {
                    return new SqlUpdateElementImpl();
                }
                else

                if (name == "sql-delete")
                {
                    return new SqlDeleteElementImpl();
                }
                else

                if (name == "sql-delete-all")
                {
                    return new SqlDeleteAllElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is ISetElement)
            {

                if (name == "meta")
                {
                    return new MetaElementImpl();
                }
                else

                if (name == "jcs-cache")
                {
                    return new JcsCacheElementImpl();
                }
                else

                if (name == "cache")
                {
                    return new CacheElementImpl();
                }
                else

                if (name == "key")
                {
                    return new KeyElementImpl();
                }
                else

                if (name == "element")
                {
                    return new ElementElementImpl();
                }
                else

                if (name == "one-to-many")
                {
                    return new OneToManyElementImpl();
                }
                else

                if (name == "many-to-many")
                {
                    return new ManyToManyElementImpl();
                }
                else

                if (name == "composite-element")
                {
                    return new CompositeElementElementImpl();
                }
                else

                if (name == "many-to-any")
                {
                    return new ManyToAnyElementImpl();
                }
                else

                if (name == "filter")
                {
                    return new FilterElementImpl();
                }
                else

                if (name == "loader")
                {
                    return new LoaderElementImpl();
                }
                else

                if (name == "sql-insert")
                {
                    return new SqlInsertElementImpl();
                }
                else

                if (name == "sql-update")
                {
                    return new SqlUpdateElementImpl();
                }
                else

                if (name == "sql-delete")
                {
                    return new SqlDeleteElementImpl();
                }
                else

                if (name == "sql-delete-all")
                {
                    return new SqlDeleteAllElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is IMapElement)
            {

                if (name == "meta")
                {
                    return new MetaElementImpl();
                }
                else

                if (name == "jcs-cache")
                {
                    return new JcsCacheElementImpl();
                }
                else

                if (name == "cache")
                {
                    return new CacheElementImpl();
                }
                else

                if (name == "key")
                {
                    return new KeyElementImpl();
                }
                else

                if (name == "index")
                {
                    return new IndexElementImpl();
                }
                else

                if (name == "composite-index")
                {
                    return new CompositeIndexElementImpl();
                }
                else

                if (name == "index-many-to-many")
                {
                    return new IndexManyToManyElementImpl();
                }
                else

                if (name == "index-many-to-any")
                {
                    return new IndexManyToAnyElementImpl();
                }
                else

                if (name == "element")
                {
                    return new ElementElementImpl();
                }
                else

                if (name == "one-to-many")
                {
                    return new OneToManyElementImpl();
                }
                else

                if (name == "many-to-many")
                {
                    return new ManyToManyElementImpl();
                }
                else

                if (name == "composite-element")
                {
                    return new CompositeElementElementImpl();
                }
                else

                if (name == "many-to-any")
                {
                    return new ManyToAnyElementImpl();
                }
                else

                if (name == "filter")
                {
                    return new FilterElementImpl();
                }
                else

                if (name == "loader")
                {
                    return new LoaderElementImpl();
                }
                else

                if (name == "sql-insert")
                {
                    return new SqlInsertElementImpl();
                }
                else

                if (name == "sql-update")
                {
                    return new SqlUpdateElementImpl();
                }
                else

                if (name == "sql-delete")
                {
                    return new SqlDeleteElementImpl();
                }
                else

                if (name == "sql-delete-all")
                {
                    return new SqlDeleteAllElementImpl();
                }
                else

                    return null;
            }
            else

            if(parentTag is ITypeElement)
            {

                if (name == "param")
                {
                    return new ParamElementImpl();
                }
                else

                    return null;
            }
            else

                return null;
        }