コード例 #1
0
		public void Init()
		{
			parameters = new EditableParameters();
		}
コード例 #2
0
        //---------------------------------------------------------------------

        protected override IEcoregionDataset Parse()
        {
            ReadLandisDataVar();

            IEditableDataset dataset = new EditableDataset();

            Dictionary <string, int> nameLineNumbers    = new Dictionary <string, int>();
            Dictionary <ushort, int> mapCodeLineNumbers = new Dictionary <ushort, int>();

            InputVar <string> name        = new InputVar <string>("Name");
            InputVar <string> description = new InputVar <string>("Description");
            InputVar <ushort> mapCode     = new InputVar <ushort>("Map Code");
            InputVar <bool>   active      = new InputVar <bool>("Active");

            while (!AtEndOfInput)
            {
                IEditableParameters parameters = new EditableParameters();
                dataset.Add(parameters);

                StringReader currentLine = new StringReader(CurrentLine);

                ReadValue(active, currentLine);
                parameters.Active = active.Value;

                int lineNumber;

                ReadValue(mapCode, currentLine);
                if (mapCodeLineNumbers.TryGetValue(mapCode.Value.Actual, out lineNumber))
                {
                    throw new InputValueException(mapCode.Value.String,
                                                  "The map code {0} was previously used on line {1}",
                                                  mapCode.Value.Actual, lineNumber);
                }
                else
                {
                    mapCodeLineNumbers[mapCode.Value.Actual] = LineNumber;
                }
                parameters.MapCode = mapCode.Value;

                ReadValue(name, currentLine);
                if (nameLineNumbers.TryGetValue(name.Value.Actual, out lineNumber))
                {
                    throw new InputValueException(name.Value.String,
                                                  "The name \"{0}\" was previously used on line {1}",
                                                  name.Value.Actual, lineNumber);
                }
                else
                {
                    nameLineNumbers[name.Value.Actual] = LineNumber;
                }
                parameters.Name = name.Value;

                ReadValue(description, currentLine);
                parameters.Description = description.Value;

                CheckNoDataAfter("the " + description.Name + " column",
                                 currentLine);
                GetNextLine();
            }

            return(dataset.GetComplete());
        }