Merge remote-tracking branch 'vlab/ohd_16.2.2' into master_16.2.2

Former-commit-id: c3a9e71a1dd7a971701ac3c157a8a7b2eb1f3182
This commit is contained in:
Shawn.Hooper 2016-04-07 16:02:01 -04:00
commit 8a618519ec
16 changed files with 968 additions and 664 deletions

View file

@ -70,7 +70,6 @@ import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.requests.ThriftClient;
import com.raytheon.viz.hydrobase.addEditFloodTS.AddEditFloodEventDlg;
import com.raytheon.viz.hydrocommon.HydroConstants;
import com.raytheon.viz.hydrocommon.util.DbUtils;
import com.raytheon.viz.hydrocommon.util.RatingUtils;
import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
@ -90,6 +89,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
* Jun 18, 2012 14377 wkwock Correct insert data into crest table.
* Jun 27, 2013 2088 rferrel Made dialog non-blocking.
* Jun 10, 2015 DCS15095 wkwock Added edit/insert flood event feature.
* Jan 15, 2016 DCS18180 JingtaoD code improvement based on code review for DR17935
*
* </pre>
*
@ -349,7 +349,7 @@ public class FloodReportDlg extends CaveSWTDialog {
* Create the middle list and canvas controls.
*/
private void createMiddleControls() {
final int BUTTON_WIDTH=165;
final int BUTTON_WIDTH = 165;
GridData gd = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
Composite mainComp = new Composite(shell, SWT.NONE);
mainComp.setLayout(new GridLayout(2, false));
@ -1034,9 +1034,9 @@ public class FloodReportDlg extends CaveSWTDialog {
mb.open();
} else {
if (!newEventFlg) {
key=selectedKey;
key = selectedKey;
}
if (efeDlg==null || efeDlg.isDisposed()) {
if (efeDlg == null || efeDlg.isDisposed()) {
efeDlg = new AddEditFloodEventDlg(this.getParent(), key, this);
efeDlg.open();
} else {
@ -1268,8 +1268,6 @@ public class FloodReportDlg extends CaveSWTDialog {
sql.append(", q");
}
cremark = DbUtils.escapeSpecialCharforStr(cremark);
sql.append(") values('" + data.getLid() + "', ");
sql.append("'" + dateFormat.format(eventDate) + "', ");
sql.append("'" + hourFormat.format(eventDate) + "', ");

View file

@ -53,6 +53,7 @@ import com.raytheon.viz.hydrocommon.util.DbUtils;
public class GeoDataManager extends HydroDataManager {
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(GeoDataManager.class);
private static GeoDataManager instance = null;
private GeoDataManager() {
@ -168,8 +169,6 @@ public class GeoDataManager extends HydroDataManager {
return status;
}
DbUtils.escapeSpecialCharforData(data);
/*
* if the interior lat, lon were provided from the input file, then use
* them. otherwise compute them.
@ -203,11 +202,13 @@ public class GeoDataManager extends HydroDataManager {
data.setInteriorLon(intLon);
}
String dataName = DbUtils.escapeSpecialCharforStr(data.getName());
StringBuilder query = new StringBuilder();
query.append("insert into geoarea (area_id,");
query.append(" name, boundary_type, interior_lat, interior_lon)");
query.append(" values ('" + data.getAreaId() + "', '");
query.append(data.getName() + "', '");
query.append(dataName + "', '");
query.append(data.getBoundaryType() + "', ");
query.append(data.getInteriorLat() + ", ");
query.append(data.getInteriorLon() + ")");

View file

@ -53,6 +53,7 @@ import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.viz.hydrobase.FcstPointGroupDlg;
import com.raytheon.viz.hydrobase.listeners.IForecastGroupAssignmentListener;
import com.raytheon.viz.hydrocommon.HydroConstants;
import com.raytheon.viz.hydrocommon.data.LocationData;
import com.raytheon.viz.hydrocommon.data.RPFFcstGroupData;
import com.raytheon.viz.hydrocommon.data.RPFFcstPointData;
import com.raytheon.viz.hydrocommon.data.RiverStatData;
@ -81,6 +82,7 @@ import com.raytheon.viz.ui.dialogs.ICloseCallback;
* Feb.02, 2015 #13372 djingtao Change from GMT time to local time for "Revise" field
* May 15, 2015 4380 skorolev Added issuanceStage and issuanceFlow text fields.
* Jul 06, 2015 #14104 lbousaidi increased textlimit to 15
* Jan 13, 2016 #17652 jingtaoD use location lat/lon for 1st guess for new River Gage
*
* </pre>
*
@ -302,6 +304,11 @@ public class RiverGageDlg extends CaveSWTDialog implements
*/
private RiverStatData riverGageData;
/**
* Data for the current location
*/
private LocationData locData;
/**
* Value for no Forecast Group assignment
*/
@ -995,6 +1002,24 @@ public class RiverGageDlg extends CaveSWTDialog implements
+ "'s data ", e);
}
// get locData
locData = new LocationData();
locData.setLid(lid);
java.util.List<LocationData> locDataList = null;
try {
locDataList = HydroDBDataManager.getInstance().getData(locData);
} catch (VizException e) {
statusHandler.handle(Priority.PROBLEM,
"Unable to load location data for " + lid, e);
}
if ((locDataList != null) && (locDataList.size() > 0)) {
locData = locDataList.get(0);
} else
locData = null;
if ((data != null) && (data.size() > 0)) {
// There will only be one record per lid
riverGageData = data.get(0);
@ -1012,21 +1037,24 @@ public class RiverGageDlg extends CaveSWTDialog implements
* Populate te display.
*/
private void updateDisplay() {
if (riverGageData != null) {
// Stream
streamTF.setText(riverGageData.getStream());
if (locData != null) {
// Lat/Lon
latitudeTF
.setText((riverGageData.getLatitude() != HydroConstants.MISSING_VALUE) ? String
.valueOf(riverGageData.getLatitude()) : "");
.setText((locData.getLatitude() != HydroConstants.MISSING_VALUE) ? String
.valueOf(locData.getLatitude()) : "");
origLat = latitudeTF.getText();
longitudeTF
.setText((riverGageData.getLongitude() != HydroConstants.MISSING_VALUE) ? String
.valueOf(riverGageData.getLongitude()) : "");
.setText((locData.getLongitude() != HydroConstants.MISSING_VALUE) ? String
.valueOf(locData.getLongitude()) : "");
origLon = longitudeTF.getText();
}
if (riverGageData != null) {
// Stream
streamTF.setText(riverGageData.getStream());
// Drainage Area
drainageAreaTF.setText(HydroDataUtils
.getDisplayString(riverGageData.getDrainageArea()));

View file

@ -42,13 +42,13 @@ package com.raytheon.viz.hydrocommon.cresthistory;
import com.raytheon.uf.common.ohd.AppsDefaults;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.core.catalog.DirectDbQuery;
import com.raytheon.uf.viz.core.catalog.DirectDbQuery.QueryLanguage;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.viz.hydrocommon.HydroConstants;
import com.raytheon.viz.hydrocommon.data.RiverDataPoint;
import com.raytheon.viz.hydrocommon.datamanager.RiverDataManager;
import com.raytheon.viz.hydrocommon.datamanager.HydroDBDataManager;
import com.raytheon.viz.hydrocommon.util.DbUtils;
public class CrestHistoryDataManager {
@ -136,8 +136,6 @@ public class CrestHistoryDataManager {
CrestData selectedCrest, int mode) {
String errMsg = null;
DbUtils.escapeSpecialCharforData(cd);
if (mode == 3) {
// Did the primary key change?
@ -166,7 +164,9 @@ public class CrestHistoryDataManager {
DirectDbQuery.executeStatement(query, HydroConstants.IHFS,
QueryLanguage.SQL);
} catch (VizException e) {
e.printStackTrace();
statusHandler.handle(Priority.ERROR,
"Error to insert crest data with query: " + query,
e);
}
}
}
@ -179,9 +179,9 @@ public class CrestHistoryDataManager {
if (cd.getRemarks() != null) {
String remarks = cd.getRemarks();
remarks = remarks.replaceAll("\n", "\\n");
remarks = DbUtils.escapeSpecialCharforStr(remarks);
back.append("'" + remarks + "', ");
front.append("cremark, ");
// back.append("'" + cd.getRemarks() + "', ");
}
if (cd.isHighWater()) {
front.append("hw, ");
@ -224,8 +224,8 @@ public class CrestHistoryDataManager {
DirectDbQuery.executeStatement(insertCrest, HydroConstants.IHFS,
QueryLanguage.SQL);
} catch (VizException e) {
e.printStackTrace();
statusHandler.handle(Priority.ERROR,
"Error to insert crest data with query: " + insertCrest, e);
// exception with duplicate key value is throwed in the 2nd cause
@ -240,14 +240,11 @@ public class CrestHistoryDataManager {
/* execute an update */
StringBuilder query = new StringBuilder("update crest set ");
// query.append("lid = '" + lid + "', ");
// query.append("datcrst = '" + cd.getDateString() + "', ");
if (cd.getRemarks() != null) {
String remarks = cd.getRemarks();
remarks = remarks.replace("\n", "\\n");
remarks = DbUtils.escapeSpecialCharforStr(remarks);
query.append("cremark = E'" + remarks + "', ");
// query.append("cremark = '" + cd.getRemarks() + "', ");
}
if (cd.isHighWater()) {

View file

@ -38,6 +38,7 @@ import com.raytheon.viz.hydrocommon.util.DbUtils;
* ------------ ---------- ----------- --------------------------
* 20 Nov 2008 lvenable Initial creation
* Sep 03, 2015 4846 rjpeter List out columns in select.
* Jan 15, 2016 DCS18180 JingtaoD code improvement based on code review for DR17935
* </pre>
*
* @author lvenable
@ -121,12 +122,13 @@ public class ContactsDataManager extends HydroDataManager {
* Database exception.
*/
public void deleteRecord(ContactsData contactsData) throws VizException {
DbUtils.escapeSpecialCharforData(contactsData);
String contacts = DbUtils.escapeSpecialCharforStr(contactsData
.getContact());
StringBuilder query = new StringBuilder(DELETE_STATEMENT);
String whereClaus = String.format(
" WHERE lid = '%s' AND contact = '%s' ", contactsData.getLid(),
contactsData.getContact());
contacts);
query.append(whereClaus);
runStatement(query.toString());
@ -171,11 +173,16 @@ public class ContactsDataManager extends HydroDataManager {
* Database exception.
*/
public void insertContactData(ContactsData data) throws VizException {
DbUtils.escapeSpecialCharforData(data);
ContactsData contactsDataForQuery = new ContactsData();
DbUtils.escapeSpecialCharforData(data, contactsDataForQuery);
String query = String.format(INSERT_STATEMENT, data.getLid(),
data.getContact(), data.getPhone(), data.getEmail(),
data.getRemark(), data.getPriority());
String query = String.format(INSERT_STATEMENT,
contactsDataForQuery.getLid(),
contactsDataForQuery.getContact(),
contactsDataForQuery.getPhone(),
contactsDataForQuery.getEmail(),
contactsDataForQuery.getRemark(),
contactsDataForQuery.getPriority());
runStatement(query);
}
@ -190,13 +197,19 @@ public class ContactsDataManager extends HydroDataManager {
*/
public void updateContactData(ContactsData data, String originalContactName)
throws VizException {
DbUtils.escapeSpecialCharforData(data);
ContactsData contactsDataForQuery = new ContactsData();
DbUtils.escapeSpecialCharforData(data, contactsDataForQuery);
originalContactName = DbUtils
.escapeSpecialCharforStr(originalContactName);
String query = String.format(UPDATE_STATEMENT, data.getContact(),
data.getPhone(), data.getEmail(), data.getRemark(),
data.getPriority(), data.getLid(), originalContactName);
String query = String.format(UPDATE_STATEMENT,
contactsDataForQuery.getContact(),
contactsDataForQuery.getPhone(),
contactsDataForQuery.getEmail(),
contactsDataForQuery.getRemark(),
contactsDataForQuery.getPriority(),
contactsDataForQuery.getLid(), originalContactName);
runStatement(query);
}

View file

@ -137,13 +137,16 @@ public class DescriptionDataManager extends HydroDataManager {
*/
public void insertDescriptionData(DescriptionData descData)
throws VizException {
DbUtils.escapeSpecialCharforData(descData);
String query = String.format(INSERT_STATEMENT, descData.getLid(),
descData.getStreamBed(), descData.getDivert(),
descData.getRemark(), descData.getIce(),
descData.getProximity(), descData.getReach(),
descData.getRegulation(), descData.getTopo());
DescriptionData descDataForQuery = new DescriptionData();
DbUtils.escapeSpecialCharforData(descData, descDataForQuery);
String query = String.format(INSERT_STATEMENT,
descDataForQuery.getLid(), descDataForQuery.getStreamBed(),
descDataForQuery.getDivert(), descDataForQuery.getRemark(),
descDataForQuery.getIce(), descDataForQuery.getProximity(),
descDataForQuery.getReach(), descDataForQuery.getRegulation(),
descDataForQuery.getTopo());
runStatement(query);
}
@ -158,14 +161,16 @@ public class DescriptionDataManager extends HydroDataManager {
*/
public void updateDescriptionData(DescriptionData descData)
throws VizException {
DbUtils.escapeSpecialCharforData(descData);
String query = String
.format(UPDATE_STATEMENT, descData.getStreamBed(),
descData.getDivert(), descData.getRemark(),
descData.getIce(), descData.getProximity(),
descData.getReach(), descData.getRegulation(),
descData.getTopo(), descData.getLid());
DescriptionData descDataForQuery = new DescriptionData();
DbUtils.escapeSpecialCharforData(descData, descDataForQuery);
String query = String.format(UPDATE_STATEMENT,
descDataForQuery.getStreamBed(), descDataForQuery.getDivert(),
descDataForQuery.getRemark(), descDataForQuery.getIce(),
descDataForQuery.getProximity(), descDataForQuery.getReach(),
descDataForQuery.getRegulation(), descDataForQuery.getTopo(),
descDataForQuery.getLid());
runStatement(query);
}

View file

@ -29,7 +29,6 @@ import com.raytheon.uf.common.dataquery.db.QueryResult;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.viz.hydrocommon.HydroConstants;
import com.raytheon.viz.hydrocommon.data.FloodCategoryData;
import com.raytheon.viz.hydrocommon.util.DbUtils;
import com.raytheon.viz.hydrocommon.util.HydroDataUtils;
/**
@ -151,8 +150,6 @@ public class FloodCategoryDataManager extends HydroDataManager {
throws VizException {
Double majorS = null, minorS = null, moderateS = null, majorD = null, minorD = null, moderateD = null;
DbUtils.escapeSpecialCharforData(data);
if (data.getMajorStage() != HydroConstants.MISSING_VALUE)
majorS = data.getMajorStage();
if (data.getModerateStage() != HydroConstants.MISSING_VALUE)
@ -179,8 +176,6 @@ public class FloodCategoryDataManager extends HydroDataManager {
Double majorS = null, minorS = null, moderateS = null, majorD = null, minorD = null, moderateD = null;
DbUtils.escapeSpecialCharforData(currData);
if (currData.getMajorStage() != HydroConstants.MISSING_VALUE)
majorS = currData.getMajorStage();
if (currData.getModerateStage() != HydroConstants.MISSING_VALUE)

View file

@ -36,6 +36,7 @@ import com.raytheon.viz.hydrocommon.util.HydroDataUtils;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Nov 10, 2008 1661 askripsky Initial Creation
* Jan 15, 2016 DCS18180 JingtaoD code improvement based on code review for DR17935
*
* </pre>
*
@ -162,18 +163,15 @@ public class FloodDataManager extends HydroDataManager {
private void updateFloodData(FloodData data) throws VizException {
DbUtils.escapeSpecialCharforData(data);
runStatement(String
.format(UPDATE_STATEMENT, data.getDamage(),
data.getDisplayStatement(),
HydroDataUtils.getPKStatement(data)));
}
private void insertFloodData(FloodData currData) throws VizException {
DbUtils.escapeSpecialCharforData(currData);
runStatement(String.format(INSERT_STATEMENT, currData.getLid(),
String.format("%8.2f", currData.getStage()),
currData.getDamage(), currData.getDisplayStatement()));
@ -189,13 +187,16 @@ public class FloodDataManager extends HydroDataManager {
newData.setDisplayStatement(displayStatement);
newData.setStage(stage);
FloodData newDataForQuery = new FloodData();
DbUtils.escapeSpecialCharforData(newData, newDataForQuery);
// Check if it's going to be an update or insert
if (checkFloodData(newData) > 0) {
if (checkFloodData(newDataForQuery) > 0) {
// Do an update
updateFloodData(newData);
updateFloodData(newDataForQuery);
} else {
// Do an insert
insertFloodData(newData);
insertFloodData(newDataForQuery);
}
}
}

View file

@ -28,6 +28,9 @@ import java.util.Map;
import com.raytheon.uf.common.dataquery.db.QueryResult;
import com.raytheon.uf.common.dataquery.db.QueryResultRow;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.viz.hydrocommon.data.HydroDBData;
import com.raytheon.viz.hydrocommon.util.DbUtils;
@ -43,6 +46,7 @@ import com.raytheon.viz.hydrocommon.util.DbUtils;
* Nov 21, 2008 1697 askripsky Changed to use reflection and filter generic methods
* Nov 03, 2011 11273 lbousaidi added updateNewData and putNewData.
* Apr 18, 2013 1790 rferrel Code cleanup part of non-blocking dialogs.
* Jan 15, 2016 DCS18180 JingtaoD code improvement based on code review for DR17935
* </pre>
*
* @author askripsky
@ -67,6 +71,10 @@ public class HydroDBDataManager extends HydroDataManager {
return manager;
}
/** The logger */
private static final IUFStatusHandler statusHandler = UFStatus
.getHandler(HydroDBDataManager.class);
/**
* Deletes each record passed in from the respective table.
*
@ -89,16 +97,25 @@ public class HydroDBDataManager extends HydroDataManager {
*/
public <T extends HydroDBData> void deleteRecord(T recordToDelete)
throws VizException {
try {
DbUtils.escapeSpecialCharforData(recordToDelete);
@SuppressWarnings("unchecked")
T recordToDeleteForQuery = (T) recordToDelete.getClass()
.newInstance();
DbUtils.escapeSpecialCharforData(recordToDelete,
recordToDeleteForQuery);
String deleteQuery = (String) recordToDelete.getClass()
.getMethod("getDeleteStatement").invoke(recordToDelete);
.getMethod("getDeleteStatement")
.invoke(recordToDeleteForQuery);
runStatement(deleteQuery);
} catch (Exception e) {
e.printStackTrace();
statusHandler.handle(Priority.ERROR,
"Unable to delete record with getDeleteStatement method.",
e);
}
}
@ -131,7 +148,8 @@ public class HydroDBDataManager extends HydroDataManager {
}
}
} catch (Exception e) {
e.printStackTrace();
statusHandler.handle(Priority.ERROR,
"Unable to get data with getSelectStatement method.", e);
}
return rval;
@ -179,7 +197,10 @@ public class HydroDBDataManager extends HydroDataManager {
result.getColumnNames()));
}
} catch (Exception e) {
e.printStackTrace();
statusHandler
.handle(Priority.ERROR,
"Unable to get data with getConstrainedSelectStatement method.",
e);
}
return rval;
@ -204,7 +225,10 @@ public class HydroDBDataManager extends HydroDataManager {
rval = runMappedQuery(dataQuery).getResultCount();
}
} catch (Exception e) {
e.printStackTrace();
statusHandler
.handle(Priority.ERROR,
"Error in checking data with getExistsStatement method.",
e);
}
return rval;
@ -220,8 +244,6 @@ public class HydroDBDataManager extends HydroDataManager {
public <T extends HydroDBData> void updateData(T data) throws VizException {
try {
DbUtils.escapeSpecialCharforData(data);
// Get the update statement with the values filled in
String updateQuery = (String) data.getClass()
.getMethod("getUpdateStatement").invoke(data);
@ -230,7 +252,8 @@ public class HydroDBDataManager extends HydroDataManager {
runStatement(updateQuery);
}
} catch (Exception e) {
e.printStackTrace();
statusHandler.handle(Priority.ERROR,
"Unable to update data with getUpdateStatement method.", e);
}
}
@ -246,11 +269,9 @@ public class HydroDBDataManager extends HydroDataManager {
throws VizException {
try {
DbUtils.escapeSpecialCharforData(newData);
String updateQuery = (String) newData.getClass()
.getMethod("getUpdateStatement").invoke(newData);
DbUtils.escapeSpecialCharforData(updateData);
String pkquery = (String) updateData.getClass()
.getMethod("getPKStatement").invoke(updateData);
@ -260,7 +281,8 @@ public class HydroDBDataManager extends HydroDataManager {
runStatement(updateQueryToRun);
}
} catch (Exception e) {
e.printStackTrace();
statusHandler.handle(Priority.ERROR, "Unable to update new data.",
e);
}
}
@ -277,34 +299,44 @@ public class HydroDBDataManager extends HydroDataManager {
String insertQuery = null;
try {
DbUtils.escapeSpecialCharforData(currData);
// if (currData.getClass() == LocationAgencyOfficeData.class) {
Method getSQLMethod = currData.getClass().getMethod(
"getInsertStatement");
insertQuery = (String) getSQLMethod.invoke(currData);
// }
if (insertQuery != null) {
runStatement(insertQuery);
}
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
statusHandler.handle(Priority.ERROR,
"Unable to insert data due to security exception.", e);
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
statusHandler
.handle(Priority.ERROR,
"Unable to insert data due to no method existing exception.",
e);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
statusHandler.handle(Priority.ERROR,
"Unable to insert data due to illegal argument exception.",
e);
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
statusHandler
.handle(Priority.ERROR,
"Unable to insert data due to illegal access exception.",
e);
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
statusHandler
.handle(Priority.ERROR,
"Unable to insert data due to invocation target exception.",
e);
} catch (Exception e) {
e.printStackTrace();
statusHandler.handle(Priority.ERROR,
"Unable to insert data with getInsertStatement method.", e);
}
}
@ -319,13 +351,26 @@ public class HydroDBDataManager extends HydroDataManager {
* @throws VizException
*/
public <T extends HydroDBData> void putData(T newData) throws VizException {
try {
@SuppressWarnings("unchecked")
T newDataForQuery = (T) newData.getClass().newInstance();
DbUtils.escapeSpecialCharforData(newData, newDataForQuery);
// Check if it's going to be an update or insert
if (checkData(newData) > 0) {
if (checkData(newDataForQuery) > 0) {
// Do an update
updateData(newData);
updateData(newDataForQuery);
} else {
// Do an insert
insertData(newData);
insertData(newDataForQuery);
}
} catch (InstantiationException | IllegalAccessException e) {
statusHandler
.handle(Priority.ERROR,
"Error to update/insert data due to instantiation or illegalAccess exception for "
+ newData.getClass().getName(), e);
}
}
@ -342,16 +387,31 @@ public class HydroDBDataManager extends HydroDataManager {
*/
public <T extends HydroDBData> void putNewData(T newData, T updateData,
boolean insert) throws VizException {
try {
@SuppressWarnings("unchecked")
T newDataForQuery = (T) newData.getClass().newInstance();
DbUtils.escapeSpecialCharforData(newData, newDataForQuery);
@SuppressWarnings("unchecked")
T updateDataForQuery = (T) updateData.getClass().newInstance();
DbUtils.escapeSpecialCharforData(updateData, updateDataForQuery);
// Check if it's going to be an update
if ((insert) && (checkData(newData) == 0)) {
if ((insert) && (checkData(newDataForQuery) == 0)) {
// Do an insert
insertData(newData);
insertData(newDataForQuery);
} else if (checkData(updateData) > 0) {
} else if (checkData(updateDataForQuery) > 0) {
// Do an update
updateNewData(newData, updateData);
updateNewData(newDataForQuery, updateDataForQuery);
}
} catch (InstantiationException | IllegalAccessException e) {
statusHandler
.handle(Priority.ERROR,
"Error to update/insert data due to instantiation or illegal access exception for "
+ newData.getClass().getName(), e);
}
}
}

View file

@ -137,10 +137,9 @@ public class LocationAreaManager extends HydroDataManager {
*/
public void insertLocationAreaData(LocationAreaData data)
throws VizException {
DbUtils.escapeSpecialCharforData(data);
String areaStr = DbUtils.escapeSpecialCharforStr(data.getArea());
String query = String.format(INSERT_STATEMENT, data.getLid(),
data.getArea());
String query = String.format(INSERT_STATEMENT, data.getLid(), areaStr);
runStatement(query);
}
@ -155,10 +154,9 @@ public class LocationAreaManager extends HydroDataManager {
*/
public void updateLocationAreaData(LocationAreaData data)
throws VizException {
DbUtils.escapeSpecialCharforData(data);
String areaStr = DbUtils.escapeSpecialCharforStr(data.getArea());
String query = String.format(UPDATE_STATEMENT, data.getArea(),
data.getLid());
String query = String.format(UPDATE_STATEMENT, areaStr, data.getLid());
runStatement(query);
}

View file

@ -163,25 +163,25 @@ public class LowWaterDataManager extends HydroDataManager {
private void updateLowWaterData(LowWaterData data) throws VizException {
DbUtils.escapeSpecialCharforData(data);
String noteStr = DbUtils.escapeSpecialCharforStr(data.getRemark());
runStatement(String.format(
UPDATE_STATEMENT,
(data.getFlow() == LowWaterData.MISSING_VALUE) ? "null" : data
.getFlow(), data.getRemark(),
.getFlow(), noteStr,
(data.getStage() == LowWaterData.MISSING_VALUE_D) ? "null"
: data.getStage(), HydroDataUtils.getPKStatement(data)));
}
private void insertLowWaterData(LowWaterData currData) throws VizException {
DbUtils.escapeSpecialCharforData(currData);
String noteStr = DbUtils.escapeSpecialCharforStr(currData.getRemark());
runStatement(String.format(INSERT_STATEMENT, currData.getLid(),
dateFormat.format(currData.getDate()),
(currData.getFlow() == LowWaterData.MISSING_VALUE) ? "null"
: currData.getFlow(), currData.getRemark(), (currData
.getStage() == LowWaterData.MISSING_VALUE_D) ? "null"
: currData.getFlow(), noteStr,
(currData.getStage() == LowWaterData.MISSING_VALUE_D) ? "null"
: String.format("%8.2f", currData.getStage())));
}

View file

@ -36,6 +36,7 @@ import com.raytheon.viz.hydrocommon.util.HydroDataUtils;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Nov 14, 2008 1697 askripsky Initial Creation
* Jan 15, 2016 DCS18180 JingtaoD code improvement based on code review for DR17935
*
* </pre>
*
@ -139,8 +140,6 @@ public class LowWaterStatementDataManager extends HydroDataManager {
private void updateLowWaterStatementData(LowWaterStatementData data)
throws VizException {
DbUtils.escapeSpecialCharforData(data);
runStatement(String.format(UPDATE_STATEMENT,
data.getUpperValueDBString(), data.getStatement(),
data.getLowWaterCriteria(), data.getLowWaterSource(),
@ -150,8 +149,6 @@ public class LowWaterStatementDataManager extends HydroDataManager {
private void insertLowWaterData(LowWaterStatementData currData)
throws VizException {
DbUtils.escapeSpecialCharforData(currData);
runStatement(String.format(INSERT_STATEMENT, currData.getLid(),
currData.getPe(), currData.getLowerValue(),
currData.getUpperValueDBString(), currData.getCriteriaRank(),
@ -161,13 +158,17 @@ public class LowWaterStatementDataManager extends HydroDataManager {
public void putLowWaterStatementData(LowWaterStatementData dataToPut)
throws VizException {
LowWaterStatementData dataToPutForQuery = new LowWaterStatementData();
DbUtils.escapeSpecialCharforData(dataToPut, dataToPutForQuery);
// Check if it's going to be an update or insert
if (checkLowWaterStatementData(dataToPut) > 0) {
if (checkLowWaterStatementData(dataToPutForQuery) > 0) {
// Do an update
updateLowWaterStatementData(dataToPut);
updateLowWaterStatementData(dataToPutForQuery);
} else {
// Do an insert
insertLowWaterData(dataToPut);
insertLowWaterData(dataToPutForQuery);
}
}
}

View file

@ -100,24 +100,21 @@ public class B44AReport extends TextReport {
/**
* Build the text for the report.
*
* @return
* The report text
* @return The report text
*/
private String b44ACooperative() {
StringBuilder buffer = new StringBuilder();
buffer.append(b44aHdrCooperative + "\n");
buffer
.append(" NATIONAL OCEANIC AND ATMOSPHERIC ADMINISTRATION\n");
buffer
.append(" NATIONAL WEATHER SERVICE\n\n");
buffer
.append(" UNOFFICIAL COOPERATIVE STATION REPORT\n\n");
buffer
.append("---------------------------- IDENTIFICATION SECTION --------------------------\n\n");
buffer.append(" NATIONAL OCEANIC AND ATMOSPHERIC ADMINISTRATION\n");
buffer.append(" NATIONAL WEATHER SERVICE\n\n");
buffer.append(" UNOFFICIAL COOPERATIVE STATION REPORT\n\n");
buffer.append("---------------------------- IDENTIFICATION SECTION --------------------------\n\n");
TextReportData data = TextReportDataManager.getInstance().getDataForReports(lid, 7);
TextReportData dataRiverStat = TextReportDataManager.getInstance().getDataForReports(lid, 0);
TextReportData data = TextReportDataManager.getInstance()
.getDataForReports(lid, 7);
TextReportData dataRiverStat = TextReportDataManager.getInstance()
.getDataForReports(lid, 0);
GeoUtil util = GeoUtil.getInstance();
String lat;
@ -128,16 +125,20 @@ public class B44AReport extends TextReport {
buffer.append(String.format("%12s: %-37s %3s: %s\n", "Station Name",
locB44AData.getLocation().getName(), "LID", lid));
buffer.append(String.format("%12s: %-20s %18s: %s\n", "State", locB44AData
.getLocation().getState(), "County",locB44AData.getLocation()
.getCounty()));
buffer.append(String.format("%12s: %-20s %18s: %s\n", "State",
locB44AData.getLocation().getState(), "County", locB44AData
.getLocation().getCounty()));
if (dataRiverStat.getRiverstat().getLat() > 0) {
lat = util.cvt_latlon_from_double(dataRiverStat.getRiverstat().getLat());
lon = util.cvt_latlon_from_double(dataRiverStat.getRiverstat().getLon());
} else if (dataRiverStat.getLocation().getLat() > 0) {
lat = util.cvt_latlon_from_double(locB44AData.getLocation().getLat());
lon = util.cvt_latlon_from_double(locB44AData.getLocation().getLon());
lat = util.cvt_latlon_from_double(dataRiverStat.getRiverstat()
.getLat());
lon = util.cvt_latlon_from_double(dataRiverStat.getRiverstat()
.getLon());
} else if (locB44AData.getLocation().getLat() > 0) {
lat = util.cvt_latlon_from_double(locB44AData.getLocation()
.getLat());
lon = util.cvt_latlon_from_double(locB44AData.getLocation()
.getLon());
} else {
lat = "MISSING";
lon = "MISSING";
@ -156,8 +157,7 @@ public class B44AReport extends TextReport {
"Station Begin Date: %s\n River Basin: %s\n\n", date,
locB44AData.getLocation().getRb()));
buffer
.append("------------------------------- OBSERVER SECTION -----------------------------\n\n");
buffer.append("------------------------------- OBSERVER SECTION -----------------------------\n\n");
name = "";
if ((data.getObserver().getFirstname() != null)
@ -178,8 +178,8 @@ public class B44AReport extends TextReport {
}
buffer.append(String.format(
"Observer: %-41s DOS: %-10s Gender: %s\n", name, dos,
data.getObserver().getGn()));
"Observer: %-41s DOS: %-10s Gender: %s\n", name, dos, data
.getObserver().getGn()));
buffer.append(String.format(" Address: %-30s\n", data.getObserver()
.getA1()));
@ -198,19 +198,18 @@ public class B44AReport extends TextReport {
buffer.append(String.format(" Duties: %s\n\n", data.getObserver()
.getRprt()));
buffer
.append("-------------------------- STATION MANAGEMENT SECTION ------------------------\n\n");
buffer.append("-------------------------- STATION MANAGEMENT SECTION ------------------------\n\n");
buffer.append(String.format(
"HSA: %-3s WFO: %-3s RFC: %s\n\n", locB44AData
.getLocation().getHsa(), locB44AData.getLocation().getWfo(),
locB44AData.getLocation().getRfc()));
buffer
.append("----------------------------------- REMARKS ----------------------------------\n\n");
"HSA: %-3s WFO: %-3s RFC: %s\n\n",
locB44AData.getLocation().getHsa(), locB44AData.getLocation()
.getWfo(), locB44AData.getLocation().getRfc()));
buffer.append("----------------------------------- REMARKS ----------------------------------\n\n");
if ((locB44AData.getLocation().getLremark() != null)
&& (locB44AData.getLocation().getLremark().length() > 0)) {
String[] wrappedLines = TextUtil.wordWrap(locB44AData.getLocation().getLremark() + "\n", 80, 0);
for (String s: wrappedLines) {
String[] wrappedLines = TextUtil.wordWrap(locB44AData.getLocation()
.getLremark() + "\n", 80, 0);
for (String s : wrappedLines) {
buffer.append(s + "\n");
}
}
@ -233,8 +232,7 @@ public class B44AReport extends TextReport {
/**
* Generate all pages of the report.
*
* @return
* The full text
* @return The full text
*/
private String getAllPages() {
StringBuffer buffer = new StringBuffer();

View file

@ -19,14 +19,15 @@
**/
package com.raytheon.viz.hydrocommon.util;
import java.util.HashMap;
import java.lang.reflect.Field;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.lang.reflect.Field;
import com.raytheon.uf.common.ohd.AppsDefaults;
import com.raytheon.viz.hydrocommon.data.HydroDBData;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
/**
* Hydro Database Utilities
@ -34,12 +35,12 @@ import com.raytheon.viz.hydrocommon.data.HydroDBData;
* <pre>
* SOFTWARE HISTORY
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* -----------------------------------------------------------
* Jul 9, 2008 1194 mpduff Initial creation.
* Mar 7, 2014 16692 lbousaidi Any Forecast source other than
* H*,P*,Q*,T* should be handled by fcstother.
* Oct 10, 2015 17935 special char (e.g apostrophe) can not be saved/updated in Hyrobase
* *
* Jan 15, 2016 DCS18180 JingtaoD code improvement based on code review for DR17935
* </pre>
*
* @author mpduff
@ -53,6 +54,10 @@ public class DbUtils {
private static ConcurrentHashMap<String, String> fcstTableMap = null;
/** The logger */
private static final IUFStatusHandler statusHandler = UFStatus
.getHandler(DbUtils.class);
public static String getTableName(String pe, String ts) {
populateMaps();
String retVal = "procvalue";
@ -195,9 +200,14 @@ public class DbUtils {
* replace string fields in table class which contains apostrophe
*
* @param curData
* , retData
*/
public static <T> void escapeSpecialCharforData(T curData) {
Class<?> c = curData.getClass();
public static <T extends Object> void escapeSpecialCharforData(T curData,
T retData) {
copyFields(curData, retData);
Class<?> c = retData.getClass();
Field fields[] = c.getDeclaredFields();
@ -206,18 +216,21 @@ public class DbUtils {
if (f.getType().isAssignableFrom(String.class)) {
f.setAccessible(true);
if (f.get(curData) != null) {
String value = (String) f.get(curData).toString();
if (f.get(retData) != null) {
String value = (String) f.get(retData).toString();
if (value != null) {
if (value.contains("'")) {
value = value.replace("'", "''");
f.set(curData, value);
f.set(retData, value);
}
}
}
}
} catch (IllegalAccessException e) {
e.printStackTrace();
statusHandler.handle(Priority.ERROR,
"Error to escape special characters for object "
+ curData.toString(), e);
}
}
@ -227,17 +240,53 @@ public class DbUtils {
* replace apostrophe for string
*
* @param strValue
* @return
* @return strValue
*/
public static String escapeSpecialCharforStr(String strValue) {
String rVal;
if (strValue != null) {
if (strValue.contains("'")) {
strValue = strValue.replace("'", "''");
}
}
rVal = strValue;
return rVal;
return strValue;
}
/**
* Copy the fields in origData to copiedData, later replace special char in
* copiedData object
*
* @param origData
* @param copiedData
*/
public static <T extends Object> void copyFields(T origData, T copiedData) {
Class<? extends Object> fromCopy = origData.getClass();
Class<? extends Object> toCopy = copiedData.getClass();
Field origFields[] = fromCopy.getDeclaredFields();
Object value = null;
for (Field f : origFields) {
try {
Field copiedField = toCopy.getDeclaredField(f.getName());
f.setAccessible(true);
copiedField.setAccessible(true);
value = f.get(origData);
copiedField.set(copiedData, value);
} catch (Exception e) {
statusHandler.handle(Priority.ERROR,
"Error to copy object from " + origData.toString()
+ "to" + copiedData.toString(), e);
}
}
}
}

View file

@ -0,0 +1,17 @@
-- Change name of column "ml_overide_flag" to "melt_layer_src"
ALTER TABLE DSAAdapt RENAME COLUMN ml_overide_flag TO melt_layer_src;
-- Add new columns for Build 17 parameters
ALTER TABLE DSAAdapt ADD COLUMN min_early_term_angle float4;
ALTER TABLE DSAAdapt ADD COLUMN max_volume_per_hour float4;
ALTER TABLE DSAAdapt ADD COLUMN dry_snow_mult float4;
ALTER TABLE DSAAdapt ADD COLUMN rkdp_use_thresh float4;
ALTER TABLE DSAAdapt ADD COLUMN bias_applied_flag varchar(3);
ALTER TABLE DSAAdapt ADD COLUMN met_sig_proc_flag varchar(3);
ALTER TABLE DSAAdapt ADD COLUMN met_sig_thresh float4;
ALTER TABLE DSAAdapt ADD COLUMN cappi_proc_flag varchar(3);
ALTER TABLE DSAAdapt ADD COLUMN cappi_thresh float4;
ALTER TABLE DSAAdapt ADD COLUMN cappi_height float4;

View file

@ -1,4 +1,3 @@
package com.raytheon.uf.common.dataplugin.shef.tables;
import javax.persistence.AttributeOverride;
@ -8,13 +7,15 @@ import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.Table;
@Entity
@Table(name = "dsaadapt")
@javax.xml.bind.annotation.XmlRootElement
@javax.xml.bind.annotation.XmlAccessorType(javax.xml.bind.annotation.XmlAccessType.NONE)
@com.raytheon.uf.common.serialization.annotations.DynamicSerialize
public class DSAAdapt extends com.raytheon.uf.common.dataplugin.persist.PersistableDataObject implements java.io.Serializable, com.raytheon.uf.common.serialization.ISerializableObject
{
@Entity
@Table(name = "dsaadapt")
@javax.xml.bind.annotation.XmlRootElement
@javax.xml.bind.annotation.XmlAccessorType(javax.xml.bind.annotation.XmlAccessType.NONE)
@com.raytheon.uf.common.serialization.annotations.DynamicSerialize
public class DSAAdapt extends
com.raytheon.uf.common.dataplugin.persist.PersistableDataObject
implements java.io.Serializable,
com.raytheon.uf.common.serialization.ISerializableObject {
private static final long serialVersionUID = 1L;
@ -32,7 +33,7 @@ import javax.persistence.Table;
@javax.xml.bind.annotation.XmlElement
@com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement
private String ml_overide_flag;
private String melt_layer_src;
@javax.xml.bind.annotation.XmlElement
@com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement
@ -158,35 +159,76 @@ import javax.persistence.Table;
@com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement
private Float longst_lag;
// * new for Build 17 *
@javax.xml.bind.annotation.XmlElement
@com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement
private Float min_early_term_angle;
@javax.xml.bind.annotation.XmlElement
@com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement
private Float max_volume_per_hour;
@javax.xml.bind.annotation.XmlElement
@com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement
private Float dry_snow_mult;
@javax.xml.bind.annotation.XmlElement
@com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement
private Float rkdp_use_thresh;
@javax.xml.bind.annotation.XmlElement
@com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement
private String bias_applied_flag;
@javax.xml.bind.annotation.XmlElement
@com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement
private String met_sig_proc_flag;
@javax.xml.bind.annotation.XmlElement
@com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement
private Float met_sig_thresh;
@javax.xml.bind.annotation.XmlElement
@com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement
private String cappi_proc_flag;
@javax.xml.bind.annotation.XmlElement
@com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement
private Float cappi_thresh;
@javax.xml.bind.annotation.XmlElement
@com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement
private Float cappi_height;
public DSAAdapt() {
}
public DSAAdapt(DSAAdaptId id)
{
public DSAAdapt(DSAAdaptId id) {
this.id = id;
}
public DSAAdapt(DSAAdaptId id,
short num_of_adap, float default_ml_depth, String ml_overide_flag,
float kdp_mult, float kdp_power, float z_r_mult, float z_r_power,
float zdr_z_mult, float zdr_z_power, float zdr_zdr_power,
float min_corr_precip, float min_corr_kdp,
float refl_max, float kdp_max_beam_blk,
float max_usability_blk, float kdp_min_usage_rate,
float ws_mult, float gr_mult,
float rh_mult, float ds_mult, float ic_mult,
public DSAAdapt(DSAAdaptId id, short num_of_adap, float default_ml_depth,
String melt_layer_src, float kdp_mult, float kdp_power,
float z_r_mult, float z_r_power, float zdr_z_mult,
float zdr_z_power, float zdr_zdr_power, float min_corr_precip,
float min_corr_kdp, float refl_max, float kdp_max_beam_blk,
float max_usability_blk, float kdp_min_usage_rate, float ws_mult,
float gr_mult, float rh_mult, float ds_mult, float ic_mult,
float grid_is_full, float paif_rate, float paif_area,
float rain_time_thresh,
float num_zones, float max_precip_rate, float restart_time,
float max_interp_time, float max_hourly_acc, float time_bias,
float num_grpairs, float reset_bias, float longst_lag
)
float rain_time_thresh, float num_zones, float max_precip_rate,
float restart_time, float max_interp_time, float max_hourly_acc,
float time_bias, float num_grpairs, float reset_bias,
float longst_lag, float min_early_term_angle,
float max_volume_per_hour, float dry_snow_mult,
float rkdp_use_thresh, String bias_applied_flag,
String met_sig_proc_flag, float met_sig_thresh,
String cappi_proc_flag, float cappi_thresh, float cappi_height)
{
this.id = id;
this.num_of_adap = num_of_adap;
this.default_ml_depth = default_ml_depth;
this.ml_overide_flag = ml_overide_flag;
this.melt_layer_src = melt_layer_src;
this.kdp_mult = kdp_mult;
this.kdp_power = kdp_power;
this.z_r_mult = z_r_mult;
@ -208,7 +250,7 @@ import javax.persistence.Table;
this.grid_is_full = grid_is_full;
this.paif_rate = paif_rate;
this.paif_area = paif_area;
this.rain_time_thresh =rain_time_thresh;
this.rain_time_thresh = rain_time_thresh;
this.num_zones = num_zones;
this.max_precip_rate = max_precip_rate;
this.restart_time = restart_time;
@ -218,10 +260,23 @@ import javax.persistence.Table;
this.num_grpairs = num_grpairs;
this.reset_bias = reset_bias;
this.longst_lag = longst_lag;
// * new for Build 17 *
this.min_early_term_angle = min_early_term_angle;
this.max_volume_per_hour = max_volume_per_hour;
this.dry_snow_mult = dry_snow_mult;
this.rkdp_use_thresh = rkdp_use_thresh;
this.bias_applied_flag = bias_applied_flag;
this.met_sig_proc_flag = met_sig_proc_flag;
this.met_sig_thresh = met_sig_thresh;
this.cappi_proc_flag = cappi_proc_flag;
this.cappi_thresh = cappi_thresh;
this.cappi_height = cappi_height;
}
@EmbeddedId
@AttributeOverrides( {
@AttributeOverrides({
@AttributeOverride(name = "radid", column = @Column(name = "radid", nullable = false, length = 3)),
@AttributeOverride(name = "obstime", column = @Column(name = "obstime", nullable = false, length = 29)) })
public DSAAdaptId getId() {
@ -250,13 +305,13 @@ import javax.persistence.Table;
this.default_ml_depth = default_ml_depth;
}
@Column(name = "ml_overide_flag")
public String getMlOverideFlag() {
return this.ml_overide_flag;
@Column(name = "melt_layer_src")
public String getMeltLayerSrc() {
return this.melt_layer_src;
}
public void setMlOverideFlag(String ml_overide_flag) {
this.ml_overide_flag = ml_overide_flag;
public void setMeltLayerSrc(String melt_layer_src) {
this.melt_layer_src = melt_layer_src;
}
@Column(name = "kdp_mult")
@ -421,7 +476,6 @@ import javax.persistence.Table;
this.ic_mult = ic_mult;
}
@Column(name = "grid_is_full")
public Float getGridIsFull() {
return this.grid_is_full;
@ -485,7 +539,6 @@ import javax.persistence.Table;
this.restart_time = restart_time;
}
@Column(name = "max_interp_time")
public Float getMaxInterpTime() {
return this.max_interp_time;
@ -513,7 +566,6 @@ import javax.persistence.Table;
this.time_bias = time_bias;
}
@Column(name = "num_grpairs")
public Float getNumGrPairs() {
return this.num_grpairs;
@ -541,4 +593,95 @@ import javax.persistence.Table;
this.longst_lag = longst_lag;
}
// * new for Build 17 *
@Column(name = "min_early_term_angle")
public Float getMinEarlyTermAngle() {
return this.min_early_term_angle;
}
public void setMinEarlyTermAngle(Float min_early_term_angle) {
this.min_early_term_angle = min_early_term_angle;
}
@Column(name = "max_volume_per_hour")
public Float getMaxVolumePerHour() {
return this.max_volume_per_hour;
}
public void setMaxVolumePerHour(Float max_volume_per_hour) {
this.max_volume_per_hour = max_volume_per_hour;
}
@Column(name = "dry_snow_mult")
public Float getDrySnowMult() {
return this.dry_snow_mult;
}
public void setDrySnowMult(Float dry_snow_mult) {
this.dry_snow_mult = dry_snow_mult;
}
@Column(name = "rkdp_use_thresh")
public Float getRkdpUseThresh() {
return this.rkdp_use_thresh;
}
public void setRkdpUseThresh(Float rkdp_use_thresh) {
this.rkdp_use_thresh = rkdp_use_thresh;
}
@Column(name = "bias_applied_flag")
public String getBiasAppliedFlag() {
return this.bias_applied_flag;
}
public void setBiasAppliedFlag(String bias_applied_flag) {
this.bias_applied_flag = bias_applied_flag;
}
@Column(name = "met_sig_proc_flag")
public String getMetSigProcFlag() {
return this.met_sig_proc_flag;
}
public void setMetSigProcFlag(String met_sig_proc_flag) {
this.met_sig_proc_flag = met_sig_proc_flag;
}
@Column(name = "met_sig_thresh")
public Float getMetSigThresh() {
return this.met_sig_thresh;
}
public void setMetSigThresh(Float met_sig_thresh) {
this.met_sig_thresh = met_sig_thresh;
}
@Column(name = "cappi_proc_flag")
public String getCappiProcFlag() {
return this.cappi_proc_flag;
}
public void setCappiProcFlag(String cappi_proc_flag) {
this.cappi_proc_flag = cappi_proc_flag;
}
@Column(name = "cappi_thresh")
public Float getCappiThresh() {
return this.cappi_thresh;
}
public void setCappiThresh(Float cappi_thresh) {
this.cappi_thresh = cappi_thresh;
}
@Column(name = "cappi_height")
public Float getCappiHeight() {
return this.cappi_height;
}
public void setCappiHeight(Float cappi_height) {
this.cappi_height = cappi_height;
}
}