Пример #1
0
        public static DataSourceData Parse(XPOReader reader)
        {
            DataSourceData data = new DataSourceData();

            while (!reader.EndOfStream)
            {
                string line = reader.ReadLine().TrimStart();
                if (line.StartsWith(KeyWords.ENDDATASOURCE))
                {
                    break;
                }
                else if (line.StartsWith(KeyWords.Name))
                {
                    data.Name = line.Substring(KeyWords.Name.Length).Trim().Substring(1);
                }
                else if (line.StartsWith(KeyWords.METHODS))
                {
                    List <MethodData> methods = ParseMethods(reader);
                    foreach (MethodData m in methods)
                    {
                        data.AddMethod(m);
                    }
                }
                else if (line.StartsWith(KeyWords.FIELDLIST))
                {
                    ParseFieldList(reader, data);
                }
                else if (line.StartsWith(KeyWords.ENDDATASOURCE))
                {
                    break;
                }
            }

            return(data);
        }
Пример #2
0
 private static void ParseFieldList(XPOReader reader, DataSourceData data)
 {
     while (!reader.EndOfStream)
     {
         string line = reader.ReadLine().TrimStart();
         if (line.StartsWith(KeyWords.DATAFIELD))
         {
             data.AddDataField(DataFieldData.Parse(line, reader));
         }
         else if (line.StartsWith(KeyWords.REFERENCEFIELD))
         {
             data.AddReferenceField(ReferenceFieldData.Parse(line, reader));
         }
         else if (line.StartsWith(KeyWords.ENDFIELDLIST))
         {
             break;
         }
     }
 }
Пример #3
0
        public override BaseObjectData MergeWith(BaseObjectData data)
        {
            DataSourceData dsData = (DataSourceData)data;

            // merge methods
            foreach (MethodData m in dsData.Methods.Values)
            {
                this.AddMethod(m);
            }

            // merge data fields
            foreach (DataFieldData field in dsData.DataFields.Values)
            {
                this.AddDataField(field);
            }

            // merge reference fields
            foreach (ReferenceFieldData field in dsData.ReferenceFields.Values)
            {
                this.AddReferenceField(field);
            }

            return(this);
        }