; ; NOSA HEADER START ; ; The contents of this file are subject to the terms of the NASA Open ; Source Agreement (NOSA), Version 1.3 only (the "Agreement"). You may ; not use this file except in compliance with the Agreement. ; ; You can obtain a copy of the agreement at ; docs/NASA_Open_Source_Agreement_1.3.txt ; or ; http://sscweb.gsfc.nasa.gov/WebServices/NASA_Open_Source_Agreement_1.3.txt. ; ; See the Agreement for the specific language governing permissions ; and limitations under the Agreement. ; ; When distributing Covered Code, include this NOSA HEADER in each ; file and include the Agreement file at ; docs/NASA_Open_Source_Agreement_1.3.txt. If applicable, add the ; following below this NOSA HEADER, with the fields enclosed by ; brackets "[]" replaced with your own identifying information: ; Portions Copyright [yyyy] [name of copyright owner] ; ; NOSA HEADER END ; ; Copyright (c) 2013 United States Government as represented by the ; National Aeronautics and Space Administration. No copyright is claimed ; in the United States under Title 17, U.S.Code. All Other Rights Reserved. ; ;

;+ ; This class is an IDL representation of the ValueOptions ; element from the ; <a href=“http://sscweb.gsfc.nasa.gov/“>Satellite Situation Center</a> ; (SSC) XML schema. ; ; @copyright Copyright (c) 2013 United States Government as represented ; by the National Aeronautics and Space Administration. No ; copyright is claimed in the United States under Title 17, ; U.S.Code. All Other Rights Reserved. ; ; @author B. Harris ;-

;+ ; Creates an SpdfValueOptions object. ; ; @keyword radialDistance {in} {optional} {type=boolean} {default=false} ; specifies whether the radial distance is to be ; included in the output. ; @keyword bFieldStrength {in} {optional} {type=boolean} {default=false} ; specifies whether the magnetic field strength is to be ; included in the output. ; @keyword dipoleLValue {in} {optional} {type=boolean} {default=false} ; specifies whether the dipole L value is to be included ; in the output. ; @keyword dipoleInvLat {in} {optional} {type=boolean} {default=false} ; specifies whether the dipole invariant latitude is to be ; included in the output. ; @returns reference to an SpdfValueOptions object. ;- function SpdfValueOptions::init, radialDistance=radialDistance, radialDistance = radialDistance, bFieldStrength = bFieldStrength, dipoleLValue=dipoleLValue, dipoleLValue = dipoleLValue, dipoleInvLat = dipoleInvLat compile_opt idl2

if keyword_set(radialDistance) then begin

    self.radialDistance = radialDistance
endif else begin

    self.radialDistance = 0b
endelse

if keyword_set(bFieldStrength) then begin

    self.bFieldStrength = bFieldStrength
endif else begin

    self.bFieldStrength = 0b
endelse

if keyword_set(dipoleLValue) then begin

    self.dipoleLValue = dipoleLValue
endif else begin

    self.dipoleLValue = 0b
endelse

if keyword_set(dipoleInvLat) then begin

    self.dipoleInvLat = dipoleInvLat
endif else begin

    self.dipoleInvLat = 0b
endelse

return, self

end

;+ ; Performs cleanup operations when this object is destroyed. ;- pro SpdfValueOptions::cleanup compile_opt idl2

end

;+ ; Gets the radialDistance value. ; ; @returns radialDistance value. ;- function SpdfValueOptions::getRadialDistance compile_opt idl2

return, self.radialDistance

end

;+ ; Gets the magnetic field strength value. ; ; @returns magnetic field strength value. ;- function SpdfValueOptions::getBFieldStrength compile_opt idl2

return, self.bFieldStrength

end

;+ ; Gets the dipole L value. ; ; @returns dipole L value. ;- function SpdfValueOptions::getDipoleLValue compile_opt idl2

return, self.dipoleLValue

end

;+ ; Gets the dipole invariant latitude value. ; ; @returns dipole invariant latitude value. ;- function SpdfValueOptions::getDipoleInvLat compile_opt idl2

return, self.dipoleInvLat

end

;+ ; Creates an ValueOptions element using the given XML DOM document ; with the values of this object. ; ; @param doc {in} {type=IDLffXMLDOMDocument} ; document in which to create the DataRequest element. ; @returns a reference to a new IDLffXMLDOMElement representation of ; this object. ;- function SpdfValueOptions::createDomElement, $ doc compile_opt idl2

valueOptionsElement = doc->createElement('ValueOptions')

radialDistanceElement = doc->createElement('RadialDistance')
ovoid = valueOptionsElement->appendChild(radialDistanceElement)
if self.radialDistance eq 1b then begin

    radialDistanceText = 'true'
endif else begin

    radialDistanceText = 'false'
endelse
radialDistanceNode = doc->createTextNode(radialDistanceText)
ovoid = radialDistanceElement->appendChild(radialDistanceNode)

bFieldStrengthElement = doc->createElement('BFieldStrength')
ovoid = valueOptionsElement->appendChild(bFieldStrengthElement)
if self.bFieldStrength eq 1b then begin

    bFieldStrengthText = 'true'
endif else begin

    bFieldStrengthText = 'false'
endelse
bFieldStrengthNode = doc->createTextNode(bFieldStrengthText)
ovoid = bFieldStrengthElement->appendChild(bFieldStrengthNode)

dipoleLValueElement = doc->createElement('DipoleLValue')
ovoid = valueOptionsElement->appendChild(dipoleLValueElement)
if self.dipoleLValue eq 1b then begin

    dipoleLValueText = 'true'
endif else begin

    dipoleLValueText = 'false'
endelse
dipoleLValueNode = doc->createTextNode(dipoleLValueText)
ovoid = dipoleLValueElement->appendChild(dipoleLValueNode)

dipoleInvLatElement = doc->createElement('DipoleInvLat')
ovoid = valueOptionsElement->appendChild(dipoleInvLatElement)
if self.dipoleInvLat eq 1b then begin

    dipoleInvLatText = 'true'
endif else begin

    dipoleInvLatText = 'false'
endelse
dipoleInvLatNode = doc->createTextNode(dipoleInvLatText)
ovoid = dipoleInvLatElement->appendChild(dipoleInvLatNode)

return, valueOptionsElement

end

;+ ; Defines the SpdfValueOptions class. ; ; @field radialDistance specifies whether the radial distance is to be ; included in the output. ; @field bFieldStrength specifies whether the magnetic field strength ; is to be included in the output. ; @field dipoleLValue specifies whether the dipole L value is to be ; included in the output. ; @field dipoleInvLat specifies whether the dipole invariant latitude ; is to be included in the output. ;- pro SpdfValueOptions__define compile_opt idl2 struct = { SpdfValueOptions, $

    radialDistance:0b, $
    bFieldStrength:0b, $
    dipoleLValue:0b, $
    dipoleInvLat:0b $
}

end