/// <summary> /// Generates a single vertex type predefinition /// </summary> /// <param name="aDefinition">The definition that has been created by the gql</param> /// <returns>The corresponding vertex type predefinition</returns> private VertexTypePredefinition GenerateAVertexTypePredefinition(GraphDBTypeDefinition aDefinition) { var result = new VertexTypePredefinition(aDefinition.Name); #region extends if (aDefinition.ParentType != null && aDefinition.ParentType.Length > 0) { result.SetSuperVertexTypeName(aDefinition.ParentType); } #endregion #region abstract if (aDefinition.IsAbstract) { result.MarkAsAbstract(); } #endregion #region comment if (aDefinition.Comment != null && aDefinition.Comment.Length > 0) { result.SetComment(aDefinition.Comment); } #endregion #region attributes if (aDefinition.Attributes != null) { foreach (var aAttribute in aDefinition.Attributes) { result.AddUnknownAttribute(GenerateUnknownAttribute(aAttribute)); } } #endregion #region incoming edges if (aDefinition.BackwardEdgeNodes != null) { foreach (var aIncomingEdge in aDefinition.BackwardEdgeNodes) { result.AddIncomingEdge(GenerateAIncomingEdge(aIncomingEdge)); } } #endregion #region indices if (aDefinition.Indices != null) { foreach (var aIndex in aDefinition.Indices) { result.AddIndex(GenerateIndex(aIndex, aDefinition.Name)); } } #endregion return result; }