120 lines
3.9 KiB
Python
120 lines
3.9 KiB
Python
##
|
|
# This software was developed and / or modified by Raytheon Company,
|
|
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
|
#
|
|
# U.S. EXPORT CONTROLLED TECHNICAL DATA
|
|
# This software product contains export-restricted data whose
|
|
# export/transfer/disclosure is restricted by U.S. law. Dissemination
|
|
# to non-U.S. persons whether in the United States or abroad requires
|
|
# an export license or other authorization.
|
|
#
|
|
# Contractor Name: Raytheon Company
|
|
# Contractor Address: 6825 Pine Street, Suite 340
|
|
# Mail Stop B8
|
|
# Omaha, NE 68106
|
|
# 402.291.0100
|
|
#
|
|
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
|
# further licensing information.
|
|
##
|
|
|
|
#
|
|
# Implements IDataRequest and wraps around a Java IDataRequest
|
|
#
|
|
#
|
|
# SOFTWARE HISTORY
|
|
#
|
|
# Date Ticket# Engineer Description
|
|
# ------------ ---------- ----------- --------------------------
|
|
# Dec 17, 2012 njensen Initial Creation.
|
|
# Feb 14, 2013 1614 bsteffen Refactor data access framework
|
|
# to use single request.
|
|
# Jul 22, 2014 3185 njensen Fix getters to return python objs
|
|
# Aug 13, 2014 3185 njensen Fix setEnvelope() typo
|
|
# Apr 08, 2016 5553 bkowal Fix getEnvelope() typo
|
|
#
|
|
#
|
|
|
|
##
|
|
# This is a base file that is not intended to be overridden.
|
|
##
|
|
|
|
|
|
|
|
from ufpy.dataaccess import IDataRequest
|
|
from com.raytheon.uf.common.dataplugin.level import Level
|
|
import JUtil
|
|
import jep
|
|
|
|
class JDataRequest(IDataRequest, JUtil.JavaWrapperClass):
|
|
|
|
def __init__(self, wrappedObject):
|
|
self.jobj = wrappedObject
|
|
|
|
def setDatatype(self, datatype):
|
|
self.jobj.setDatatype(datatype)
|
|
|
|
def addIdentifier(self, key, value):
|
|
self.jobj.addIdentifier(key, JUtil.pyValToJavaObj(value))
|
|
|
|
def removeIdentifier(self, key):
|
|
self.jobj.removeIdentifier(key)
|
|
|
|
def setParameters(self, *args):
|
|
from java.lang import String as JavaString
|
|
params = jep.jarray(len(args), JavaString)
|
|
for i in range(len(args)):
|
|
params[i] = JavaString(str(args[i]))
|
|
self.jobj.setParameters(params)
|
|
|
|
def setLevels(self, *args):
|
|
levels = jep.jarray(len(args), Level)
|
|
for i in range(len(args)):
|
|
levels[i] = Level(str(args[i]))
|
|
self.jobj.setLevels(levels)
|
|
|
|
def setEnvelope(self, env):
|
|
from org.locationtech.jts.geom import Envelope
|
|
bounds = env.bounds
|
|
jenv = Envelope(bounds[0], bounds[2], bounds[1], bounds[3])
|
|
self.jobj.setEnvelope(jenv)
|
|
|
|
def setLocationNames(self, *args):
|
|
from java.lang import String as JavaString
|
|
locs = jep.jarray(len(args), JavaString)
|
|
for i in range(len(args)):
|
|
locs[i] = JavaString(str(args[i]))
|
|
self.jobj.setLocationNames(locs)
|
|
|
|
def getDatatype(self):
|
|
return self.jobj.getDatatype()
|
|
|
|
def getIdentifiers(self):
|
|
jmap = self.jobj.getIdentifiers()
|
|
return JUtil.javaObjToPyVal(jmap)
|
|
|
|
def getParameters(self):
|
|
return JUtil.javaObjToPyVal(self.jobj.getParameters())
|
|
|
|
def getLevels(self):
|
|
levels = []
|
|
jlevels = self.jobj.getLevels()
|
|
for lev in jlevels:
|
|
levels.append(str(lev))
|
|
return levels
|
|
|
|
def getEnvelope(self):
|
|
env = None
|
|
jenv = self.jobj.getEnvelope()
|
|
if jenv:
|
|
import shapely.wkt
|
|
from org.locationtech.jts.geom import GeometryFactory
|
|
env = shapely.wkt.loads(GeometryFactory().toGeometry(jenv).toText())
|
|
return env
|
|
|
|
def getLocationNames(self):
|
|
return JUtil.javaObjToPyVal(self.jobj.getLocationNames())
|
|
|
|
def toJavaObj(self):
|
|
return self.jobj
|
|
|