/* * Copyright (c) 2005-2006 Erik Tigerholm * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ using System; using System.Collections.Generic; using System.Text; using System.Xml.Serialization; namespace OpenTraffic.Model { [Serializable] public class Demand { [XmlIgnore] public TrafficZone Destination { get; private set; } [XmlIgnore] public TrafficZone Origin { get; private set; } [XmlIgnore] public VehicleClass Class { get; private set; } /// /// Vehicles per seconds /// [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] [XmlArray(ElementName = "Demands")] [XmlArrayItem(ElementName = "p")] public float[] Demands { get; set; } public Demand() { } public Demand(TrafficZone origin, TrafficZone destination, VehicleClass c, float[] demands) { Origin = origin; Destination = destination; Class = c; Demands = demands; } [XmlAttributeAttribute(AttributeName = "destination")] public int XmlExportDestination { get { return Destination.Id; } set { Destination = (TrafficZone)Importer.Lookup.Get().GetObject(value); } } [XmlAttributeAttribute(AttributeName = "origin")] public int XmlExportOrigin { get { return Origin.Id; } set { Origin = (TrafficZone)Importer.Lookup.Get().GetObject(value); } } [XmlAttributeAttribute(AttributeName = "class")] public int XmlExportClass { get { return Class.IdRegister; } set { Class = Importer.Lookup.Get().GetObject(value); } } } }