Omaha #4522 Fix dynamic serialization errors

Change-Id: I73c96d05d1381509b44b3bcd99907369da3e3259

Former-commit-id: 5d1ed08cb86930a3d0bfe16aacef215bf9a6004a
This commit is contained in:
Ron Anderson 2015-06-04 17:24:30 -05:00
parent a7d07ee2dd
commit dbe85e19f2
7 changed files with 398 additions and 521 deletions

View file

@ -89,6 +89,7 @@ import com.vividsolutions.jts.geom.Polygon;
* Sep 25, 2014 ASM #16783 D. Friedman Do not use VTEC action to determine Watch uniqueness.
* Apr 28, 2015 RODO #4027 randerso Expunged Calendar from ActiveTableRecord
* May 7, 2015 ASM #17438 D. Friedman Clean up debug and performance logging.
* Jun 04, 2015 RODO #4522 randerso Added proper primary key to ActiveTableRecord
* </pre>
*
* @author jsanchez
@ -113,13 +114,13 @@ public class WatchUtil {
private static final String END_TIME_FIELD = "endTime";
private static final String UGC_ZONE_FIELD = "ugcZone";
private static final String UGC_ZONE_FIELD = "key.ugcZone";
private static final String PHEN_SIG_FIELD = "phensig";
private static final String ETN = "etn";
private static final String ETN_FIELD = "key.etn";
private static final String ACTION = "act";
private static final String ACTION_FIELD = "act";
private static final String COUNTY_FIPS_FIELD = "FIPS";
@ -139,7 +140,7 @@ public class WatchUtil {
private static final String[] REQUEST_FIELDS = new String[] {
ISSUE_TIME_FIELD, START_TIME_FIELD, END_TIME_FIELD, UGC_ZONE_FIELD,
PHEN_SIG_FIELD, END_TIME_FIELD, ACTION, ETN };
PHEN_SIG_FIELD, END_TIME_FIELD, ACTION_FIELD, ETN_FIELD };
private GeospatialData[] countyGeoData;
@ -296,7 +297,7 @@ public class WatchUtil {
RequestConstraint ugcConstraint = new RequestConstraint("",
ConstraintType.IN);
ugcConstraint.setConstraintValueList(ugcs);
request.addConstraint("ugcZone", ugcConstraint);
request.addConstraint(UGC_ZONE_FIELD, ugcConstraint);
// These are the only fields we need for processing watches
request.addFields(REQUEST_FIELDS);
@ -324,7 +325,7 @@ public class WatchUtil {
Set<String> ugczones = null;
for (Map<String, Object> result : response.getResults()) {
WarningAction action = WarningAction.valueOf(String.valueOf(result
.get(ACTION)));
.get(ACTION_FIELD)));
/*
* TODO: Currently limited to filtering out one of ("CAN","EXP").
* Could use "Act" in addition to "act", but this should really be
@ -339,12 +340,12 @@ public class WatchUtil {
record.setEndTime((Date) result.get(END_TIME_FIELD));
record.setUgcZone(String.valueOf(result.get(UGC_ZONE_FIELD)));
record.setPhensig(String.valueOf(result.get(PHEN_SIG_FIELD)));
record.setEtn(String.valueOf(result.get(ETN)));
record.setAct(String.valueOf(result.get(ACTION)));
record.setEtn(String.valueOf(result.get(ETN_FIELD)));
record.setAct(String.valueOf(result.get(ACTION_FIELD)));
records.add(record);
} else {
Pair<String, String> key = new Pair<String, String>(null, null);
key.setFirst(String.valueOf(result.get(ETN)));
key.setFirst(String.valueOf(result.get(ETN_FIELD)));
key.setSecond(String.valueOf(result.get(PHEN_SIG_FIELD)));
ugczones = removedUgczones.get(key);
if (ugczones == null) {

View file

@ -23,6 +23,7 @@ import javax.persistence.Column;
import com.raytheon.uf.common.dataplugin.annotations.DataURI;
import com.raytheon.uf.common.dataplugin.persist.PersistableDataObject;
import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement;
/**
@ -41,7 +42,11 @@ import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement;
* @author randerso
* @version 1.0
*/
@DynamicSerialize
public class ActiveTableKey extends PersistableDataObject {
private static final long serialVersionUID = 1L;
@Column(length = 4)
@DynamicSerializeElement
protected String officeid;

View file

@ -0,0 +1,65 @@
##
# 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.
##
#
# SOFTWARE HISTORY
#
# Date Ticket# Engineer Description
# ------------ ---------- ----------- --------------------------
# 05/22/2015 4522 randerso Initial creation
#
##
class ActiveTableKey(object):
def __init__(self):
self.officeid = None
self.phen = None
self.sig = None
self.etn = None
self.ugcZone = None
def getOfficeid(self):
return self.officeid
def setOfficeid(self, officeid):
self.officeid = officeid
def getPhen(self):
return self.phen
def setPhen(self, phen):
self.phen = phen
def getSig(self):
return self.sig
def setSig(self, sig):
self.sig = sig
def getEtn(self):
return self.etn
def setEtn(self, etn):
self.etn = etn
def getUgcZone(self):
return self.ugcZone
def setUgcZone(self, ugcZone):
self.ugcZone = ugcZone

View file

@ -0,0 +1,291 @@
##
# 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.
##
#
# SOFTWARE HISTORY
#
# Date Ticket# Engineer Description
# ------------ ---------- ----------- --------------------------
# 05/22/2015 4522 randerso Initial creation (hand generated)
#
##
import ActiveTableKey
import abc
class ActiveTableRecord(object):
__metaclass__ = abc.ABCMeta
@abc.abstractmethod
def __init__(self):
self.key = ActiveTableKey.ActiveTableKey()
self.wmoid = None
self.pil = None
self.xxxid = None
self.countyheader = None
self.vtecstr = None
self.productClass = None
self.act = None
self.startTime = None
self.endTime = None
self.issueTime = None
self.purgeTime = None
self.ufn = None
self.geometry = None
self.forecaster = None
self.motdir = None
self.motspd = None
self.loc = None
self.rawmessage = None
self.seg = None
self.phensig = None
self.region = None
self.overviewText = None
self.segText = None
self.locationID = None
self.floodSeverity = None
self.immediateCause = None
self.floodRecordStatus = None
self.floodBegin = None
self.floodCrest = None
self.floodEnd = None
self.identifier = None
def getKey(self):
return self.key
def setKey(self, key):
self.key = key
def getWmoid(self):
return self.wmoid
def setWmoid(self, wmoid):
self.wmoid = wmoid
def getPil(self):
return self.pil
def setPil(self, pil):
self.pil = pil
def getXxxid(self):
return self.xxxid
def setXxxid(self, xxxid):
self.xxxid = xxxid
def getCountyheader(self):
return self.countyheader
def setCountyheader(self, countyheader):
self.countyheader = countyheader
def getUgcZone(self):
return self.key.getUgcZone()
def setUgcZone(self, ugcZone):
self.key.setUgcZone(ugcZone)
def getVtecstr(self):
return self.vtecstr
def setVtecstr(self, vtecstr):
self.vtecstr = vtecstr
def getProductClass(self):
return self.productClass
def setProductClass(self, productClass):
self.productClass = productClass
def getAct(self):
return self.act
def setAct(self, act):
self.act = act
def getOfficeid(self):
return self.key.getOfficeid()
def setOfficeid(self, officeid):
self.key.setOfficeid(officeid)
def getPhen(self):
return self.key.getPhen()
def setPhen(self, phen):
self.key.setPhen(phen)
def getSig(self):
return self.key.getSig()
def setSig(self, sig):
self.key.setSig(sig)
def getEtn(self):
return self.key.getEtn()
def setEtn(self, etn):
self.key.setEtn(etn)
def getStartTime(self):
return self.startTime
def setStartTime(self, startTime):
self.startTime = startTime
def getEndTime(self):
return self.endTime
def setEndTime(self, endTime):
self.endTime = endTime
def getIssueTime(self):
return self.issueTime
def setIssueTime(self, issueTime):
self.issueTime = issueTime
def getPurgeTime(self):
return self.purgeTime
def setPurgeTime(self, purgeTime):
self.purgeTime = purgeTime
def isUfn(self):
return self.ufn
def setUfn(self, ufn):
self.ufn = ufn
def getGeometry(self):
return self.geometry
def setGeometry(self, geometry):
self.geometry = geometry
def getForecaster(self):
return self.forecaster
def setForecaster(self, forecaster):
self.forecaster = forecaster
def getMotdir(self):
return self.motdir
def setMotdir(self, motdir):
self.motdir = motdir
def getMotspd(self):
return self.motspd
def setMotspd(self, motspd):
self.motspd = motspd
def getLoc(self):
return self.loc
def setLoc(self, loc):
self.loc = loc
def getRawmessage(self):
return self.rawmessage
def setRawmessage(self, rawmessage):
self.rawmessage = rawmessage
def getSeg(self):
return self.seg
def setSeg(self, seg):
self.seg = seg
def getPhensig(self):
return self.phensig
def setPhensig(self, phensig):
self.phensig = phensig
def getRegion(self):
return self.region
def setRegion(self, region):
self.region = region
def getOverviewText(self):
return self.overviewText
def setOverviewText(self, overviewText):
self.overviewText = overviewText
def getSegText(self):
return self.segText
def setSegText(self, segText):
self.segText = segText
def getLocationID(self):
return self.locationID
def setLocationID(self, locationID):
self.locationID = locationID
def getFloodSeverity(self):
return self.floodSeverity
def setFloodSeverity(self, floodSeverity):
self.floodSeverity = floodSeverity
def getImmediateCause(self):
return self.immediateCause
def setImmediateCause(self, immediateCause):
self.immediateCause = immediateCause
def getFloodRecordStatus(self):
return self.floodRecordStatus
def setFloodRecordStatus(self, floodRecordStatus):
self.floodRecordStatus = floodRecordStatus
def getFloodBegin(self):
return self.floodBegin
def setFloodBegin(self, floodBegin):
self.floodBegin = floodBegin
def getFloodCrest(self):
return self.floodCrest
def setFloodCrest(self, floodCrest):
self.floodCrest = floodCrest
def getFloodEnd(self):
return self.floodEnd
def setFloodEnd(self, floodEnd):
self.floodEnd = floodEnd
def getIdentifier(self):
return self.identifier
def setIdentifier(self, identifier):
self.identifier = identifier

View file

@ -17,264 +17,19 @@
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
# further licensing information.
##
#
# SOFTWARE HISTORY
#
# Date Ticket# Engineer Description
# ------------ ---------- ----------- --------------------------
# 05/22/2015 4522 randerso Changed to inherit from ActiveTableRecord
#
##
# File auto-generated against equivalent DynamicSerialize Java class
# Modified 2010-09-30: Changed getUfn to isUfn so we don't need two
# versions of ActiveTableVtec.py
import ActiveTableRecord
class OperationalActiveTableRecord(object):
class OperationalActiveTableRecord(ActiveTableRecord.ActiveTableRecord):
def __init__(self):
self.wmoid = None
self.pil = None
self.xxxid = None
self.countyheader = None
self.ugcZone = None
self.vtecstr = None
self.productClass = None
self.act = None
self.officeid = None
self.phen = None
self.sig = None
self.etn = None
self.startTime = None
self.endTime = None
self.issueTime = None
self.purgeTime = None
self.ufn = None
self.geometry = None
self.forecaster = None
self.motdir = None
self.motspd = None
self.loc = None
self.rawmessage = None
self.seg = None
self.phensig = None
self.region = None
self.overviewText = None
self.segText = None
self.locationID = None
self.floodSeverity = None
self.immediateCause = None
self.floodRecordStatus = None
self.floodBegin = None
self.floodCrest = None
self.floodEnd = None
self.identifier = None
def getWmoid(self):
return self.wmoid
def setWmoid(self, wmoid):
self.wmoid = wmoid
def getPil(self):
return self.pil
def setPil(self, pil):
self.pil = pil
def getXxxid(self):
return self.xxxid
def setXxxid(self, xxxid):
self.xxxid = xxxid
def getCountyheader(self):
return self.countyheader
def setCountyheader(self, countyheader):
self.countyheader = countyheader
def getUgcZone(self):
return self.ugcZone
def setUgcZone(self, ugcZone):
self.ugcZone = ugcZone
def getVtecstr(self):
return self.vtecstr
def setVtecstr(self, vtecstr):
self.vtecstr = vtecstr
def getProductClass(self):
return self.productClass
def setProductClass(self, productClass):
self.productClass = productClass
def getAct(self):
return self.act
def setAct(self, act):
self.act = act
def getOfficeid(self):
return self.officeid
def setOfficeid(self, officeid):
self.officeid = officeid
def getPhen(self):
return self.phen
def setPhen(self, phen):
self.phen = phen
def getSig(self):
return self.sig
def setSig(self, sig):
self.sig = sig
def getEtn(self):
return self.etn
def setEtn(self, etn):
self.etn = etn
def getStartTime(self):
return self.startTime
def setStartTime(self, startTime):
self.startTime = startTime
def getEndTime(self):
return self.endTime
def setEndTime(self, endTime):
self.endTime = endTime
def getIssueTime(self):
return self.issueTime
def setIssueTime(self, issueTime):
self.issueTime = issueTime
def getPurgeTime(self):
return self.purgeTime
def setPurgeTime(self, purgeTime):
self.purgeTime = purgeTime
def isUfn(self):
return self.ufn
def setUfn(self, ufn):
self.ufn = ufn
def getGeometry(self):
return self.geometry
def setGeometry(self, geometry):
self.geometry = geometry
def getForecaster(self):
return self.forecaster
def setForecaster(self, forecaster):
self.forecaster = forecaster
def getMotdir(self):
return self.motdir
def setMotdir(self, motdir):
self.motdir = motdir
def getMotspd(self):
return self.motspd
def setMotspd(self, motspd):
self.motspd = motspd
def getLoc(self):
return self.loc
def setLoc(self, loc):
self.loc = loc
def getRawmessage(self):
return self.rawmessage
def setRawmessage(self, rawmessage):
self.rawmessage = rawmessage
def getSeg(self):
return self.seg
def setSeg(self, seg):
self.seg = seg
def getPhensig(self):
return self.phensig
def setPhensig(self, phensig):
self.phensig = phensig
def getRegion(self):
return self.region
def setRegion(self, region):
self.region = region
def getOverviewText(self):
return self.overviewText
def setOverviewText(self, overviewText):
self.overviewText = overviewText
def getSegText(self):
return self.segText
def setSegText(self, segText):
self.segText = segText
def getLocationID(self):
return self.locationID
def setLocationID(self, locationID):
self.locationID = locationID
def getFloodSeverity(self):
return self.floodSeverity
def setFloodSeverity(self, floodSeverity):
self.floodSeverity = floodSeverity
def getImmediateCause(self):
return self.immediateCause
def setImmediateCause(self, immediateCause):
self.immediateCause = immediateCause
def getFloodRecordStatus(self):
return self.floodRecordStatus
def setFloodRecordStatus(self, floodRecordStatus):
self.floodRecordStatus = floodRecordStatus
def getFloodBegin(self):
return self.floodBegin
def setFloodBegin(self, floodBegin):
self.floodBegin = floodBegin
def getFloodCrest(self):
return self.floodCrest
def setFloodCrest(self, floodCrest):
self.floodCrest = floodCrest
def getFloodEnd(self):
return self.floodEnd
def setFloodEnd(self, floodEnd):
self.floodEnd = floodEnd
def getIdentifier(self):
return self.identifier
def setIdentifier(self, identifier):
self.identifier = identifier
super(OperationalActiveTableRecord, self).__init__()

View file

@ -17,262 +17,18 @@
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
# further licensing information.
##
#
# SOFTWARE HISTORY
#
# Date Ticket# Engineer Description
# ------------ ---------- ----------- --------------------------
# 05/22/2015 4522 randerso Changed to inherit from ActiveTableRecord
#
##
# File auto-generated against equivalent DynamicSerialize Java class
import ActiveTableRecord
class PracticeActiveTableRecord(object):
class PracticeActiveTableRecord(ActiveTableRecord.ActiveTableRecord):
def __init__(self):
self.wmoid = None
self.pil = None
self.xxxid = None
self.countyheader = None
self.ugcZone = None
self.vtecstr = None
self.productClass = None
self.act = None
self.officeid = None
self.phen = None
self.sig = None
self.etn = None
self.startTime = None
self.endTime = None
self.issueTime = None
self.purgeTime = None
self.ufn = None
self.geometry = None
self.forecaster = None
self.motdir = None
self.motspd = None
self.loc = None
self.rawmessage = None
self.seg = None
self.phensig = None
self.region = None
self.overviewText = None
self.segText = None
self.locationID = None
self.floodSeverity = None
self.immediateCause = None
self.floodRecordStatus = None
self.floodBegin = None
self.floodCrest = None
self.floodEnd = None
self.identifier = None
def getWmoid(self):
return self.wmoid
def setWmoid(self, wmoid):
self.wmoid = wmoid
def getPil(self):
return self.pil
def setPil(self, pil):
self.pil = pil
def getXxxid(self):
return self.xxxid
def setXxxid(self, xxxid):
self.xxxid = xxxid
def getCountyheader(self):
return self.countyheader
def setCountyheader(self, countyheader):
self.countyheader = countyheader
def getUgcZone(self):
return self.ugcZone
def setUgcZone(self, ugcZone):
self.ugcZone = ugcZone
def getVtecstr(self):
return self.vtecstr
def setVtecstr(self, vtecstr):
self.vtecstr = vtecstr
def getProductClass(self):
return self.productClass
def setProductClass(self, productClass):
self.productClass = productClass
def getAct(self):
return self.act
def setAct(self, act):
self.act = act
def getOfficeid(self):
return self.officeid
def setOfficeid(self, officeid):
self.officeid = officeid
def getPhen(self):
return self.phen
def setPhen(self, phen):
self.phen = phen
def getSig(self):
return self.sig
def setSig(self, sig):
self.sig = sig
def getEtn(self):
return self.etn
def setEtn(self, etn):
self.etn = etn
def getStartTime(self):
return self.startTime
def setStartTime(self, startTime):
self.startTime = startTime
def getEndTime(self):
return self.endTime
def setEndTime(self, endTime):
self.endTime = endTime
def getIssueTime(self):
return self.issueTime
def setIssueTime(self, issueTime):
self.issueTime = issueTime
def getPurgeTime(self):
return self.purgeTime
def setPurgeTime(self, purgeTime):
self.purgeTime = purgeTime
def getUfn(self):
return self.ufn
def setUfn(self, ufn):
self.ufn = ufn
def getGeometry(self):
return self.geometry
def setGeometry(self, geometry):
self.geometry = geometry
def getForecaster(self):
return self.forecaster
def setForecaster(self, forecaster):
self.forecaster = forecaster
def getMotdir(self):
return self.motdir
def setMotdir(self, motdir):
self.motdir = motdir
def getMotspd(self):
return self.motspd
def setMotspd(self, motspd):
self.motspd = motspd
def getLoc(self):
return self.loc
def setLoc(self, loc):
self.loc = loc
def getRawmessage(self):
return self.rawmessage
def setRawmessage(self, rawmessage):
self.rawmessage = rawmessage
def getSeg(self):
return self.seg
def setSeg(self, seg):
self.seg = seg
def getPhensig(self):
return self.phensig
def setPhensig(self, phensig):
self.phensig = phensig
def getRegion(self):
return self.region
def setRegion(self, region):
self.region = region
def getOverviewText(self):
return self.overviewText
def setOverviewText(self, overviewText):
self.overviewText = overviewText
def getSegText(self):
return self.segText
def setSegText(self, segText):
self.segText = segText
def getLocationID(self):
return self.locationID
def setLocationID(self, locationID):
self.locationID = locationID
def getFloodSeverity(self):
return self.floodSeverity
def setFloodSeverity(self, floodSeverity):
self.floodSeverity = floodSeverity
def getImmediateCause(self):
return self.immediateCause
def setImmediateCause(self, immediateCause):
self.immediateCause = immediateCause
def getFloodRecordStatus(self):
return self.floodRecordStatus
def setFloodRecordStatus(self, floodRecordStatus):
self.floodRecordStatus = floodRecordStatus
def getFloodBegin(self):
return self.floodBegin
def setFloodBegin(self, floodBegin):
self.floodBegin = floodBegin
def getFloodCrest(self):
return self.floodCrest
def setFloodCrest(self, floodCrest):
self.floodCrest = floodCrest
def getFloodEnd(self):
return self.floodEnd
def setFloodEnd(self, floodEnd):
self.floodEnd = floodEnd
def getIdentifier(self):
return self.identifier
def setIdentifier(self, identifier):
self.identifier = identifier
super(PracticeActiveTableRecord, self).__init__()

View file

@ -21,6 +21,8 @@
# File auto-generated by PythonFileGenerator
__all__ = [
'ActiveTableKey',
'ActiveTableRecord',
'ActiveTableMode',
'DumpActiveTableRequest',
'DumpActiveTableResponse',
@ -39,6 +41,8 @@ __all__ = [
'response'
]
from ActiveTableKey import ActiveTableKey
from ActiveTableRecord import ActiveTableRecord
from ActiveTableMode import ActiveTableMode
from DumpActiveTableRequest import DumpActiveTableRequest
from DumpActiveTableResponse import DumpActiveTableResponse