awips2/edexOsgi/com.raytheon.edex.uengine/utility/edex_static/base/python/GempakGridCycleQuery.py
Nate Jensen b7ea2ae30b Issue #2032 moving localization edex_static files to respective plugins, except colormaps
Change-Id: I287fe0a7d44782dc45265a9ffe2312549d95edbf

Former-commit-id: 69c812bb8f03844333497feba62951fbdcbc9e2b
2013-07-18 17:20:27 -05:00

76 lines
No EOL
2.5 KiB
Python

#
# GempakGridCycleQuery
#
# This code has been developed by the SIB for use in the AWIPS2 system.
# Performs a GempakSqlQuery for Grid data from GEMPAK and returns
# all the available unique forecast times for the model's cycle.
#
# Usage:
# import GempakGridCycleQuery
# query = GempakGridCycleQuery.GempakGridCycleQuery()
# query.setParameters("ruc|1300")
# return query.execute()
#
# SOFTWARE HISTORY
#
# Date Ticket# Engineer Description
# ------------ ---------- ----------- --------------------------
# 07/02/10 92 mgamazaychikov Initial Creation
#
from java.util import ArrayList
from com.raytheon.uf.common.message.response import ResponseMessageGeneric
from com.raytheon.edex.uengine.tasks.query import MetadataCatalogQuery
from gov.noaa.nws.ncep.edex.uengine.utility import GempakConvert
import GempakSqlQuery
class GempakGridCycleQuery():
def __init__(self, aPlugin):
self.plugin = aPlugin
self.queryResults = ArrayList()
self.GSQ = GempakSqlQuery.GempakSqlQuery()
self.GSQ.setReturnText()
self.convert = GempakConvert()
#
# Set parameters of the metadata catalog query
#
def setParameters (self, aParms):
parms = aParms.split("|")
self.model=parms[0].upper()
self.cycle = self.convert.dattimToDbtime(parms[1].upper()).replace (' ', '_')
#print "model=", self.model
#print "cycle=", self.cycle
#
# Generates a list of responses in XML format
#
def makeResponse(self):
retStr = self.convert.dbtimeToDattim((self.queryResult).split("/")[2])
#print "returning time=", retStr
return ResponseMessageGeneric(retStr)
#
# Executes the query and calls appropriate response functions
#
def execute(self):
#
# construct the SQL query to execute
#
myQuery = "SELECT datauri FROM " + self.plugin + " WHERE datauri LIKE '%" + \
self.cycle + "%' AND datauri ~* '/" + self.model + "/' LIMIT 1"
#print "myQuery:", myQuery
#
# set the SQL query
#
self.GSQ.setQuery(myQuery)
self.queryResult = self.GSQ.execute()
#print "self.queryResult=", self.queryResult
#
# process the results of the query
#
if self.queryResult is None:
return self.makeNullResponse("Query returned no results")
else:
return self.makeResponse()