public override IXmlAttribute CreateAttribute(IXmlIdentifierNode nameIdentifier, IXmlAttributeContainer attributeContainer, IXmlTagContainer parentTag) { IXmlAttribute baseRet = base.CreateAttribute(nameIdentifier, attributeContainer, parentTag); return baseRet; }
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; }
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; }
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); } } }
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); }
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; } } }
private void HandleCreateTagElement(INHElement element, IXmlTagHeaderNode header, IXmlTagContainer tag) { foreach (IXmlAttribute attribute in header.Attributes) { ProcessAttribute(element, attribute, tag); } }
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; }
public override IXmlTag CreateTag(IXmlTagHeaderNode header, IXmlTagContainer parentTag) { return base.CreateTag(header, parentTag); }
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; }