Merge "Issue #1804 Remove empty data structures from radar hdf5. Change-Id: Ide845d6a5b308f61dc070f3acb01b96ed9a9288d" into omaha_13.3.1
Former-commit-id:d1e37c7803
[formerly3b8e2ff0d3
] [formerlyd1e37c7803
[formerly3b8e2ff0d3
] [formerlyadbe7b91cc
[formerly 186e08826a1a9860bd38c5dd10465b38721218f2]]] Former-commit-id:adbe7b91cc
Former-commit-id:53d8ef7ed1
[formerly3bad342dca
] Former-commit-id:ff1b1598e6
This commit is contained in:
commit
403879b5cf
4 changed files with 131 additions and 110 deletions
|
@ -35,6 +35,7 @@ import com.raytheon.uf.common.dataplugin.radar.RadarRecord;
|
|||
import com.raytheon.uf.common.dataplugin.radar.level3.Layer;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.LinkedVector;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.LinkedVectorPacket;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.SymbologyBlock;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.SymbologyPacket;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.TextSymbolPacket;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.UnlinkedVector;
|
||||
|
@ -78,6 +79,8 @@ import com.vividsolutions.jts.geom.Coordinate;
|
|||
* Mar 16, 2009 askripsk Initial creation
|
||||
* Jul 26, 2010 #3723 bkowal Now implements the magnification
|
||||
* capability.
|
||||
* Mar 19, 2013 1804 bsteffen Remove empty data structures from radar
|
||||
* hdf5.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -335,26 +338,29 @@ public class RadarXYResource extends RadarImageResource<RadarXYDescriptor> {
|
|||
linkedLines.clear();
|
||||
unlinkedLines.clear();
|
||||
points.clear();
|
||||
for (Layer currLayer : radarRecord.getSymbologyBlock().getLayers()) {
|
||||
for (SymbologyPacket currPacket : currLayer.getPackets()) {
|
||||
if (currPacket instanceof TextSymbolPacket) {
|
||||
TextSymbolPacket tsp = (TextSymbolPacket) currPacket;
|
||||
this.screenStringMap.put(
|
||||
new Coordinate(tsp.getI(), tsp.getJ()),
|
||||
tsp.getTheText());
|
||||
} else if (currPacket instanceof WindBarbPacket) {
|
||||
WindBarbPacket pk = (WindBarbPacket) currPacket;
|
||||
points.addAll(Arrays.asList(pk.getPoints()));
|
||||
} else if (currPacket instanceof UnlinkedVectorPacket) {
|
||||
UnlinkedVectorPacket pk = (UnlinkedVectorPacket) currPacket;
|
||||
SymbologyBlock sb = radarRecord.getSymbologyBlock();
|
||||
if (sb != null) {
|
||||
for (Layer currLayer : sb.getLayers()) {
|
||||
for (SymbologyPacket currPacket : currLayer.getPackets()) {
|
||||
if (currPacket instanceof TextSymbolPacket) {
|
||||
TextSymbolPacket tsp = (TextSymbolPacket) currPacket;
|
||||
this.screenStringMap.put(
|
||||
new Coordinate(tsp.getI(), tsp.getJ()),
|
||||
tsp.getTheText());
|
||||
} else if (currPacket instanceof WindBarbPacket) {
|
||||
WindBarbPacket pk = (WindBarbPacket) currPacket;
|
||||
points.addAll(Arrays.asList(pk.getPoints()));
|
||||
} else if (currPacket instanceof UnlinkedVectorPacket) {
|
||||
UnlinkedVectorPacket pk = (UnlinkedVectorPacket) currPacket;
|
||||
|
||||
this.unlinkedLines.addAll(pk.getVectors());
|
||||
} else if (currPacket instanceof LinkedVectorPacket) {
|
||||
LinkedVectorPacket pk = (LinkedVectorPacket) currPacket;
|
||||
this.unlinkedLines.addAll(pk.getVectors());
|
||||
} else if (currPacket instanceof LinkedVectorPacket) {
|
||||
LinkedVectorPacket pk = (LinkedVectorPacket) currPacket;
|
||||
|
||||
this.linkedLines.addAll(pk.getVectors());
|
||||
} else {
|
||||
System.out.println("Need: " + currPacket.getClass());
|
||||
this.linkedLines.addAll(pk.getVectors());
|
||||
} else {
|
||||
System.out.println("Need: " + currPacket.getClass());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -86,9 +86,7 @@ import com.raytheon.uf.edex.wmo.message.WMOHeader;
|
|||
* 2/14/2007 139 Phillippe Initial check-in. Refactor of initial implementation.
|
||||
* Dec 17, 2007 600 bphillip Added dao pool usage
|
||||
* Dec 03, 2010 2235 cjeanbap EDEXUtility.sendMessageAlertViz() signature changed.
|
||||
* Mar 18, 2013 1804 bsteffen Remove AlphanumericValues from radar
|
||||
* HDF5.
|
||||
* Mar 19, 2013 1804 bsteffen Cache db queries in radar decoder.
|
||||
* Mar 19, 2013 1804 bsteffen Optimize decoder performance.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -547,12 +545,11 @@ public class RadarDecoder extends AbstractDecoder {
|
|||
*/
|
||||
private void processSymbologyBlock(RadarRecord record,
|
||||
SymbologyBlock symbologyBlock) {
|
||||
|
||||
int errorCount = 0;
|
||||
|
||||
if (symbologyBlock == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
int packetsKept = 0;
|
||||
|
||||
List<Layer> packetsInLyrs = new ArrayList<Layer>();
|
||||
for (int layer = 0; layer < symbologyBlock.getNumLayers(); ++layer) {
|
||||
|
@ -589,20 +586,19 @@ public class RadarDecoder extends AbstractDecoder {
|
|||
}
|
||||
}
|
||||
}
|
||||
packetsKept += packets.size();
|
||||
lyr.setPackets(packets.toArray(new SymbologyPacket[packets.size()]));
|
||||
packetsInLyrs.add(lyr);
|
||||
|
||||
}
|
||||
|
||||
// remove the radial and raster from the symb block
|
||||
symbologyBlock.setLayers(packetsInLyrs.toArray(new Layer[packetsInLyrs
|
||||
.size()]));
|
||||
record.setSymbologyBlock(symbologyBlock);
|
||||
record.correlateSymbologyPackets();
|
||||
|
||||
if (errorCount > 0) {
|
||||
logger.error("Radar file contains " + errorCount
|
||||
+ " unrecognized symbology packet types.");
|
||||
// remove the radial and raster from the symb block, only keep it if
|
||||
// there are other packets.
|
||||
if (packetsKept > 0) {
|
||||
symbologyBlock.setLayers(packetsInLyrs
|
||||
.toArray(new Layer[packetsInLyrs.size()]));
|
||||
record.setSymbologyBlock(symbologyBlock);
|
||||
record.correlateSymbologyPackets();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -28,8 +28,8 @@ package com.raytheon.edex.plugin.radar.dao;
|
|||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* 02/06/09 1990 bphillip Initial creation
|
||||
* Mar 18, 2013 1804 bsteffen Remove AlphanumericValues from radar
|
||||
* HDF5.
|
||||
* Mar 18, 2013 1804 bsteffen Reduce useless data stored in radar hdf5
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author bphillip
|
||||
|
@ -43,12 +43,15 @@ import java.util.Map;
|
|||
import com.raytheon.uf.common.dataplugin.PluginDataObject;
|
||||
import com.raytheon.uf.common.dataplugin.PluginException;
|
||||
import com.raytheon.uf.common.dataplugin.persist.IPersistable;
|
||||
import com.raytheon.uf.common.dataplugin.radar.RadarDataKey;
|
||||
import com.raytheon.uf.common.dataplugin.radar.RadarDataPoint;
|
||||
import com.raytheon.uf.common.dataplugin.radar.RadarRecord;
|
||||
import com.raytheon.uf.common.dataplugin.radar.RadarStoredData;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.GSMBlock.GSMMessage;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.GraphicBlock;
|
||||
import com.raytheon.uf.common.dataplugin.radar.level3.SymbologyBlock;
|
||||
import com.raytheon.uf.common.dataplugin.radar.util.RadarConstants;
|
||||
import com.raytheon.uf.common.dataplugin.radar.util.RadarConstants.MapValues;
|
||||
import com.raytheon.uf.common.dataplugin.radar.util.RadarDataRetriever;
|
||||
import com.raytheon.uf.common.datastorage.IDataStore;
|
||||
import com.raytheon.uf.common.datastorage.StorageProperties;
|
||||
|
@ -135,10 +138,10 @@ public class RadarDao extends PluginDao {
|
|||
dataStore.addDataRecord(bdr, sp);
|
||||
}
|
||||
|
||||
if (radarRec.getSymbologyData() != null) {
|
||||
Map<RadarDataKey, RadarDataPoint> symData = radarRec.getSymbologyData();
|
||||
if (symData != null && !symData.isEmpty()) {
|
||||
byte[] data = DynamicSerializationManager.getManager(
|
||||
SerializationType.Thrift).serialize(
|
||||
radarRec.getSymbologyData());
|
||||
SerializationType.Thrift).serialize(symData);
|
||||
ByteDataRecord bdr = new ByteDataRecord(
|
||||
RadarStoredData.SYM_DATA_ID, radarRec.getDataURI(), data);
|
||||
bdr.setCorrelationObject(radarRec);
|
||||
|
@ -156,10 +159,11 @@ public class RadarDao extends PluginDao {
|
|||
dataStore.addDataRecord(bdr, sp);
|
||||
}
|
||||
|
||||
if (radarRec.getMapProductVals() != null) {
|
||||
Map<MapValues, Map<String, Map<MapValues, String>>> mapProdVals = radarRec
|
||||
.getMapProductVals();
|
||||
if (mapProdVals != null && !mapProdVals.isEmpty()) {
|
||||
byte[] data = DynamicSerializationManager.getManager(
|
||||
SerializationType.Thrift).serialize(
|
||||
radarRec.getMapProductVals());
|
||||
SerializationType.Thrift).serialize(mapProdVals);
|
||||
ByteDataRecord bdr = new ByteDataRecord(
|
||||
RadarStoredData.PRODUCT_VALS_ID, radarRec.getDataURI(),
|
||||
data);
|
||||
|
@ -186,19 +190,21 @@ public class RadarDao extends PluginDao {
|
|||
dataStore.addDataRecord(rec, sp);
|
||||
}
|
||||
|
||||
if (radarRec.getMapRecordVals() != null) {
|
||||
Map<MapValues, Map<MapValues, String>> mapRecVals = radarRec
|
||||
.getMapRecordVals();
|
||||
if (mapRecVals != null && !mapRecVals.isEmpty()) {
|
||||
byte[] data = DynamicSerializationManager.getManager(
|
||||
SerializationType.Thrift).serialize(
|
||||
radarRec.getMapRecordVals());
|
||||
SerializationType.Thrift).serialize(mapRecVals);
|
||||
ByteDataRecord bdr = new ByteDataRecord(
|
||||
RadarStoredData.RECORD_VALS_ID, radarRec.getDataURI(), data);
|
||||
bdr.setCorrelationObject(radarRec);
|
||||
dataStore.addDataRecord(bdr, sp);
|
||||
}
|
||||
|
||||
if (radarRec.getStormIDs() != null) {
|
||||
Map<String, RadarDataKey> stormIds = radarRec.getStormIDs();
|
||||
if (stormIds != null && !stormIds.isEmpty()) {
|
||||
byte[] data = DynamicSerializationManager.getManager(
|
||||
SerializationType.Thrift).serialize(radarRec.getStormIDs());
|
||||
SerializationType.Thrift).serialize(stormIds);
|
||||
ByteDataRecord bdr = new ByteDataRecord(
|
||||
RadarStoredData.STORM_IDS_ID, radarRec.getDataURI(), data);
|
||||
bdr.setCorrelationObject(radarRec);
|
||||
|
|
|
@ -56,8 +56,9 @@ import com.vividsolutions.jts.geom.Coordinate;
|
|||
* ------------ ---------- ----------- --------------------------
|
||||
* Aug 11, 2010 mnash Initial creation
|
||||
* Dec 28, 2011 11705 gzhang Fix SCAN missing Rows error
|
||||
* Mar 18, 2013 1804 bsteffen Remove AlphanumericValues from radar
|
||||
* HDF5.
|
||||
* Mar 19, 2013 1804 bsteffen Reduce useless data stored in radar hdf5
|
||||
* Mar 19, 2013 1804 bsteffen Remove empty data structures from radar
|
||||
* hdf5.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -86,9 +87,8 @@ public class RadarRecordUtil {
|
|||
.getTheText())) {
|
||||
Map<GraphicBlockValues, String> map = new HashMap<GraphicBlockValues, String>();
|
||||
Matcher m = RadarConstants.graphic_block_pattern
|
||||
.matcher(
|
||||
getNormalizedGBText( ((TextSymbolPacket) packets[j]).getTheText() )
|
||||
);
|
||||
.matcher(getNormalizedGBText(((TextSymbolPacket) packets[j])
|
||||
.getTheText()));
|
||||
if (m.find()) {
|
||||
String storm_id = m.group(1).trim();
|
||||
map.put(GraphicBlockValues.AZIMUTH, m
|
||||
|
@ -149,8 +149,7 @@ public class RadarRecordUtil {
|
|||
String property) {
|
||||
String rval = "";
|
||||
|
||||
for (RadarDataKey curLatLon : record.getSymbologyData()
|
||||
.keySet()) {
|
||||
for (RadarDataKey curLatLon : record.getSymbologyData().keySet()) {
|
||||
RadarDataPoint currPoint = record.getSymbologyData().get(curLatLon);
|
||||
|
||||
for (Integer type : currPoint.getDisplayGenericPointData().keySet()) {
|
||||
|
@ -170,8 +169,10 @@ public class RadarRecordUtil {
|
|||
/**
|
||||
* Get the GenericDataComponent.
|
||||
*
|
||||
* @param record The RadarRecord
|
||||
* @param featureId The featureId
|
||||
* @param record
|
||||
* The RadarRecord
|
||||
* @param featureId
|
||||
* The featureId
|
||||
*
|
||||
* @return The GenericDataComponent, or null if no matches
|
||||
*/
|
||||
|
@ -192,13 +193,15 @@ public class RadarRecordUtil {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public static List<String> getDMDFeatureIDs(RadarRecord record) {
|
||||
List<String> rval = new ArrayList<String>();
|
||||
|
||||
for (Layer layer : record.getSymbologyBlock().getLayers()) {
|
||||
for (SymbologyPacket packet : layer.getPackets())
|
||||
rval.addAll(((DMDPacket) packet).getFeatureIDs());
|
||||
SymbologyBlock sb = record.getSymbologyBlock();
|
||||
if (sb != null) {
|
||||
for (Layer layer : sb.getLayers()) {
|
||||
for (SymbologyPacket packet : layer.getPackets())
|
||||
rval.addAll(((DMDPacket) packet).getFeatureIDs());
|
||||
}
|
||||
}
|
||||
return rval;
|
||||
}
|
||||
|
@ -207,8 +210,7 @@ public class RadarRecordUtil {
|
|||
String featureId) {
|
||||
Coordinate rval = null;
|
||||
AreaComponent currFeature = null;
|
||||
for (RadarDataKey curLatLon : record.getSymbologyData()
|
||||
.keySet()) {
|
||||
for (RadarDataKey curLatLon : record.getSymbologyData().keySet()) {
|
||||
RadarDataPoint currPoint = record.getSymbologyData().get(curLatLon);
|
||||
|
||||
for (Integer type : currPoint.getDisplayGenericPointData().keySet()) {
|
||||
|
@ -419,17 +421,24 @@ public class RadarRecordUtil {
|
|||
return record.srmSourceName != null;
|
||||
}
|
||||
|
||||
private static final DHRValues[] ADAP32_VALUES = {
|
||||
DHRValues.BEAMWIDTH, DHRValues.BLOCKAGETHRESHOLD, DHRValues.CLUTTERTHRESHOLD, DHRValues.WEIGHTTHRESHOLD,
|
||||
DHRValues.FULLHYBRIDSCANTHRESH, DHRValues.LOWREFLTHRESHOLD, DHRValues.RAINDETREFLTHRESHOLD, DHRValues.RAINDETAREATHRESHOLD,
|
||||
DHRValues.RAINDETTIMETHRESHOLD, DHRValues.ZRMULTCOEFF, DHRValues.ZRPOWERCOEFF, DHRValues.MINREFLTORATE,
|
||||
DHRValues.MAXREFLTORATE, DHRValues.NUMEXCLZONE, DHRValues.RANGECUTOFF, DHRValues.RANGEEFFCOEFF1,
|
||||
DHRValues.RANGEEFFCOEFF2, DHRValues.RANGEEFFCOEFF3, DHRValues.MINPRECIPRATEINCL, DHRValues.MAXPRECIPRATEALLOW,
|
||||
DHRValues.THRESHELAPSEDTIME, DHRValues.MAXTIMEFORINTERP, DHRValues.MINTIMEHOURLYPERIOD, DHRValues.THRESHOLDHROUTLIER,
|
||||
DHRValues.ENDTIMEGAGEACCUM, DHRValues.MAXPERIODACCUMVAL, DHRValues.MAXHOURLYACCUMVAL, DHRValues.TIMEBIASEST,
|
||||
DHRValues.THRESHNOGAGERADAR, DHRValues.RESETBIASVALUE, DHRValues.LONGESTALLOWLAG, DHRValues.BIASAPPLIEDFLAG
|
||||
};
|
||||
|
||||
private static final DHRValues[] ADAP32_VALUES = { DHRValues.BEAMWIDTH,
|
||||
DHRValues.BLOCKAGETHRESHOLD, DHRValues.CLUTTERTHRESHOLD,
|
||||
DHRValues.WEIGHTTHRESHOLD, DHRValues.FULLHYBRIDSCANTHRESH,
|
||||
DHRValues.LOWREFLTHRESHOLD, DHRValues.RAINDETREFLTHRESHOLD,
|
||||
DHRValues.RAINDETAREATHRESHOLD, DHRValues.RAINDETTIMETHRESHOLD,
|
||||
DHRValues.ZRMULTCOEFF, DHRValues.ZRPOWERCOEFF,
|
||||
DHRValues.MINREFLTORATE, DHRValues.MAXREFLTORATE,
|
||||
DHRValues.NUMEXCLZONE, DHRValues.RANGECUTOFF,
|
||||
DHRValues.RANGEEFFCOEFF1, DHRValues.RANGEEFFCOEFF2,
|
||||
DHRValues.RANGEEFFCOEFF3, DHRValues.MINPRECIPRATEINCL,
|
||||
DHRValues.MAXPRECIPRATEALLOW, DHRValues.THRESHELAPSEDTIME,
|
||||
DHRValues.MAXTIMEFORINTERP, DHRValues.MINTIMEHOURLYPERIOD,
|
||||
DHRValues.THRESHOLDHROUTLIER, DHRValues.ENDTIMEGAGEACCUM,
|
||||
DHRValues.MAXPERIODACCUMVAL, DHRValues.MAXHOURLYACCUMVAL,
|
||||
DHRValues.TIMEBIASEST, DHRValues.THRESHNOGAGERADAR,
|
||||
DHRValues.RESETBIASVALUE, DHRValues.LONGESTALLOWLAG,
|
||||
DHRValues.BIASAPPLIEDFLAG };
|
||||
|
||||
public static Map<DHRValues, Double> getDHRValues(RadarRecord record) {
|
||||
Map<DHRValues, Double> map = new HashMap<DHRValues, Double>();
|
||||
String text = null;
|
||||
|
@ -458,11 +467,11 @@ public class RadarRecordUtil {
|
|||
boolean biasApplied = false;
|
||||
double biasCalculated = 1.0;
|
||||
Integer flagZeroHybrid = null;
|
||||
|
||||
|
||||
String[] v = new String[nv];
|
||||
for (vi = 0; vi < nv; ++vi)
|
||||
v[vi] = text.substring(vi * 8, (vi+1) * 8);
|
||||
|
||||
v[vi] = text.substring(vi * 8, (vi + 1) * 8);
|
||||
|
||||
vi = 0;
|
||||
while (vi < nv) {
|
||||
String s = v[vi++];
|
||||
|
@ -477,10 +486,12 @@ public class RadarRecordUtil {
|
|||
while (vi < nv) {
|
||||
s = v[vi++];
|
||||
if (s.equals("SUPL(15)")) {
|
||||
/* // average scan date/time are never used...
|
||||
map.put(DHRValues.AVGSCANDATE, parseDHRValue(text, vi + 0));
|
||||
map.put(DHRValues.AVGSCANTIME, parseDHRValue(text, vi + 1));
|
||||
*/
|
||||
/*
|
||||
* // average scan date/time are never used...
|
||||
* map.put(DHRValues.AVGSCANDATE, parseDHRValue(text, vi
|
||||
* + 0)); map.put(DHRValues.AVGSCANTIME,
|
||||
* parseDHRValue(text, vi + 1));
|
||||
*/
|
||||
flagZeroHybrid = (int) parseDHRValue(v[vi + 2]);
|
||||
if (flagZeroHybrid != 0 && flagZeroHybrid != 1)
|
||||
flagZeroHybrid = 0; // should print warning
|
||||
|
@ -491,7 +502,8 @@ public class RadarRecordUtil {
|
|||
}
|
||||
}
|
||||
} else if (s.equals("ADAP(38)")) {
|
||||
// Don't have documentation for older formats, so copying logic from A1 decodeDHR.C.
|
||||
// Don't have documentation for older formats, so copying logic
|
||||
// from A1 decodeDHR.C.
|
||||
map.put(DHRValues.ZRMULTCOEFF, parseDHRValue(v[vi + 9]));
|
||||
map.put(DHRValues.ZRPOWERCOEFF, parseDHRValue(v[vi + 10]));
|
||||
map.put(DHRValues.MAXPRECIPRATEALLOW, parseDHRValue(v[vi + 25]));
|
||||
|
@ -523,12 +535,12 @@ public class RadarRecordUtil {
|
|||
}
|
||||
if (flagZeroHybrid != null)
|
||||
map.put(DHRValues.FLAGZEROHYBRID, (double) flagZeroHybrid);
|
||||
if (! biasApplied) {
|
||||
if (!biasApplied) {
|
||||
biasCalculated = 1.0;
|
||||
}
|
||||
map.put(DHRValues.BIAS, biasCalculated);
|
||||
|
||||
// Also include logic from A1 FFMPContainer::read(), FFMP_ORPG case
|
||||
|
||||
// Also include logic from A1 FFMPContainer::read(), FFMP_ORPG case
|
||||
boolean havePrecip;
|
||||
if (flagZeroHybrid == null) {
|
||||
havePrecip = precipCat > 0;
|
||||
|
@ -537,11 +549,11 @@ public class RadarRecordUtil {
|
|||
}
|
||||
map.put(DHRValues.HAVE_PRECIP, havePrecip ? 1.0 : 0);
|
||||
map.put(DHRValues.BIAS_TO_USE, havePrecip ? biasCalculated : 1.0);
|
||||
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
private static double parseDHRValue(String text) {
|
||||
private static double parseDHRValue(String text) {
|
||||
String s = text.trim();
|
||||
if (s.equals("T"))
|
||||
return 1;
|
||||
|
@ -550,8 +562,8 @@ public class RadarRecordUtil {
|
|||
else
|
||||
return Double.parseDouble(s);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
/**
|
||||
* DR#11705: SCAN missing row(s) comparing to radar Comb Att Table.
|
||||
*
|
||||
* Error cause: RadarConstants.GRAPHIC_BLOCK as a Regular Expression
|
||||
|
@ -564,27 +576,28 @@ public class RadarRecordUtil {
|
|||
* @param : Graphic Block Text that may contain ">" and/or "<".
|
||||
* @return: String with ">" and/or "<" replaced by space.
|
||||
*/
|
||||
private static String getNormalizedGBText(String text){
|
||||
|
||||
if(text == null || text.isEmpty() || ( (! text.contains(">")) && (! text.contains("<")) ) )
|
||||
return text;
|
||||
|
||||
/*
|
||||
* contains only ">"
|
||||
*/
|
||||
if( ! text.contains("<") )
|
||||
return text.replaceAll(">", " ");
|
||||
|
||||
/*
|
||||
* contains only "<"
|
||||
*/
|
||||
if( ! text.contains(">") )
|
||||
return text.replaceAll("<", " ");
|
||||
|
||||
/*
|
||||
* contains both "<" and ">"
|
||||
*/
|
||||
return text.replaceAll(">"," ").replaceAll("<", " ");
|
||||
|
||||
private static String getNormalizedGBText(String text) {
|
||||
|
||||
if (text == null || text.isEmpty()
|
||||
|| ((!text.contains(">")) && (!text.contains("<"))))
|
||||
return text;
|
||||
|
||||
/*
|
||||
* contains only ">"
|
||||
*/
|
||||
if (!text.contains("<"))
|
||||
return text.replaceAll(">", " ");
|
||||
|
||||
/*
|
||||
* contains only "<"
|
||||
*/
|
||||
if (!text.contains(">"))
|
||||
return text.replaceAll("<", " ");
|
||||
|
||||
/*
|
||||
* contains both "<" and ">"
|
||||
*/
|
||||
return text.replaceAll(">", " ").replaceAll("<", " ");
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue