public AttributeDefinition(DBTypeOfAttributeDefinition attributeType, String attributeName, IObject defaultValue = null) { AttributeType = attributeType; AttributeName = attributeName; DefaultValue = defaultValue; }
public void GetContent(CompilerContext context, ParseTreeNode parseNode) { if (parseNode.FirstChild.Term.Name.Equals("id_simple")) { #region simple id DBTypeDefinition = new DBTypeOfAttributeDefinition() { Type = KindsOfType.UnknownSingle, Name = parseNode.ChildNodes[0].Token.ValueString }; #endregion } else if (parseNode.FirstChild.Term.Name.ToUpper().Equals(DBConstants.DBBackwardEdge.ToUpper())) { #region BackwardedgeDefinition var _TypeCharacteristics = new TypeCharacteristics(); _TypeCharacteristics.IsBackwardEdge = true; DBTypeDefinition = new DBTypeOfAttributeDefinition() { TypeCharacteristics = _TypeCharacteristics, Name = parseNode.ChildNodes[0].Token.ValueString }; #endregion } else if (parseNode.FirstChild.AstNode is EdgeTypeDefNode) { #region EdgeType definition DBTypeDefinition = new DBTypeOfAttributeDefinition() { Type = ((EdgeTypeDefNode)parseNode.FirstChild.AstNode).Type, Name = ((EdgeTypeDefNode)parseNode.FirstChild.AstNode).Name, TypeCharacteristics = ((EdgeTypeDefNode)parseNode.FirstChild.AstNode).TypeCharacteristics, EdgeType = ((EdgeTypeDefNode)parseNode.FirstChild.AstNode).EdgeType, Parameters = ((EdgeTypeDefNode)parseNode.FirstChild.AstNode).Parameters, }; #endregion } else if (parseNode.FirstChild.AstNode is SingleEdgeTypeDefNode) { #region Single edge type definition DBTypeDefinition = new DBTypeOfAttributeDefinition() { Type = ((SingleEdgeTypeDefNode)parseNode.FirstChild.AstNode).Type, Name = ((SingleEdgeTypeDefNode)parseNode.FirstChild.AstNode).Name, TypeCharacteristics = ((SingleEdgeTypeDefNode)parseNode.FirstChild.AstNode).TypeCharacteristics, EdgeType = ((SingleEdgeTypeDefNode)parseNode.FirstChild.AstNode).EdgeType, Parameters = ((SingleEdgeTypeDefNode)parseNode.FirstChild.AstNode).Parameters, }; #endregion } else if (parseNode.ChildNodes.Count >= 2) { KindsOfType type; #region set if (parseNode.ChildNodes[0].Token.ValueString.ToUpper() == DBConstants.SET) { type = KindsOfType.UnknownSet; } #endregion #region list else if (parseNode.ChildNodes[0].Token.ValueString.ToUpper() == DBConstants.LIST) { type = KindsOfType.UnknownList; } #endregion else { throw new GraphDBException(new Error_NotImplemented(new System.Diagnostics.StackTrace(true))); } DBTypeDefinition = new DBTypeOfAttributeDefinition() { Type = type, Name = parseNode.ChildNodes[2].Token.ValueString }; } else { throw new ArgumentException("Invalid Graph type definition..."); } }