Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        private void CreateEdgeTypeAttributeDefinitionNode(ParsingContext context, ParseTreeNode parseNode)
        {
            EdgeTypeAttributeDefinitionNode aCreateAttributeNode = new EdgeTypeAttributeDefinitionNode();

            aCreateAttributeNode.Init(context, parseNode);

            parseNode.AstNode = aCreateAttributeNode;
        }