siri/sxml/vehicle_monitoring_request.go

Summary

Maintainability
A
45 mins
Test Coverage
package sxml

import (
    "strings"

    "github.com/jbowtie/gokogiri"
    "github.com/jbowtie/gokogiri/xml"
)

type XMLGetVehicleMonitoring struct {
    XMLVehicleMonitoringRequest

    requestorRef string
}

type XMLVehicleMonitoringRequest struct {
    LightRequestXMLStructure

    lineRef           string
    vehicleRef        string
    messageIdentifier string

    lines []string
}

func NewXMLGetVehicleMonitoring(node xml.Node) *XMLGetVehicleMonitoring {
    xmlGetVehicleMonitoring := &XMLGetVehicleMonitoring{}
    xmlGetVehicleMonitoring.node = NewXMLNode(node)
    return xmlGetVehicleMonitoring
}

func NewXMLGetVehicleMonitoringFromContent(content []byte) (*XMLGetVehicleMonitoring, error) {
    doc, err := gokogiri.ParseXml(content)
    if err != nil {
        return nil, err
    }
    request := NewXMLGetVehicleMonitoring(doc.Root().XmlNode)
    return request, nil
}

func (request *XMLVehicleMonitoringRequest) Lines() []string {
    if len(request.lines) == 0 {
        nodes := request.findNodes("LineRef")
        for _, node := range nodes {
            request.lines = append(request.lines, strings.TrimSpace(node.NativeNode().Content()))
        }
    }
    return request.lines
}

func (request *XMLGetVehicleMonitoring) LineRef() string {
    if request.lineRef == "" {
        request.lineRef = request.findStringChildContent("LineRef")
    }
    return request.lineRef
}

func (request *XMLGetVehicleMonitoring) VehicleRef() string {
    if request.vehicleRef == "" {
        request.vehicleRef = request.findStringChildContent("VehicleRef")
    }
    return request.vehicleRef
}

func (request *XMLGetVehicleMonitoring) MessageIdentifier() string {
    if request.messageIdentifier == "" {
        request.messageIdentifier = request.findStringChildContent("MessageIdentifier")
    }
    return request.messageIdentifier
}

func (request *XMLGetVehicleMonitoring) RequestorRef() string {
    if request.requestorRef == "" {
        request.requestorRef = request.findStringChildContent("RequestorRef")
    }
    return request.requestorRef
}