public override TableFunction VisitTableFunction(TableFunction tf)
            {
                string str;

                if (tf == null)
                {
                    return(null);
                }

                writer.WriteStartElement(currentTableFun);
                functionIds.TryGetValue(tf.MappedFunction, out str);

                if (str != null)
                {
                    writer.WriteAttributeString("FunctionId", str);
                }

                if (tf.AccessModifier.HasValue)
                {
                    writer.WriteAttributeString("AccessModifier", tf.AccessModifier.ToString());
                }

                base.VisitTableFunction(tf);
                writer.WriteEndElement();
                return(tf);
            }
            public override TableFunction VisitTableFunction(TableFunction tf)
            {
                if (tf == null)
                {
                    return(null);
                }

                if (tf.AccessModifier.HasValue && tf.AccessModifier.Value == AccessModifier.Private)
                {
                    tf.AccessModifier = null;
                }

                return(base.VisitTableFunction(tf));
            }
                public override TableFunction VisitTableFunction(TableFunction tf)
                {
                    if (tf == null)
                    {
                        return(null);
                    }
                    string str = "FunctionId" + currentFunctionId.ToString(CultureInfo.InvariantCulture);

                    if ((tf.MappedFunction != null) && !functionIds.ContainsKey(tf.MappedFunction))
                    {
                        functionIds.Add(tf.MappedFunction, str);
                        currentFunctionId++;
                    }
                    return(tf);
                }
示例#4
0
            public override TableFunction VisitTableFunction(TableFunction tf)
            {
                if (tf == null)
                {
                    return(null);
                }

                if (!tf.AccessModifier.HasValue)
                {
                    tf.AccessModifier = (AccessModifier)4;
                }

                VisitFunction(tf.MappedFunction);
                return(base.VisitTableFunction(tf));
            }
示例#5
0
            public override TableFunction VisitTableFunction(TableFunction tf)
            {
                if (tf == null)
                {
                    return(null);
                }

                var key = new TableFunction
                {
                    AccessModifier = tf.AccessModifier
                };

                int num = FindReferencedFunctionIndex(originalDb, tf.MappedFunction);

                functionReferences.Add(key, num);

                foreach (TableFunctionParameter parameter in tf.Arguments)
                {
                    key.Arguments.Add(VisitTableFunctionParameter(parameter));
                }

                key.Return = VisitTableFunctionReturn(tf.Return);
                return(key);
            }
示例#6
0
            private TableFunction ReadTableFunction(XmlTextReader reader)
            {
                ValidateAttributes(reader, _validTableFunctionAttributes);
                var item = new TableFunction();

                string attribute = reader.GetAttribute("FunctionId");

                if (attribute == null)
                {
                    throw Error.RequiredAttributeMissingViolation("FunctionId", reader.LineNumber);
                }

                if (!functionIds.Contains(attribute))
                {
                    throw Error.SchemaInvalidIdRefToNonexistentId("TableFunction", "FunctionId", attribute,
                                                                  reader.LineNumber);
                }

                if (cudFunctionIds.ContainsKey(attribute))
                {
                    cudFunctionIds[attribute].Add(item);
                }
                else
                {
                    var list = new List <TableFunction> {
                        item
                    };
                    cudFunctionIds.Add(attribute, list);
                }

                string modifier = reader.GetAttribute("AccessModifier");

                try
                {
                    if (modifier == null)
                    {
                        item.AccessModifier = null;
                    }
                    else
                    {
                        item.AccessModifier = (AccessModifier)Enum.Parse(typeof(AccessModifier), modifier, true);
                    }
                }
                catch (FormatException)
                {
                    throw Error.InvalidBooleanAttributeValueViolation(modifier, reader.LineNumber);
                }
                catch (ArgumentException)
                {
                    throw Error.InvalidEnumAttributeValueViolation(modifier, reader.LineNumber);
                }

                if (reader.IsEmptyElement)
                {
                    return(item);
                }

                int returnCount = 0;

                while (reader.Read())
                {
                    if ((reader.NodeType == XmlNodeType.Whitespace) || !IsInNamespace(reader))
                    {
                        continue;
                    }

                    if (reader.NodeType == XmlNodeType.Element)
                    {
                        string name = reader.Name;
                        switch (name)
                        {
                        case "Argument":
                            item.Arguments.Add(ReadTableFunctionParameter(reader));
                            continue;

                        case "Return":
                            item.Return = ReadTableFunctionReturn(reader);
                            returnCount++;
                            if (returnCount > 1)
                            {
                                throw Error.ElementMoreThanOnceViolation("Return", reader.LineNumber);
                            }

                            continue;

                        default:
                            throw Error.SchemaUnexpectedElementViolation(reader.Name, "TableFunction",
                                                                         reader.LineNumber);
                        }
                    }

                    if (reader.NodeType == XmlNodeType.EndElement)
                    {
                        return(item);
                    }
                }
                return(item);
            }
