/// <summary> /// Initializes the object from a RelativePathElement /// </summary> public Element(RelativePathElement element, ITypeTable typeTree) { if (element == null) { throw new ArgumentNullException("element"); } if (typeTree == null) { throw new ArgumentNullException("typeTree"); } m_referenceTypeName = null; m_targetName = element.TargetName; m_elementType = RelativePathFormatter.ElementType.ForwardReference; m_includeSubtypes = element.IncludeSubtypes; if (!element.IsInverse && element.IncludeSubtypes) { if (element.ReferenceTypeId == ReferenceTypeIds.HierarchicalReferences) { m_elementType = RelativePathFormatter.ElementType.AnyHierarchical; } else if (element.ReferenceTypeId == ReferenceTypeIds.Aggregates) { m_elementType = RelativePathFormatter.ElementType.AnyComponent; } else { m_referenceTypeName = typeTree.FindReferenceTypeName(element.ReferenceTypeId); } } else { if (element.IsInverse) { m_elementType = RelativePathFormatter.ElementType.InverseReference; } m_referenceTypeName = typeTree.FindReferenceTypeName(element.ReferenceTypeId); } }
/// <summary> /// Initializes the object from a RelativePathElement /// </summary> public Element(RelativePathElement element, ITypeTable typeTree) { if (element == null) throw new ArgumentNullException("element"); if (typeTree == null) throw new ArgumentNullException("typeTree"); m_referenceTypeName = null; m_targetName = element.TargetName; m_elementType = RelativePathFormatter.ElementType.ForwardReference; m_includeSubtypes = element.IncludeSubtypes; if (!element.IsInverse && element.IncludeSubtypes) { if (element.ReferenceTypeId == ReferenceTypeIds.HierarchicalReferences) { m_elementType = RelativePathFormatter.ElementType.AnyHierarchical; } else if (element.ReferenceTypeId == ReferenceTypeIds.Aggregates) { m_elementType = RelativePathFormatter.ElementType.AnyComponent; } else { m_referenceTypeName = typeTree.FindReferenceTypeName(element.ReferenceTypeId); } } else { if (element.IsInverse) { m_elementType = RelativePathFormatter.ElementType.InverseReference; } m_referenceTypeName = typeTree.FindReferenceTypeName(element.ReferenceTypeId); } }