コード例 #1
0
        public override IXmlTag CreateRootTag(IXmlTagHeaderNode header) {
            Logger.LogMessage("CreateRootTag {0}: {1}", header.Name.XmlName, header.GetText());
            if (header.Name.XmlName == Keyword.HibernateMapping) {
                return new HibernateMappingTag();
            }

            return new MiscellaneousTag();
        }
コード例 #2
0
ファイル: L4NElementFactory.cs プロジェクト: willrawls/arp
 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;
 }
コード例 #3
0
        public override IXmlTag CreateTag(IXmlTagHeaderNode header, IXmlTag parentTag) {
            Logger.LogMessage("CreateTag {0}: {1}", header.Name.XmlName, header.GetText());

            string name = header.Name.XmlName;

            switch (name) {
                case Keyword.HibernateMapping:
                    return new HibernateMappingTag();
                case Keyword.Class:
                    return new ClassTag();
                case Keyword.Id:
                    return new IdTag();
                case Keyword.Property:
                    return new PropertyTag();
                case Keyword.Bag:
                    return new BagTag();
                case Keyword.IdBag:
                    return new IdBagTag();
                case Keyword.Set:
                    return new SetTag();
                case Keyword.Array:
                    return new ArrayTag();
                case Keyword.PrimitiveArray:
                    return new PrimitiveArrayTag();
                case Keyword.List:
                    return new ListTag();
                case Keyword.Any:
                    return new AnyTag();
                case Keyword.Map:
                    return new MapTag();
                case Keyword.Component:
                    return new ComponentTag();
                case Keyword.DynamicComponent:
                    return new DynamicComponentTag();
                case Keyword.Subclass:
                    return new SubclassTag();
                case Keyword.JoinedSubclass:
                    return new JoinedSubclassTag();
                case Keyword.OneToOne:
                    return new OneToOneTag();
                case Keyword.OneToMany:
                    return new OneToManyTag();
                case Keyword.ManyToMany:
                    return new ManyToManyTag();
                case Keyword.ManyToAny:
                    return new ManyToAnyTag();
                case Keyword.ManyToOne:
                    return new ManyToOneTag();
                case Keyword.CompositeElement:
                    return new CompositeElementTag();
                case Keyword.NestedCompositeElement:
                    return new NestedCompositeElementTag();
                case Keyword.Parent:
                    return new ParentTag();
            }

            return base.CreateTag(header, parentTag);
        }
コード例 #4
0
        protected IXmlTag CreateTagGenerated(IXmlTagHeaderNode header, IXmlTagContainer parentTag)
        {
            string name = header.Name.GetText();

            if (name == "class")
            {
                return new ClassMappingElementImpl();
            }
            else
                return null;
        }
コード例 #5
0
ファイル: NHElementFactory.cs プロジェクト: willrawls/arp
        public override IXmlTag CreateTag(IXmlTagHeaderNode header, IXmlTag parentTag)
        {
            IXmlTag created = base.CreateTagGenerated(header, parentTag);
            if (created != null)
            {
                HandleCreateTagElement((INHElement)created,header, parentTag);
                return created;
            }

            return base.CreateTag(header, parentTag);
        }
コード例 #6
0
ファイル: NHElementFactory.cs プロジェクト: willrawls/arp
        public override IXmlTag CreateRootTag(IXmlTagHeaderNode header)
        {
            if (header.Name.GetText() == "hibernate-mapping")
            {
                HibernateMappingElementImpl ret = new HibernateMappingElementImpl();
                HandleCreateTagElement((INHElement)ret, header, null);
                return ret;
            }

            return base.CreateRootTag(header);
        }
コード例 #7
0
ファイル: L4NProcessor.cs プロジェクト: willrawls/arp
        private DocumentRange GetHighlightRange(IXmlTagHeaderNode header)
        {
            DocumentRange ret = DocumentRange.InvalidRange;
            XmlToken token = header.FirstChild as XmlToken;
            if (token == null)
                return ret;

            XmlTokenTypes types = XmlTokenTypeFactory.GetTokenTypes(L4NLanguageService.L4N);
            Assert.Check(token.type == types.TAG_START);
            ret = token.GetDocumentRange();

            token = token.NextSibling as XmlToken;
            if(token == null || token.type != types.IDENTIFIER)
                return ret;

            ret = token.GetDocumentRange();
            return ret;
        }
コード例 #8
0
ファイル: L4NElementFactory.cs プロジェクト: willrawls/arp
        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);
        }
コード例 #9
0
ファイル: NHElementFactory.cs プロジェクト: willrawls/arp
 private void HandleCreateTagElement(INHElement element, IXmlTagHeaderNode header, IXmlTagContainer tag)
 {
     foreach (IXmlAttribute attribute in header.Attributes)
     {
         ProcessAttribute(element, attribute, tag);
     }
 }
コード例 #10
0
ファイル: L4NElementFactory.cs プロジェクト: willrawls/arp
 public override IXmlTag CreateRootTag(IXmlTagHeaderNode header)
 {
     return base.CreateRootTag(header);
 }
コード例 #11
0
ファイル: NHElementsFactory.cs プロジェクト: willrawls/arp
 public override IXmlTag CreateTag(IXmlTagHeaderNode header, IXmlTagContainer parentTag)
 {
     return base.CreateTag(header, parentTag);
 }
コード例 #12
0
        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;
        }