示例#7
0
 public override TableFunction VisitTableFunction(TableFunction tf)
 {
     if (tf == null)
         return null;
     string str = "FunctionId" + currentFunctionId.ToString(CultureInfo.InvariantCulture);
     if ((tf.MappedFunction != null) && !functionIds.ContainsKey(tf.MappedFunction))
     {
         functionIds.Add(tf.MappedFunction, str);
         currentFunctionId++;
     }
     return tf;
 }
示例#8
0
            public override TableFunction VisitTableFunction(TableFunction tf)
            {
                string str;
                if (tf == null)
                    return null;

                writer.WriteStartElement(currentTableFun);
                functionIds.TryGetValue(tf.MappedFunction, out str);

                if (str != null)
                    writer.WriteAttributeString("FunctionId", str);

                if (tf.AccessModifier.HasValue)
                    writer.WriteAttributeString("AccessModifier", tf.AccessModifier.ToString());

                base.VisitTableFunction(tf);
                writer.WriteEndElement();
                return tf;
            }
示例#9
0
            public override TableFunction VisitTableFunction(TableFunction tf)
            {
                if (tf == null)
                    return null;

                if (tf.AccessModifier.HasValue && tf.AccessModifier.Value == AccessModifier.Private)
                    tf.AccessModifier = null;
                
                return base.VisitTableFunction(tf);
            }
            public override TableFunction VisitTableFunction(TableFunction tf)
            {
                if (tf == null)
                    return null;

                if (!tf.AccessModifier.HasValue)
                    tf.AccessModifier = (AccessModifier) 4;

                VisitFunction(tf.MappedFunction);
                return base.VisitTableFunction(tf);
            }
示例#11
0
            public override TableFunction VisitTableFunction(TableFunction tf)
            {
                if (tf == null)
                    return null;

                var key = new TableFunction
                              {
                                  AccessModifier = tf.AccessModifier
                              };

                int num = FindReferencedFunctionIndex(originalDb, tf.MappedFunction);
                functionReferences.Add(key, num);

                foreach (TableFunctionParameter parameter in tf.Arguments)
                {
                    key.Arguments.Add(VisitTableFunctionParameter(parameter));
                }

                key.Return = VisitTableFunctionReturn(tf.Return);
                return key;
            }
示例#12
0
文件: DbmlReader.cs 项目: cmcginn/AIM
            private TableFunction ReadTableFunction(XmlTextReader reader)
            {
                ValidateAttributes(reader, new[] {"FunctionId", "AccessModifier"});
                var item = new TableFunction();

                string attribute = reader.GetAttribute("FunctionId");
                if (attribute == null)
                    throw Error.RequiredAttributeMissingViolation("FunctionId", reader.LineNumber);

                if (!functionIds.Contains(attribute))
                    throw Error.SchemaInvalidIdRefToNonexistentId("TableFunction", "FunctionId", attribute,
                                                                  reader.LineNumber);

                if (cudFunctionIds.ContainsKey(attribute))
                {
                    cudFunctionIds[attribute].Add(item);
                }
                else
                {
                    var list = new List<TableFunction> {item};
                    cudFunctionIds.Add(attribute, list);
                }

                string modifier = reader.GetAttribute("AccessModifier");
                try
                {
                    if (modifier == null)
                        item.AccessModifier = null;
                    else
                        item.AccessModifier = (AccessModifier) Enum.Parse(typeof (AccessModifier), modifier, true);
                }
                catch (FormatException)
                {
                    throw Error.InvalidBooleanAttributeValueViolation(modifier, reader.LineNumber);
                }
                catch (ArgumentException)
                {
                    throw Error.InvalidEnumAttributeValueViolation(modifier, reader.LineNumber);
                }

                if (reader.IsEmptyElement)
                    return item;

                int returnCount = 0;
                while (reader.Read())
                {
                    if ((reader.NodeType == XmlNodeType.Whitespace) || !IsInNamespace(reader))
                        continue;

                    if (reader.NodeType == XmlNodeType.Element)
                    {
                        string name = reader.Name;
                        switch (name)
                        {
                            case "Argument":
                                item.Arguments.Add(ReadTableFunctionParameter(reader));
                                continue;
                            case "Return":
                                item.Return = ReadTableFunctionReturn(reader);
                                returnCount++;
                                if (returnCount > 1)
                                    throw Error.ElementMoreThanOnceViolation("Return", reader.LineNumber);

                                continue;
                            default:
                                throw Error.SchemaUnexpectedElementViolation(reader.Name, "TableFunction",
                                                                             reader.LineNumber);
                        }
                    }

                    if (reader.NodeType == XmlNodeType.EndElement)
                        return item;
                }
                return item;
            }