/// <summary> /// Gets an attributeList from a ParseTreeNode. /// </summary> /// <param name="aChildNode">The interesting ParseTreeNode.</param> /// <param name="myTypeManager">the typemanager</param> /// <returns>A Dictionary with attribute definitions.</returns> private Dictionary <AttributeDefinition, String> GetAttributeList(ParseTreeNode aChildNode) { #region Data var attributes = new Dictionary <AttributeDefinition, String>(); #endregion foreach (ParseTreeNode aAttrDefNode in aChildNode.ChildNodes) { EdgeTypeAttributeDefinitionNode aAttrDef = (EdgeTypeAttributeDefinitionNode)aAttrDefNode.AstNode; if (aAttrDef.AttributeDefinition.DefaultValue != null) { if (aAttrDef.AttributeDefinition.AttributeType.TypeCharacteristics == null) { aAttrDef.AttributeDefinition.AttributeType.TypeCharacteristics = new TypeCharacteristics(); } aAttrDef.AttributeDefinition.AttributeType.TypeCharacteristics.IsMandatory = true; } if (attributes.Any(item => item.Key.AttributeName == aAttrDef.AttributeDefinition.AttributeName)) { throw new AttributeAlreadyExistsException(aAttrDef.AttributeDefinition.AttributeName); } else { attributes.Add(aAttrDef.AttributeDefinition, aAttrDef.AttributeDefinition.AttributeType.Name); } } return(attributes); }
private void CreateEdgeTypeAttributeDefinitionNode(ParsingContext context, ParseTreeNode parseNode) { EdgeTypeAttributeDefinitionNode aCreateAttributeNode = new EdgeTypeAttributeDefinitionNode(); aCreateAttributeNode.Init(context, parseNode); parseNode.AstNode = aCreateAttributeNode; }