; ; 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) 2014 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 LocationFilter ; element from the ; <a href="http://sscweb.gsfc.nasa.gov/">Satellite Situation Center</a> ; (SSC) XML schema. ; ; Note: SSC's filtering features do not support CDF output so this ; class is not required until this IDL library supports requests ; for text output. ; ; @copyright Copyright (c) 2014 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 SpdfLocationFilter object. ; ; @keyword minimum {in} {optional} {type=boolean} ; specifies that the minimum value that should be ; included in the results. ; @keyword maximum {in} {optional} {type=boolean} ; specifies that the maximum value that should be ; included in the results. ; @keyword lowerLimit {in} {optional} {type=double} ; specifies that the lower limit of values that should ; be included in the results. ; @keyword upperLimit {in} {optional} {type=double} ; specifies that the upper limit of values that should ; be included in the results. ; @returns reference to an SpdfLocationFilter object. ;- function SpdfLocationFilter::init, $ minimum = minimum, $ maximum = maximum, $ lowerLimit = lowerLimit, $ upperLimit = upperLimit compile_opt idl2 if keyword_set(minimum) then begin self.minimum = minimum endif else begin self.minimum = 0b endelse if keyword_set(maximum) then begin self.maximum = maximum endif else begin self.maximum = 0b endelse if keyword_set(lowerLimit) then begin self.lowerLimit = lowerLimit endif else begin self.lowerLimit = !values.d_nan endelse if keyword_set(upperLimit) then begin self.upperLimit = upperLimit endif else begin self.upperLimit = !values.d_nan endelse self.spdfTime = obj_new('SpdfTimeInterval', $ '2014-01-01T00:00:00.000Z', $ '2014-01-02T00:00:00.000Z') return, self end ;+ ; Performs cleanup operations when this object is destroyed. ;- pro SpdfLocationFilter::cleanup compile_opt idl2 end ;+ ; Gets the Minimum value. ; ; @returns Minimum value. ;- function SpdfLocationFilter::getMinimum compile_opt idl2 return, self.minimum end ;+ ; Gets the Maximum value. ; ; @returns Maximum value. ;- function SpdfLocationFilter::getMaximum compile_opt idl2 return, self.maximum end ;+ ; Gets the LowerLimit value. ; ; @returns LowerLimit value. ;- function SpdfLocationFilter::getLowerLimit compile_opt idl2 return, self.lowerLimit end ;+ ; Gets the UpperLimit value. ; ; @returns UpperLimit value. ;- function SpdfLocationFilter::getUpperLimit compile_opt idl2 return, self.upperLimit end ;+ ; Creates an LocationFilter 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. ; @param subClassName {in} {type=string} ; name of sub-class. ; @returns a reference to a new IDLffXMLDOMElement representation of ; this object. ;- function SpdfLocationFilter::createDomElement, $ doc, $ subClassName compile_opt idl2 locationFilterElement = doc->createElement(subClassName) minElement = doc->createElement('Minimum') ovoid = locationFilterElement->appendChild(minElement) if self.minimum eq 1b then begin minText = 'true' endif else begin minText = 'false' endelse minNode = doc->createTextNode(minText) ovoid = minElement->appendChild(minNode) maxElement = doc->createElement('Maximum') ovoid = locationFilterElement->appendChild(maxElement) if self.maximum eq 1b then begin maxText = 'true' endif else begin maxText = 'false' endelse maxNode = doc->createTextNode(maxText) ovoid = maxElement->appendChild(maxNode) if finite(self.lowerLimit) then begin lowerLimitElement = doc->createElement('LowerLimit') ovoid = locationFilterElement->appendChild(lowerLimitElement) lowerLimitNode = $ doc->createTextNode( $ string(self.lowerLimit, format='(%"%e")')) ovoid = lowerLimitElement->appendChild(lowerLimitNode) endif if finite(self.upperLimit) then begin upperLimitElement = doc->createElement('UpperLimit') ovoid = locationFilterElement->appendChild(upperLimitElement) upperLimitNode = $ doc->createTextNode( $ string(self.upperLimit, format='(%"%e")')) ovoid = upperLimitElement->appendChild(upperLimitNode) endif return, locationFilterElement end ;+ ; Defines the SpdfLocationFilter class. ; ; @field minimum specifies that the minimum value should be included ; in the results. ; @field maximum specifies that the maximum value should be included ; in the results. ; @field lowerLimit specifies that the lower limit of values that ; should be included in the results. ; @field upperLimit specifies that the upper limit of values that ; should be included in the results. ; @field spdfTime constant object used to call "static" methods of ; SpdfTimeInterval class. ;- pro SpdfLocationFilter__define compile_opt idl2 struct = { SpdfLocationFilter, $ minimum:0b, $ maximum:0b, $ lowerLimit:0d, $ upperLimit:0d, $ spdfTime:obj_new() $ } end