model/stop_visit_update_event.go

Summary

Maintainability
A
0 mins
Test Coverage
package model

import (
    "time"

    "bitbucket.org/enroute-mobi/ara/siri/sxml"
)

type StopVisitUpdateEvent struct {
    RecordedAt             time.Time
    Schedules              *StopVisitSchedules
    attributes             Attributes
    SiriXML                *sxml.XMLMonitoredStopVisit
    references             *References
    VehicleJourneyCode Code
    StopAreaCode       Code
    Code               Code
    CodeSpace           string
    DepartureStatus        StopVisitDepartureStatus
    ArrivalStatus          StopVisitArrivalStatus
    DataFrameRef           string
    Origin                 string
    PassageOrder           int
    Monitored              bool
    VehicleAtStop          bool
}

func NewStopVisitUpdateEvent() *StopVisitUpdateEvent {
    return &StopVisitUpdateEvent{
        Schedules: NewStopVisitSchedules(),
    }
}

func (ue *StopVisitUpdateEvent) EventKind() EventKind {
    return STOP_VISIT_EVENT
}

func (ue *StopVisitUpdateEvent) Attributes() Attributes {
    if ue.attributes != nil {
        return ue.attributes
    }
    ue.attributes = NewAttributes()

    if ue.SiriXML == nil {
        return ue.attributes
    }

    ue.attributes.Set("Delay", ue.SiriXML.Delay())
    ue.attributes.Set("ActualQuayName", ue.SiriXML.ActualQuayName())
    ue.attributes.Set("AimedHeadwayInterval", ue.SiriXML.AimedHeadwayInterval())
    ue.attributes.Set("ArrivalPlatformName", ue.SiriXML.ArrivalPlatformName())
    ue.attributes.Set("ArrivalProximyTest", ue.SiriXML.ArrivalProximyTest())
    ue.attributes.Set("DepartureBoardingActivity", ue.SiriXML.DepartureBoardingActivity())
    ue.attributes.Set("DeparturePlatformName", ue.SiriXML.DeparturePlatformName())
    ue.attributes.Set("DestinationDisplay", ue.SiriXML.DestinationDisplay())
    ue.attributes.Set("DistanceFromStop", ue.SiriXML.DistanceFromStop())
    ue.attributes.Set("ExpectedHeadwayInterval", ue.SiriXML.ExpectedHeadwayInterval())
    ue.attributes.Set("NumberOfStopsAway", ue.SiriXML.NumberOfStopsAway())
    ue.attributes.Set("PlatformTraversal", ue.SiriXML.PlatformTraversal())

    return ue.attributes
}

func (ue *StopVisitUpdateEvent) References() References {
    if ue.references != nil {
        return *ue.references
    }
    refs := NewReferences()
    ue.references = &refs

    if ue.SiriXML == nil {
        return *ue.references
    }

    ue.references.SetCode("OperatorRef", NewCode(ue.CodeSpace, ue.SiriXML.OperatorRef()))

    return *ue.references
}