public static IQualifier GetQualifier(INHElement @this, QualifierType qualifierType) { if (qualifierType == QualifierType.Type) return GetNameReferenceName(@this); return null; }
public static bool Resolved(INHElement @this) { ReferenceName name = GetNameReferenceName(@this); if (name != null) return name.Resolved; else return false; }
public static ISymbolTable GetSymbolTable(INHElement @this, params string[] referenceNames) { ReferenceName name = GetNameReferenceName(@this); if (name != null) return name.GetSymbolTable(); else return EmptySymbolTable.INSTANCE; }
private void CreateModuleReferenceAttributeValue(INHElement element, IXmlAttribute attribute) { if (attribute.Value == null) return; ReferenceParser parser = new ReferenceParser(); IXmlAttributeValue newElement = parser.ParseReferenceModule(attribute.Value); ReplaceAttributeValue(attribute, newElement); }
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); }
public static IQualifier GetQualifier(INHElement @this, QualifierType qualifierType) { if (qualifierType == QualifierType.Type) return (IQualifier)@this; if(qualifierType == QualifierType.Table) { var table = GetNameReferenceTable(@this); return table; } throw new NotImplementedException(); }
private static ReferenceTable GetNameReferenceTable(INHElement @this) { var tag = @this as IXmlTag; var xmlAttribute = tag.GetAttribute(attribute => attribute.AttributeName == "table"); if (xmlAttribute == null) return null; ReferenceTableAttributeValue attributeValue = (ReferenceTableAttributeValue)xmlAttribute.Value; if (attributeValue == null) return null; ReferenceTable referenceType = attributeValue.GetReferenceTable(); return referenceType; }
public static QualifierKind GetKind(INHElement @this) { return QualifierKind.TYPE; }
private void CreateTableReferenceAttributeValue(INHElement element, IXmlAttribute attribute) { if (attribute.Value == null) return; var parser = new NHReferenceParser(); var newElement = parser.ParseReferenceTable(attribute.Value); ReplaceAttributeValue(attribute, newElement); }
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; }
private void CreateTypeWithNHAliasReferenceAttributeValue(INHElement element, IXmlAttribute attribute) { if (attribute.Value == null) return; var parser = new ReferenceParser(); var newElement = parser.ParseReferenceType(attribute.Value, new NHGlobalQualifier(element)); ReplaceAttributeValue(attribute, newElement); }
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; }