Merge branch 'asm_14.2.2' into master_14.2.2
Former-commit-id:905728d2fb
[formerly3598f7b549
[formerly 96ff2234e0d8893695b33a79d24a026a1a409073]] Former-commit-id:3598f7b549
Former-commit-id:eeca2f2ec8
This commit is contained in:
commit
a9cf7e9951
13 changed files with 1402 additions and 1435 deletions
|
@ -26,7 +26,10 @@
|
||||||
<loadProperties>
|
<loadProperties>
|
||||||
<capabilities>
|
<capabilities>
|
||||||
<capability xsi:type="colorableCapability" colorAsString="#9b9b9b" />
|
<capability xsi:type="colorableCapability" colorAsString="#9b9b9b" />
|
||||||
<capability xsi:type="outlineCapability" lineStyle="SOLID" outlineOn="true" />
|
<capability xsi:type="pointCapability" pointStyle="NONE" />
|
||||||
|
<capability xsi:type="labelableCapability" labelField="id" />
|
||||||
|
<capability xsi:type="magnificationCapability" magnification="1.0" />
|
||||||
|
<capability xsi:type="densityCapability" density="1.0" />
|
||||||
</capabilities>
|
</capabilities>
|
||||||
<resourceType>PLAN_VIEW</resourceType>
|
<resourceType>PLAN_VIEW</resourceType>
|
||||||
</loadProperties>
|
</loadProperties>
|
||||||
|
@ -37,7 +40,23 @@
|
||||||
<capabilities>
|
<capabilities>
|
||||||
<capability xsi:type="colorableCapability" colorAsString="#9b9b9b" />
|
<capability xsi:type="colorableCapability" colorAsString="#9b9b9b" />
|
||||||
<capability xsi:type="labelableCapability" labelField="name" />
|
<capability xsi:type="labelableCapability" labelField="name" />
|
||||||
<capability xsi:type="outlineCapability" lineStyle="SOLID" outlineOn="true"
|
</capabilities>
|
||||||
|
<resourceType>PLAN_VIEW</resourceType>
|
||||||
|
</loadProperties>
|
||||||
|
<properties isSystemResource="false" isBlinking="false" isMapLayer="true" isHoverOn="false" isVisible="true">
|
||||||
|
<pdProps maxDisplayWidth="100000000" minDisplayWidth="0" />
|
||||||
|
</properties>
|
||||||
|
<resourceData xsi:type="lpiResourceData">
|
||||||
|
<filename>cities.lpi</filename>
|
||||||
|
<mapName>Cities</mapName>
|
||||||
|
</resourceData>
|
||||||
|
</resource>
|
||||||
|
<mapName>Cities</mapName>
|
||||||
|
<resource>
|
||||||
|
<loadProperties>
|
||||||
|
<capabilities>
|
||||||
|
<capability xsi:type="colorableCapability" colorAsString="#9b9b9b" />
|
||||||
|
<capability xsi:type="labelableCapability" labelField="name" />
|
||||||
outlineWidth="1" />
|
outlineWidth="1" />
|
||||||
</capabilities>
|
</capabilities>
|
||||||
<resourceType>PLAN_VIEW</resourceType>
|
<resourceType>PLAN_VIEW</resourceType>
|
||||||
|
@ -51,27 +70,10 @@
|
||||||
<mapName>Cities</mapName>
|
<mapName>Cities</mapName>
|
||||||
</resourceData>
|
</resourceData>
|
||||||
</resource>
|
</resource>
|
||||||
<resource>
|
|
||||||
<loadProperties>
|
|
||||||
<capabilities>
|
|
||||||
<capability xsi:type="colorableCapability" colorAsString="#9b9b9b" />
|
|
||||||
<capability xsi:type="labelableCapability" labelField="name" />
|
|
||||||
<capability xsi:type="outlineCapability" lineStyle="SOLID" outlineOn="true" outlineWidth="1" />
|
|
||||||
</capabilities>
|
|
||||||
<resourceType>PLAN_VIEW</resourceType>
|
|
||||||
</loadProperties>
|
|
||||||
<properties isSystemResource="false" isBlinking="false" isMapLayer="true" isHoverOn="false" isVisible="true">
|
|
||||||
<pdProps maxDisplayWidth="100000000" minDisplayWidth="0" />
|
|
||||||
</properties>
|
|
||||||
<resourceData xsi:type="lpiResourceData">
|
|
||||||
<filename>cities.lpi</filename>
|
|
||||||
<mapName>Cities</mapName>
|
|
||||||
</resourceData>
|
|
||||||
</resource>
|
|
||||||
<mapName>Cities</mapName>
|
|
||||||
</resourceData>
|
</resourceData>
|
||||||
</resource>
|
</resource>
|
||||||
</descriptor>
|
</descriptor>
|
||||||
</displays>
|
</displays>
|
||||||
</displayList>
|
</displayList>
|
||||||
</bundle>
|
</bundle>
|
||||||
|
|
||||||
|
|
|
@ -235,6 +235,7 @@ import com.raytheon.viz.ui.dialogs.ICloseCallback;
|
||||||
* 02/19/2014 16980 zhao add code to ensure the Alt flag is false after the Alt kay is released
|
* 02/19/2014 16980 zhao add code to ensure the Alt flag is false after the Alt kay is released
|
||||||
* 09Apr2014 #3005 lvenable Added calls to mark the tabs as not current when the tabs are changed.
|
* 09Apr2014 #3005 lvenable Added calls to mark the tabs as not current when the tabs are changed.
|
||||||
* This will show the tab as updating in the header and data text controls.
|
* This will show the tab as updating in the header and data text controls.
|
||||||
|
* 07/23/2014 15645 zhao modified checkBasicSyntaxError()
|
||||||
*
|
*
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
|
@ -2109,19 +2110,29 @@ public class TafViewerEditorDlg extends CaveSWTDialog implements ITafSettable,
|
||||||
return editorComp;
|
return editorComp;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Check if there is an extra '=' sign in a TAF
|
||||||
*
|
*
|
||||||
* @param doLogMessage
|
* @param doLogMessage
|
||||||
* @return true if error found, otherwise false
|
* @return true if error found, otherwise false
|
||||||
*/
|
*/
|
||||||
private boolean checkBasicSyntaxError(boolean doLogMessage) {
|
private boolean checkBasicSyntaxError(boolean doLogMessage) {
|
||||||
|
|
||||||
|
boolean errorFound = false;
|
||||||
|
|
||||||
String in = editorTafTabComp.getTextEditorControl().getText();
|
String in = editorTafTabComp.getTextEditorControl().getText();
|
||||||
|
|
||||||
clearSyntaxErrorLevel();
|
clearSyntaxErrorLevel();
|
||||||
|
|
||||||
st = editorTafTabComp.getTextEditorControl();
|
st = editorTafTabComp.getTextEditorControl();
|
||||||
|
|
||||||
|
in = in.toUpperCase().replaceAll("TAF", "\n\nTAF").trim();
|
||||||
|
while ( in.contains("\n\n\n") ) {
|
||||||
|
in = in.replace("\n\n\n", "\n\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
st.setText(in);
|
||||||
|
|
||||||
final Map<StyleRange, String> syntaxMap = new HashMap<StyleRange, String>();
|
final Map<StyleRange, String> syntaxMap = new HashMap<StyleRange, String>();
|
||||||
|
|
||||||
st.addMouseTrackListener(new MouseTrackAdapter() {
|
st.addMouseTrackListener(new MouseTrackAdapter() {
|
||||||
|
@ -2153,66 +2164,36 @@ public class TafViewerEditorDlg extends CaveSWTDialog implements ITafSettable,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
int tafIndex = in.indexOf("TAF");
|
String msg = "Syntax error: There is an extra '=' sign or 'TAF' is missing at beginning of TAF";
|
||||||
int equalSignIndex = in.indexOf("=");
|
String[] tafs = in.split("\n\n");
|
||||||
int lastEqualSignIndex = equalSignIndex;
|
int tafStartIndex = 0;
|
||||||
|
for ( String taf : tafs ) {
|
||||||
if (tafIndex < 0 && equalSignIndex < 0) { // empty TAF
|
int firstEqualSignIndex = taf.indexOf('=');
|
||||||
return false;
|
if ( firstEqualSignIndex == -1 ) {
|
||||||
}
|
tafStartIndex += taf.length() + 2;
|
||||||
|
continue;
|
||||||
while (tafIndex > -1 || equalSignIndex > -1) {
|
|
||||||
|
|
||||||
if (tafIndex == -1 || tafIndex > equalSignIndex) {
|
|
||||||
|
|
||||||
int lineIndexOfFirstEqualSign = st
|
|
||||||
.getLineAtOffset(lastEqualSignIndex);
|
|
||||||
int lineIndexOfSecondEqualSign = st
|
|
||||||
.getLineAtOffset(equalSignIndex);
|
|
||||||
if (lineIndexOfFirstEqualSign == lineIndexOfSecondEqualSign) {
|
|
||||||
StyleRange sr = new StyleRange(lastEqualSignIndex, 1, null,
|
|
||||||
qcColors[3]);
|
|
||||||
String msg = "Syntax error: there is an extra '=' sign in this line";
|
|
||||||
syntaxMap.put(sr, msg);
|
|
||||||
st.setStyleRange(null);
|
|
||||||
st.setStyleRange(sr);
|
|
||||||
if (doLogMessage) {
|
|
||||||
msgStatComp.setMessageText(msg, qcColors[3].getRGB());
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
int startIndex = lastEqualSignIndex;
|
|
||||||
|
|
||||||
while (!in.substring(startIndex, startIndex + 1).matches(
|
|
||||||
"[A-Z]")
|
|
||||||
&& !in.substring(startIndex, startIndex + 1).matches(
|
|
||||||
"[0-9]")) {
|
|
||||||
startIndex++;
|
|
||||||
}
|
|
||||||
int length = 6;
|
|
||||||
if ((equalSignIndex - startIndex) < 6) {
|
|
||||||
length = equalSignIndex - startIndex;
|
|
||||||
}
|
|
||||||
StyleRange sr = new StyleRange(startIndex, length, null,
|
|
||||||
qcColors[3]);
|
|
||||||
String msg = "Syntax error: There is an extra '=' sign before this point, or 'TAF' is missing at beginning of TAF";
|
|
||||||
syntaxMap.put(sr, msg);
|
|
||||||
st.setStyleRange(null);
|
|
||||||
st.setStyleRange(sr);
|
|
||||||
if (doLogMessage) {
|
|
||||||
msgStatComp.setMessageText(msg, qcColors[3].getRGB());
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
int secondEqualSignIndex = taf.indexOf('=', firstEqualSignIndex+1);
|
||||||
tafIndex = in.indexOf("TAF", tafIndex + 1);
|
if ( secondEqualSignIndex == -1 ) {
|
||||||
lastEqualSignIndex = equalSignIndex;
|
tafStartIndex += taf.length() + 2;
|
||||||
equalSignIndex = in.indexOf("=", equalSignIndex + 1);
|
continue;
|
||||||
|
}
|
||||||
|
while ( secondEqualSignIndex > -1 ) {
|
||||||
|
int secondEqualSignIndexInEditorText = tafStartIndex + secondEqualSignIndex;
|
||||||
|
StyleRange sr = new StyleRange(secondEqualSignIndexInEditorText, 1, null, qcColors[3]);
|
||||||
|
syntaxMap.put(sr, msg);
|
||||||
|
st.setStyleRange(sr);
|
||||||
|
secondEqualSignIndex = taf.indexOf('=', secondEqualSignIndex+1);
|
||||||
|
}
|
||||||
|
errorFound = true;
|
||||||
|
tafStartIndex += taf.length() + 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
if ( doLogMessage ) {
|
||||||
|
msgStatComp.setMessageText(msg, qcColors[3].getRGB());
|
||||||
|
}
|
||||||
|
|
||||||
|
return errorFound;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void syntaxCheck() {
|
private void syntaxCheck() {
|
||||||
|
|
|
@ -88,6 +88,7 @@ import com.vividsolutions.jts.precision.SimpleGeometryPrecisionReducer;
|
||||||
* 05/16/2014 DR 17365 D. Friedman Prevent some Coordinate reuse. Add reducePrecision.
|
* 05/16/2014 DR 17365 D. Friedman Prevent some Coordinate reuse. Add reducePrecision.
|
||||||
* 06/27/2014 DR 17443 D. Friedman Fix some odd cases in which parts of a polygon not covering a
|
* 06/27/2014 DR 17443 D. Friedman Fix some odd cases in which parts of a polygon not covering a
|
||||||
* hatched area would be retained after redrawing.
|
* hatched area would be retained after redrawing.
|
||||||
|
* 07/22/2014 DR 17475 Qinglu Lin Updated createPolygonByPoints() and created second createPolygonByPoints().
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @author mschenke
|
* @author mschenke
|
||||||
|
@ -1718,11 +1719,11 @@ public class PolygonUtil {
|
||||||
}
|
}
|
||||||
return slope;
|
return slope;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a polygon whose two diagonal coordinates are a and b.
|
* Create a polygon whose two diagonal coordinates are a and b.
|
||||||
**/
|
**/
|
||||||
static public Geometry createPolygonByPoints(Coordinate a, Coordinate b) {
|
static public Geometry createPolygonByPoints(GeometryFactory gf, Coordinate a, Coordinate b) {
|
||||||
double maxX, minX, maxY, minY;
|
double maxX, minX, maxY, minY;
|
||||||
maxX = Math.max(a.x, b.x);
|
maxX = Math.max(a.x, b.x);
|
||||||
minX = Math.min(a.x, b.x);
|
minX = Math.min(a.x, b.x);
|
||||||
|
@ -1734,10 +1735,14 @@ public class PolygonUtil {
|
||||||
coord[2] = new Coordinate(maxX, maxY);
|
coord[2] = new Coordinate(maxX, maxY);
|
||||||
coord[3] = new Coordinate(minX, maxY);
|
coord[3] = new Coordinate(minX, maxY);
|
||||||
coord[4] = new Coordinate(coord[0]);
|
coord[4] = new Coordinate(coord[0]);
|
||||||
GeometryFactory gf = new GeometryFactory();
|
|
||||||
LinearRing lr = gf.createLinearRing(coord);
|
LinearRing lr = gf.createLinearRing(coord);
|
||||||
return gf.createPolygon(lr, null);
|
return gf.createPolygon(lr, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static public Geometry createPolygonByPoints(GeometryFactory gf, Coordinate a, double shift) {
|
||||||
|
Coordinate b = new Coordinate(a.x + shift, a.y + shift);
|
||||||
|
return createPolygonByPoints(gf, a, b);
|
||||||
|
}
|
||||||
|
|
||||||
/** Creates a copy of a Geometry with reduced precision to reduce the chance of topology errors when used
|
/** Creates a copy of a Geometry with reduced precision to reduce the chance of topology errors when used
|
||||||
* in intersection operations.
|
* in intersection operations.
|
||||||
|
|
|
@ -210,6 +210,8 @@ import com.vividsolutions.jts.io.WKTReader;
|
||||||
* 04/28,2014 3033 jsanchez Properly handled back up configuration (*.xml) files. Set backupSite to null when backup site is not selected.
|
* 04/28,2014 3033 jsanchez Properly handled back up configuration (*.xml) files. Set backupSite to null when backup site is not selected.
|
||||||
* 05/16/2014 DR 17365 D. Friedman Check if moved vertex results in polygon valid in both lat/lon and local coordinates.
|
* 05/16/2014 DR 17365 D. Friedman Check if moved vertex results in polygon valid in both lat/lon and local coordinates.
|
||||||
* 07/01/2014 DR 17450 D. Friedman Use list of templates from backup site.
|
* 07/01/2014 DR 17450 D. Friedman Use list of templates from backup site.
|
||||||
|
* 07/28/2014 DR 17475 Qinglu Lin Updated populateStrings() and findLargestQuadrant(), removed findLargestGeometry(),
|
||||||
|
* added createAreaAndCentroidMaps() and movePopulatePt(), updated paintText() to center W.
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @author mschenke
|
* @author mschenke
|
||||||
|
@ -222,6 +224,9 @@ public class WarngenLayer extends AbstractStormTrackResource {
|
||||||
|
|
||||||
String uniqueFip = null;
|
String uniqueFip = null;
|
||||||
|
|
||||||
|
Map<String, Double> geomArea = new HashMap<String, Double>();
|
||||||
|
Map<String, Point> geomCentroid = new HashMap<String, Point>();
|
||||||
|
|
||||||
private static class GeospatialDataList {
|
private static class GeospatialDataList {
|
||||||
|
|
||||||
private static final String LOCAL_GEOM = "localGeometry";
|
private static final String LOCAL_GEOM = "localGeometry";
|
||||||
|
@ -1087,6 +1092,8 @@ public class WarngenLayer extends AbstractStormTrackResource {
|
||||||
DrawableString string = new DrawableString(text, textColor);
|
DrawableString string = new DrawableString(text, textColor);
|
||||||
string.magnification = magnification;
|
string.magnification = magnification;
|
||||||
string.setCoordinates(out[0], out[1]);
|
string.setCoordinates(out[0], out[1]);
|
||||||
|
string.horizontalAlignment = IGraphicsTarget.HorizontalAlignment.CENTER;
|
||||||
|
string.verticallAlignment = IGraphicsTarget.VerticalAlignment.MIDDLE;
|
||||||
strings.add(string);
|
strings.add(string);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1170,6 +1177,8 @@ public class WarngenLayer extends AbstractStormTrackResource {
|
||||||
}// end synchronize
|
}// end synchronize
|
||||||
customMaps.loadCustomMaps(Arrays.asList(config.getMaps()));
|
customMaps.loadCustomMaps(Arrays.asList(config.getMaps()));
|
||||||
|
|
||||||
|
createAreaAndCentroidMaps();
|
||||||
|
|
||||||
this.configuration = config;
|
this.configuration = config;
|
||||||
System.out.println("Total time to init warngen config = "
|
System.out.println("Total time to init warngen config = "
|
||||||
+ (System.currentTimeMillis() - t0) + "ms");
|
+ (System.currentTimeMillis() - t0) + "ms");
|
||||||
|
@ -3169,66 +3178,127 @@ public class WarngenLayer extends AbstractStormTrackResource {
|
||||||
toKeep.toArray(new Geometry[0]));
|
toKeep.toArray(new Geometry[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void createAreaAndCentroidMaps() {
|
||||||
|
String gid;
|
||||||
|
geomArea.clear();
|
||||||
|
geomCentroid.clear();
|
||||||
|
for (GeospatialData f : geoData.features) {
|
||||||
|
Geometry geom = f.getGeometry();
|
||||||
|
gid = ((CountyUserData)geom.getUserData()).gid;
|
||||||
|
geomArea.put(gid, geom.getArea());
|
||||||
|
geomCentroid.put(gid, geom.getCentroid());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Populate the W strings with the included counties
|
* Populate the W strings with the included counties
|
||||||
*/
|
*/
|
||||||
private void populateStrings() {
|
private void populateStrings() {
|
||||||
state.strings.clear();
|
state.strings.clear();
|
||||||
|
Geometry warningArea = state.getWarningArea();
|
||||||
Set<String> prefixes = new HashSet<String>(Arrays.asList(GeometryUtil
|
Set<String> prefixes = new HashSet<String>(Arrays.asList(GeometryUtil
|
||||||
.getGID(state.getWarningArea())));
|
.getGID(warningArea)));
|
||||||
|
|
||||||
prefixes = removeDuplicateGid(prefixes);
|
prefixes = removeDuplicateGid(prefixes);
|
||||||
|
|
||||||
for (GeospatialData f : geoData.features) {
|
Set<Integer> indexes = new HashSet<Integer>();
|
||||||
Geometry geom = f.geometry;
|
String prefixM, prefixN;
|
||||||
Geometry geom2 = null;
|
double areaM, areaN, maxArea = -1.0;
|
||||||
Geometry warningAreaN = null;
|
int geomIndex = -1;
|
||||||
Coordinate populatePt = null;
|
int geomNum = warningArea.getNumGeometries();
|
||||||
Geometry populatePtGeom;
|
// Find an unique index for each county in warningArea. If there is more than one index
|
||||||
boolean contained = false, closeTo = false;
|
// for one county, find the one with max area.
|
||||||
double shift = 1.E-8, distance, minDistance = 10.0;
|
Geometry warningAreaM = null, warningAreaN = null;
|
||||||
int loop, maxLoop = 10;
|
for (int i = 0; i < geomNum; i++) {
|
||||||
Geometry warningArea = state.getWarningArea();
|
warningAreaM = warningArea.getGeometryN(i);
|
||||||
String prefix = GeometryUtil.getPrefix(geom.getUserData());
|
prefixM = GeometryUtil.getPrefix(warningAreaM.getUserData());
|
||||||
if (prefixes.contains(prefix)) {
|
if (!prefixes.contains(prefixM)) {
|
||||||
loop = 0;
|
continue;
|
||||||
warningAreaN = findLargestGeometry(GeometryUtil.intersection(geom, warningArea));
|
}
|
||||||
do {
|
areaM = warningAreaM.getArea();
|
||||||
if (!warningAreaN.isEmpty()) {
|
geomIndex = i;
|
||||||
populatePt = GisUtil.d2dCoordinate(warningAreaN.getCentroid()
|
while (i + 1 < geomNum) {
|
||||||
.getCoordinate());
|
warningAreaN = warningArea.getGeometryN(i + 1);
|
||||||
for (GeospatialData f2 : geoData.features) {
|
prefixN = GeometryUtil.getPrefix(warningAreaN.getUserData());
|
||||||
geom2 = f2.getGeometry();
|
if (prefixN.equals(prefixM)) {
|
||||||
if (!GeometryUtil.getPrefix(geom2.getUserData()).equals(prefix)) {
|
areaN = warningAreaN.getArea();
|
||||||
contained = false;
|
if (areaN > areaM) {
|
||||||
closeTo = false;
|
if (areaN > maxArea) {
|
||||||
populatePtGeom = PolygonUtil.createPolygonByPoints(populatePt,
|
maxArea = areaN;
|
||||||
new Coordinate(populatePt.x + shift, populatePt.y + shift));
|
geomIndex = i + 1;
|
||||||
if (GeometryUtil.contains(geom2, populatePtGeom)) {
|
|
||||||
// populatePt is in another county/zone.
|
|
||||||
warningAreaN = findLargestQuadrant(warningAreaN, geom);
|
|
||||||
contained = true;
|
|
||||||
break;
|
|
||||||
} else {
|
|
||||||
distance = populatePtGeom.distance(geom2);
|
|
||||||
if (distance < minDistance) {
|
|
||||||
// populatePt is very close to the boundary of another county/zone.
|
|
||||||
warningAreaN = findLargestQuadrant(warningAreaN, geom);
|
|
||||||
closeTo = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// use the existing populatePt
|
if (areaM > maxArea) {
|
||||||
break;
|
maxArea = areaM;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
loop += 1;
|
} else {
|
||||||
} while ((contained || closeTo) && loop <= maxLoop);
|
break;
|
||||||
state.strings.put(populatePt, "W");
|
}
|
||||||
|
i = i + 1;
|
||||||
}
|
}
|
||||||
|
indexes.add(geomIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Map<String, Coordinate> populatePtMap = new HashMap<String, Coordinate>();
|
||||||
|
GeometryFactory gf = new GeometryFactory();
|
||||||
|
Geometry geomN = null, populatePtGeom = null;
|
||||||
|
Coordinate populatePt = new Coordinate();
|
||||||
|
Point centroid = null;
|
||||||
|
int loop, maxLoop = 10;
|
||||||
|
double threshold = 0.1, weight = 0.5, shift = 1.E-8, minArea = 1.0E-2, area;
|
||||||
|
Iterator<Integer> iter = indexes.iterator();
|
||||||
|
while (iter.hasNext()) {
|
||||||
|
warningAreaM = warningArea.getGeometryN(iter.next().intValue());
|
||||||
|
prefixM = GeometryUtil.getPrefix(warningAreaM.getUserData());
|
||||||
|
area = warningAreaM.getArea();
|
||||||
|
if (area < minArea || area / geomArea.get(prefixM) < threshold) {
|
||||||
|
// Hatched area inside a county is small, move W toward to default centroid
|
||||||
|
centroid = movePopulatePt(gf, warningAreaM, geomCentroid.get(prefixM), weight);
|
||||||
|
populatePt = new Coordinate(centroid.getX(), centroid.getY());
|
||||||
|
populatePtGeom = PolygonUtil.createPolygonByPoints(gf, populatePt, shift);
|
||||||
|
} else {
|
||||||
|
// Use the controid of the hatched area in a county
|
||||||
|
centroid = warningAreaM.getCentroid();
|
||||||
|
populatePt = new Coordinate(centroid.getX(), centroid.getY());
|
||||||
|
populatePtGeom = PolygonUtil.createPolygonByPoints(gf, populatePt, shift);
|
||||||
|
}
|
||||||
|
for (GeospatialData gd : geoData.features) {
|
||||||
|
geomN = gd.getGeometry();
|
||||||
|
CountyUserData cud = (CountyUserData)geomN.getUserData();
|
||||||
|
prefixN = cud.gid;
|
||||||
|
if (prefixN.length() > 0 && prefixM.length() > 0 &&
|
||||||
|
!prefixN.equals(prefixM)) {
|
||||||
|
if (GeometryUtil.contains(geomN, populatePtGeom)) {
|
||||||
|
// W is inside a county. Use default centroid of a county (not that of its hatched area)
|
||||||
|
centroid = geomCentroid.get(prefixM);
|
||||||
|
populatePt = new Coordinate(centroid.getX(), centroid.getY());
|
||||||
|
populatePtGeom = PolygonUtil.createPolygonByPoints(gf, populatePt, shift);
|
||||||
|
}
|
||||||
|
loop = 1;
|
||||||
|
while (GeometryUtil.contains(geomN, populatePtGeom) && loop < maxLoop) {
|
||||||
|
// W is still inside a county, move W to the largest quadrant
|
||||||
|
warningAreaM = findLargestQuadrant(gf, warningAreaM);
|
||||||
|
centroid = warningAreaM.getCentroid();
|
||||||
|
populatePt = new Coordinate(centroid.getX(), centroid.getY());
|
||||||
|
populatePtGeom = PolygonUtil.createPolygonByPoints(gf, populatePt, shift);
|
||||||
|
loop += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
populatePtMap.put(prefixM, populatePt);
|
||||||
|
}
|
||||||
|
for (String key: populatePtMap.keySet()) {
|
||||||
|
state.strings.put(populatePtMap.get(key), "W");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Point movePopulatePt(GeometryFactory gf, Geometry geom, Point point, double weight) {
|
||||||
|
Point centroid = geom.getCentroid();
|
||||||
|
Coordinate coord = new Coordinate();
|
||||||
|
coord.x = centroid.getX() * weight + point.getX() * (1.0 - weight);
|
||||||
|
coord.y = centroid.getY() * weight + point.getY() * (1.0 - weight);
|
||||||
|
return gf.createPoint(new Coordinate(coord.x, coord.y));
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean featureProduct(Coordinate c) {
|
public boolean featureProduct(Coordinate c) {
|
||||||
|
@ -3504,21 +3574,6 @@ public class WarngenLayer extends AbstractStormTrackResource {
|
||||||
* A Geometry or a GeometryCollection.
|
* A Geometry or a GeometryCollection.
|
||||||
* @return Geometry
|
* @return Geometry
|
||||||
*/
|
*/
|
||||||
private Geometry findLargestGeometry(Geometry g) {
|
|
||||||
int size = g.getNumGeometries();
|
|
||||||
if (size == 1)
|
|
||||||
return g;
|
|
||||||
double area, maxArea = -1.0;
|
|
||||||
int index = 0;
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
area = g.getGeometryN(i).getArea();
|
|
||||||
if (area > maxArea) {
|
|
||||||
maxArea = area;
|
|
||||||
index = i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return g.getGeometryN(index);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Split the hatched area into four quadrants, and return the largest one.
|
* Split the hatched area into four quadrants, and return the largest one.
|
||||||
|
@ -3529,10 +3584,10 @@ public class WarngenLayer extends AbstractStormTrackResource {
|
||||||
* The geometry of a county/zone.
|
* The geometry of a county/zone.
|
||||||
* @return Geometry
|
* @return Geometry
|
||||||
* The geometey of largest quadrant among the four, which are the result of
|
* The geometey of largest quadrant among the four, which are the result of
|
||||||
* splitting of hatchedArea.
|
* splitting of a county's hatched area.
|
||||||
*/
|
*/
|
||||||
private Geometry findLargestQuadrant(Geometry hatchedArea, Geometry geom) {
|
private Geometry findLargestQuadrant(GeometryFactory gf, Geometry geom) {
|
||||||
Geometry envelope = hatchedArea.getEnvelope();
|
Geometry envelope = geom.getEnvelope();
|
||||||
Coordinate centroidCoord = GisUtil.d2dCoordinate(envelope.getCentroid()
|
Coordinate centroidCoord = GisUtil.d2dCoordinate(envelope.getCentroid()
|
||||||
.getCoordinate());
|
.getCoordinate());
|
||||||
Coordinate[] envCoords = envelope.getCoordinates();
|
Coordinate[] envCoords = envelope.getCoordinates();
|
||||||
|
@ -3542,19 +3597,23 @@ public class WarngenLayer extends AbstractStormTrackResource {
|
||||||
double largestArea = -1.0, area = -1.0;
|
double largestArea = -1.0, area = -1.0;
|
||||||
int index = -1;
|
int index = -1;
|
||||||
for (int i = 0; i < size; i++) {
|
for (int i = 0; i < size; i++) {
|
||||||
quadrants[i] = PolygonUtil.createPolygonByPoints(envCoords[i], centroidCoord);
|
quadrants[i] = PolygonUtil.createPolygonByPoints(gf, envCoords[i], centroidCoord);
|
||||||
intersections[i] = GeometryUtil.intersection(quadrants[i], hatchedArea);
|
try {
|
||||||
area = intersections[i].getArea();
|
intersections[i] = GeometryUtil.intersection(quadrants[i], geom);
|
||||||
if (area > largestArea) {
|
area = intersections[i].getArea();
|
||||||
largestArea = area;
|
if (area > largestArea) {
|
||||||
index = i;
|
largestArea = area;
|
||||||
|
index = i;
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (intersections[index].isValid())
|
if (null != intersections[index] && intersections[index].isValid())
|
||||||
return intersections[index];
|
return intersections[index];
|
||||||
else {
|
else {
|
||||||
// "intersections[" + index + "] is invalid"
|
return geom;
|
||||||
return hatchedArea;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,6 +41,7 @@ import com.raytheon.uf.common.dataplugin.gfe.server.message.ServerResponse;
|
||||||
* ------------ ---------- ----------- --------------------------
|
* ------------ ---------- ----------- --------------------------
|
||||||
* May 7, 2008 njensen Initial creation
|
* May 7, 2008 njensen Initial creation
|
||||||
* Jun 13, 2013 #2044 randerso Refactored to use IFPServer
|
* Jun 13, 2013 #2044 randerso Refactored to use IFPServer
|
||||||
|
* Jul 28, 2014 RM 15655 ryu Negate raising exception for empty db in constructor
|
||||||
*
|
*
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
|
@ -88,7 +89,6 @@ public class IFPDB {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.keys = Collections.emptyList();
|
this.keys = Collections.emptyList();
|
||||||
throw new GfeException(sr.message());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,7 @@ except:
|
||||||
import numpy
|
import numpy
|
||||||
import JUtil
|
import JUtil
|
||||||
|
|
||||||
|
from java.lang import System
|
||||||
from java.util import ArrayList
|
from java.util import ArrayList
|
||||||
from java.util import LinkedHashMap
|
from java.util import LinkedHashMap
|
||||||
from com.raytheon.uf.common.dataplugin.gfe.grid import Grid2DFloat
|
from com.raytheon.uf.common.dataplugin.gfe.grid import Grid2DFloat
|
||||||
|
@ -87,6 +88,7 @@ from com.raytheon.uf.edex.database.cluster import ClusterTask
|
||||||
# 01/09/14 16952 randerso Fix regression made in #2517 which caused errors with overlapping grids
|
# 01/09/14 16952 randerso Fix regression made in #2517 which caused errors with overlapping grids
|
||||||
# 02/04/14 17042 ryu Check in changes for randerso.
|
# 02/04/14 17042 ryu Check in changes for randerso.
|
||||||
# 04/11/2014 17242 David Gillingham (code checked in by zhao)
|
# 04/11/2014 17242 David Gillingham (code checked in by zhao)
|
||||||
|
# 07/22/2014 17484 randerso Update cluster lock time to prevent time out
|
||||||
#
|
#
|
||||||
|
|
||||||
BATCH_DELAY = 0.0
|
BATCH_DELAY = 0.0
|
||||||
|
@ -726,6 +728,9 @@ class IscMosaic:
|
||||||
|
|
||||||
# process incoming grids
|
# process incoming grids
|
||||||
for i in xrange(len(inTimes)):
|
for i in xrange(len(inTimes)):
|
||||||
|
# update cluster lock time to avoid time out
|
||||||
|
ClusterLockUtils.updateLockTime("ISC Write Lock", parmName ,System.currentTimeMillis())
|
||||||
|
|
||||||
# Put in a delay so we don't hammer the server so hard.
|
# Put in a delay so we don't hammer the server so hard.
|
||||||
if self.__gridDelay > 0.0:
|
if self.__gridDelay > 0.0:
|
||||||
time.sleep(self.__gridDelay)
|
time.sleep(self.__gridDelay)
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
<parameter>zAGL</parameter>
|
<parameter>zAGL</parameter>
|
||||||
</paramLevelMatches>
|
</paramLevelMatches>
|
||||||
<contourStyle>
|
<contourStyle>
|
||||||
<displayUnits>dam</displayUnits>
|
<displayUnits>ft</displayUnits>
|
||||||
<contourLabeling labelSpacing="4" labelFormat="#">
|
<contourLabeling labelSpacing="4" labelFormat="#">
|
||||||
<increment>50</increment>
|
<increment>50</increment>
|
||||||
</contourLabeling>
|
</contourLabeling>
|
||||||
|
|
|
@ -74,7 +74,7 @@
|
||||||
<parameter>Topo</parameter>
|
<parameter>Topo</parameter>
|
||||||
</paramLevelMatches>
|
</paramLevelMatches>
|
||||||
<imageStyle>
|
<imageStyle>
|
||||||
<displayUnits>km</displayUnits>
|
<displayUnits>ft</displayUnits>
|
||||||
<defaultColormap>Grid/gridded data</defaultColormap>
|
<defaultColormap>Grid/gridded data</defaultColormap>
|
||||||
</imageStyle>
|
</imageStyle>
|
||||||
</styleRule>
|
</styleRule>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
* Autogenerated by Thrift Compiler (0.9.0)
|
* Autogenerated by Thrift Compiler (0.8.0)
|
||||||
*
|
*
|
||||||
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
* @generated
|
* @generated
|
||||||
|
@ -35,6 +35,7 @@
|
||||||
* Date Ticket# Engineer Description
|
* Date Ticket# Engineer Description
|
||||||
* ------------ ---------- ----------- --------------------------
|
* ------------ ---------- ----------- --------------------------
|
||||||
* 07/29/13 2215 bkowal Regenerated for thrift 0.9.0
|
* 07/29/13 2215 bkowal Regenerated for thrift 0.9.0
|
||||||
|
* 07/22/14 15649 lshi Rollback to thrift 0.8.0
|
||||||
*
|
*
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
|
@ -43,14 +44,13 @@
|
||||||
*/
|
*/
|
||||||
#include "Notification_types.h"
|
#include "Notification_types.h"
|
||||||
|
|
||||||
#include <algorithm>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const char* com_raytheon_uf_common_dataplugin_message_DataURINotificationMessage::ascii_fingerprint = "ACE4F644F0FDD289DDC4EE5B83BC13C0";
|
const char* com_raytheon_uf_common_dataplugin_message_DataURINotificationMessage::ascii_fingerprint = "ACE4F644F0FDD289DDC4EE5B83BC13C0";
|
||||||
const uint8_t com_raytheon_uf_common_dataplugin_message_DataURINotificationMessage::binary_fingerprint[16] = {0xAC,0xE4,0xF6,0x44,0xF0,0xFD,0xD2,0x89,0xDD,0xC4,0xEE,0x5B,0x83,0xBC,0x13,0xC0};
|
const uint8_t com_raytheon_uf_common_dataplugin_message_DataURINotificationMessage::binary_fingerprint[16] = {0xAC,0xE4,0xF6,0x44,0xF0,0xFD,0xD2,0x89,0xDD,0xC4,0xEE,0x5B,0x83,0xBC,0x13,0xC0};
|
||||||
|
|
||||||
uint32_t com_raytheon_uf_common_dataplugin_message_DataURINotificationMessage::read(::apache::thrift::protocol::TProtocol* iprot) {
|
uint32_t com_raytheon_uf_common_dataplugin_message_DataURINotificationMessage::read(::apache::thrift::protocol::TProtocol* iprot) {
|
||||||
|
|
||||||
uint32_t xfer = 0;
|
uint32_t xfer = 0;
|
||||||
std::string fname;
|
std::string fname;
|
||||||
::apache::thrift::protocol::TType ftype;
|
::apache::thrift::protocol::TType ftype;
|
||||||
|
@ -75,14 +75,14 @@ uint32_t com_raytheon_uf_common_dataplugin_message_DataURINotificationMessage::r
|
||||||
this->dataURIs.clear();
|
this->dataURIs.clear();
|
||||||
uint32_t _size0;
|
uint32_t _size0;
|
||||||
::apache::thrift::protocol::TType _etype3;
|
::apache::thrift::protocol::TType _etype3;
|
||||||
xfer += iprot->readListBegin(_etype3, _size0);
|
iprot->readListBegin(_etype3, _size0);
|
||||||
this->dataURIs.resize(_size0);
|
this->dataURIs.resize(_size0);
|
||||||
uint32_t _i4;
|
uint32_t _i4;
|
||||||
for (_i4 = 0; _i4 < _size0; ++_i4)
|
for (_i4 = 0; _i4 < _size0; ++_i4)
|
||||||
{
|
{
|
||||||
xfer += iprot->readString(this->dataURIs[_i4]);
|
xfer += iprot->readString(this->dataURIs[_i4]);
|
||||||
}
|
}
|
||||||
xfer += iprot->readListEnd();
|
iprot->readListEnd();
|
||||||
}
|
}
|
||||||
this->__isset.dataURIs = true;
|
this->__isset.dataURIs = true;
|
||||||
} else {
|
} else {
|
||||||
|
@ -104,7 +104,6 @@ uint32_t com_raytheon_uf_common_dataplugin_message_DataURINotificationMessage::r
|
||||||
uint32_t com_raytheon_uf_common_dataplugin_message_DataURINotificationMessage::write(::apache::thrift::protocol::TProtocol* oprot) const {
|
uint32_t com_raytheon_uf_common_dataplugin_message_DataURINotificationMessage::write(::apache::thrift::protocol::TProtocol* oprot) const {
|
||||||
uint32_t xfer = 0;
|
uint32_t xfer = 0;
|
||||||
xfer += oprot->writeStructBegin("com_raytheon_uf_common_dataplugin_message_DataURINotificationMessage");
|
xfer += oprot->writeStructBegin("com_raytheon_uf_common_dataplugin_message_DataURINotificationMessage");
|
||||||
|
|
||||||
xfer += oprot->writeFieldBegin("dataURIs", ::apache::thrift::protocol::T_LIST, 1);
|
xfer += oprot->writeFieldBegin("dataURIs", ::apache::thrift::protocol::T_LIST, 1);
|
||||||
{
|
{
|
||||||
xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->dataURIs.size()));
|
xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->dataURIs.size()));
|
||||||
|
@ -116,16 +115,9 @@ uint32_t com_raytheon_uf_common_dataplugin_message_DataURINotificationMessage::w
|
||||||
xfer += oprot->writeListEnd();
|
xfer += oprot->writeListEnd();
|
||||||
}
|
}
|
||||||
xfer += oprot->writeFieldEnd();
|
xfer += oprot->writeFieldEnd();
|
||||||
|
|
||||||
xfer += oprot->writeFieldStop();
|
xfer += oprot->writeFieldStop();
|
||||||
xfer += oprot->writeStructEnd();
|
xfer += oprot->writeStructEnd();
|
||||||
return xfer;
|
return xfer;
|
||||||
}
|
}
|
||||||
|
|
||||||
void swap(com_raytheon_uf_common_dataplugin_message_DataURINotificationMessage &a, com_raytheon_uf_common_dataplugin_message_DataURINotificationMessage &b) {
|
|
||||||
using ::std::swap;
|
|
||||||
swap(a.dataURIs, b.dataURIs);
|
|
||||||
swap(a.__isset, b.__isset);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,3 @@
|
||||||
/**
|
|
||||||
* Autogenerated by Thrift Compiler (0.9.0)
|
|
||||||
*
|
|
||||||
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
|
||||||
* @generated
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*****************************************************************************************
|
/*****************************************************************************************
|
||||||
* COPYRIGHT (c), 2009, RAYTHEON COMPANY
|
* COPYRIGHT (c), 2009, RAYTHEON COMPANY
|
||||||
* ALL RIGHTS RESERVED, An Unpublished Work
|
* ALL RIGHTS RESERVED, An Unpublished Work
|
||||||
|
@ -26,7 +19,8 @@
|
||||||
******************************************************************************************/
|
******************************************************************************************/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Extended thrift protocol to handle messages from edex.
|
* Support for point data request capability to retrieve point data and metadata
|
||||||
|
* from EDEX Thrift service.
|
||||||
*
|
*
|
||||||
* <pre>
|
* <pre>
|
||||||
*
|
*
|
||||||
|
@ -34,13 +28,21 @@
|
||||||
*
|
*
|
||||||
* Date Ticket# Engineer Description
|
* Date Ticket# Engineer Description
|
||||||
* ------------ ---------- ----------- --------------------------
|
* ------------ ---------- ----------- --------------------------
|
||||||
* 07/29/13 2215 bkowal Regenerated for thrift 0.9.0
|
* 08/08/11 9696 gzhou Initial Creation
|
||||||
|
* 07/29/13 2215 bkowal Regenerated for thrift 0.9.0
|
||||||
|
* 07/22/14 15649 lshi Rollback to Initial Creation
|
||||||
*
|
*
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @author bkowal
|
* @author gzhou
|
||||||
* @version 1
|
* @version 1
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
*/
|
||||||
#include "PointDataServer_constants.h"
|
#include "PointDataServer_constants.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,3 @@
|
||||||
/**
|
|
||||||
* Autogenerated by Thrift Compiler (0.9.0)
|
|
||||||
*
|
|
||||||
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
|
||||||
* @generated
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*****************************************************************************************
|
/*****************************************************************************************
|
||||||
* COPYRIGHT (c), 2009, RAYTHEON COMPANY
|
* COPYRIGHT (c), 2009, RAYTHEON COMPANY
|
||||||
* ALL RIGHTS RESERVED, An Unpublished Work
|
* ALL RIGHTS RESERVED, An Unpublished Work
|
||||||
|
@ -26,7 +19,8 @@
|
||||||
******************************************************************************************/
|
******************************************************************************************/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Extended thrift protocol to handle messages from edex.
|
* Support for point data request capability to retrieve point data and metadata
|
||||||
|
* from EDEX Thrift service.
|
||||||
*
|
*
|
||||||
* <pre>
|
* <pre>
|
||||||
*
|
*
|
||||||
|
@ -34,240 +28,222 @@
|
||||||
*
|
*
|
||||||
* Date Ticket# Engineer Description
|
* Date Ticket# Engineer Description
|
||||||
* ------------ ---------- ----------- --------------------------
|
* ------------ ---------- ----------- --------------------------
|
||||||
* 07/29/13 2215 bkowal Regenerated for thrift 0.9.0
|
* 08/08/11 9696 gzhou Initial Creation
|
||||||
|
* 07/29/13 2215 bkowal Regenerated for thrift 0.9.0
|
||||||
|
* 07/22/14 15649 lshi Rollback to Initial Creation
|
||||||
*
|
*
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @author bkowal
|
* @author gzhou
|
||||||
* @version 1
|
* @version 1
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "PointDataServer_types.h"
|
#include "PointDataServer_types.h"
|
||||||
|
|
||||||
#include <algorithm>
|
const char
|
||||||
|
* com_raytheon_uf_common_dataquery_requests_ConstraintType::ascii_fingerprint =
|
||||||
|
"EFB929595D312AC8F305D5A794CFEDA1";
|
||||||
|
const uint8_t
|
||||||
|
com_raytheon_uf_common_dataquery_requests_ConstraintType::binary_fingerprint[16] =
|
||||||
|
{ 0xEF, 0xB9, 0x29, 0x59, 0x5D, 0x31, 0x2A, 0xC8, 0xF3, 0x05,
|
||||||
|
0xD5, 0xA7, 0x94, 0xCF, 0xED, 0xA1 };
|
||||||
|
|
||||||
|
uint32_t com_raytheon_uf_common_dataquery_requests_ConstraintType::read(
|
||||||
|
::apache::thrift::protocol::TProtocol* iprot) {
|
||||||
|
|
||||||
|
uint32_t xfer = 0;
|
||||||
|
std::string fname;
|
||||||
|
::apache::thrift::protocol::TType ftype;
|
||||||
|
int16_t fid;
|
||||||
|
|
||||||
const char* com_raytheon_uf_common_dataquery_requests_ConstraintType::ascii_fingerprint = "EFB929595D312AC8F305D5A794CFEDA1";
|
xfer += iprot->readStructBegin(fname);
|
||||||
const uint8_t com_raytheon_uf_common_dataquery_requests_ConstraintType::binary_fingerprint[16] = {0xEF,0xB9,0x29,0x59,0x5D,0x31,0x2A,0xC8,0xF3,0x05,0xD5,0xA7,0x94,0xCF,0xED,0xA1};
|
|
||||||
|
|
||||||
uint32_t com_raytheon_uf_common_dataquery_requests_ConstraintType::read(::apache::thrift::protocol::TProtocol* iprot) {
|
using ::apache::thrift::protocol::TProtocolException;
|
||||||
|
|
||||||
uint32_t xfer = 0;
|
xfer += iprot->readFieldBegin(fname, ftype, fid);
|
||||||
std::string fname;
|
if (ftype == ::apache::thrift::protocol::T_STRING) {
|
||||||
::apache::thrift::protocol::TType ftype;
|
xfer += iprot->readString(operand);
|
||||||
int16_t fid;
|
this->__isset.operand = true;
|
||||||
|
} else
|
||||||
|
xfer += iprot->skip(ftype);
|
||||||
|
xfer += iprot->readFieldEnd();
|
||||||
|
|
||||||
xfer += iprot->readStructBegin(fname);
|
xfer += iprot->readStructEnd();
|
||||||
|
|
||||||
using ::apache::thrift::protocol::TProtocolException;
|
return xfer;
|
||||||
|
|
||||||
|
|
||||||
while (true)
|
|
||||||
{
|
|
||||||
xfer += iprot->readFieldBegin(fname, ftype, fid);
|
|
||||||
if (ftype == ::apache::thrift::protocol::T_STOP) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
switch (fid)
|
|
||||||
{
|
|
||||||
case 1:
|
|
||||||
if (ftype == ::apache::thrift::protocol::T_STRING) {
|
|
||||||
xfer += iprot->readString(this->operand);
|
|
||||||
this->__isset.operand = true;
|
|
||||||
} else {
|
|
||||||
xfer += iprot->skip(ftype);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
xfer += iprot->skip(ftype);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
xfer += iprot->readFieldEnd();
|
|
||||||
}
|
|
||||||
|
|
||||||
xfer += iprot->readStructEnd();
|
|
||||||
|
|
||||||
return xfer;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t com_raytheon_uf_common_dataquery_requests_ConstraintType::write(::apache::thrift::protocol::TProtocol* oprot) const {
|
uint32_t com_raytheon_uf_common_dataquery_requests_ConstraintType::write(
|
||||||
uint32_t xfer = 0;
|
::apache::thrift::protocol::TProtocol* oprot) const {
|
||||||
xfer += oprot->writeStructBegin("com_raytheon_uf_common_dataquery_requests_ConstraintType");
|
uint32_t xfer = 0;
|
||||||
|
xfer
|
||||||
xfer += oprot->writeFieldBegin("operand", ::apache::thrift::protocol::T_STRING, 1);
|
+= oprot->writeStructBegin(
|
||||||
xfer += oprot->writeString(this->operand);
|
"com_raytheon_uf_common_dataquery_requests_RequestConstraint$ConstraintType");
|
||||||
xfer += oprot->writeFieldEnd();
|
xfer += oprot->writeFieldBegin("__enumValue__",
|
||||||
|
::apache::thrift::protocol::T_STRING, 1);
|
||||||
xfer += oprot->writeFieldStop();
|
xfer += oprot->writeString(this->operand);
|
||||||
xfer += oprot->writeStructEnd();
|
xfer += oprot->writeFieldEnd();
|
||||||
return xfer;
|
xfer += oprot->writeStructEnd();
|
||||||
|
return xfer;
|
||||||
}
|
}
|
||||||
|
|
||||||
void swap(com_raytheon_uf_common_dataquery_requests_ConstraintType &a, com_raytheon_uf_common_dataquery_requests_ConstraintType &b) {
|
const char
|
||||||
using ::std::swap;
|
* com_raytheon_uf_common_dataquery_requests_RequestConstraint::ascii_fingerprint =
|
||||||
swap(a.operand, b.operand);
|
"BDAF55DAA660FA1ADBE30760752211A8";
|
||||||
swap(a.__isset, b.__isset);
|
const uint8_t
|
||||||
|
com_raytheon_uf_common_dataquery_requests_RequestConstraint::binary_fingerprint[16] =
|
||||||
|
{ 0xBD, 0xAF, 0x55, 0xDA, 0xA6, 0x60, 0xFA, 0x1A, 0xDB, 0xE3,
|
||||||
|
0x07, 0x60, 0x75, 0x22, 0x11, 0xA8 };
|
||||||
|
|
||||||
|
uint32_t com_raytheon_uf_common_dataquery_requests_RequestConstraint::read(
|
||||||
|
::apache::thrift::protocol::TProtocol* iprot) {
|
||||||
|
|
||||||
|
uint32_t xfer = 0;
|
||||||
|
std::string fname;
|
||||||
|
::apache::thrift::protocol::TType ftype;
|
||||||
|
int16_t fid;
|
||||||
|
|
||||||
|
xfer += iprot->readStructBegin(fname);
|
||||||
|
|
||||||
|
using ::apache::thrift::protocol::TProtocolException;
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
xfer += iprot->readFieldBegin(fname, ftype, fid);
|
||||||
|
if (ftype == ::apache::thrift::protocol::T_STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (fid) {
|
||||||
|
case 1:
|
||||||
|
if (ftype == ::apache::thrift::protocol::T_STRUCT) {
|
||||||
|
xfer += this->constraintType.read(iprot);
|
||||||
|
this->__isset.constraintType = true;
|
||||||
|
} else {
|
||||||
|
xfer += iprot->skip(ftype);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if (ftype == ::apache::thrift::protocol::T_STRING) {
|
||||||
|
xfer += iprot->readString(this->constraintValue);
|
||||||
|
this->__isset.constraintValue = true;
|
||||||
|
} else {
|
||||||
|
xfer += iprot->skip(ftype);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
xfer += iprot->skip(ftype);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
xfer += iprot->readFieldEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
xfer += iprot->readStructEnd();
|
||||||
|
|
||||||
|
return xfer;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* com_raytheon_uf_common_dataquery_requests_RequestConstraint::ascii_fingerprint = "BDAF55DAA660FA1ADBE30760752211A8";
|
uint32_t com_raytheon_uf_common_dataquery_requests_RequestConstraint::write(
|
||||||
const uint8_t com_raytheon_uf_common_dataquery_requests_RequestConstraint::binary_fingerprint[16] = {0xBD,0xAF,0x55,0xDA,0xA6,0x60,0xFA,0x1A,0xDB,0xE3,0x07,0x60,0x75,0x22,0x11,0xA8};
|
::apache::thrift::protocol::TProtocol* oprot) const {
|
||||||
|
uint32_t xfer = 0;
|
||||||
uint32_t com_raytheon_uf_common_dataquery_requests_RequestConstraint::read(::apache::thrift::protocol::TProtocol* iprot) {
|
xfer += oprot->writeStructBegin(
|
||||||
|
"com_raytheon_uf_common_dataquery_requests_RequestConstraint");
|
||||||
uint32_t xfer = 0;
|
xfer += oprot->writeFieldBegin("constraintType",
|
||||||
std::string fname;
|
::apache::thrift::protocol::T_STRUCT, 1);
|
||||||
::apache::thrift::protocol::TType ftype;
|
xfer += this->constraintType.write(oprot);
|
||||||
int16_t fid;
|
xfer += oprot->writeFieldEnd();
|
||||||
|
xfer += oprot->writeFieldBegin("constraintValue",
|
||||||
xfer += iprot->readStructBegin(fname);
|
::apache::thrift::protocol::T_STRING, 2);
|
||||||
|
xfer += oprot->writeString(this->constraintValue);
|
||||||
using ::apache::thrift::protocol::TProtocolException;
|
xfer += oprot->writeFieldEnd();
|
||||||
|
xfer += oprot->writeFieldStop();
|
||||||
|
xfer += oprot->writeStructEnd();
|
||||||
while (true)
|
return xfer;
|
||||||
{
|
|
||||||
xfer += iprot->readFieldBegin(fname, ftype, fid);
|
|
||||||
if (ftype == ::apache::thrift::protocol::T_STOP) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
switch (fid)
|
|
||||||
{
|
|
||||||
case 1:
|
|
||||||
if (ftype == ::apache::thrift::protocol::T_STRUCT) {
|
|
||||||
xfer += this->constraintType.read(iprot);
|
|
||||||
this->__isset.constraintType = true;
|
|
||||||
} else {
|
|
||||||
xfer += iprot->skip(ftype);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
if (ftype == ::apache::thrift::protocol::T_STRING) {
|
|
||||||
xfer += iprot->readString(this->constraintValue);
|
|
||||||
this->__isset.constraintValue = true;
|
|
||||||
} else {
|
|
||||||
xfer += iprot->skip(ftype);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
xfer += iprot->skip(ftype);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
xfer += iprot->readFieldEnd();
|
|
||||||
}
|
|
||||||
|
|
||||||
xfer += iprot->readStructEnd();
|
|
||||||
|
|
||||||
return xfer;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t com_raytheon_uf_common_dataquery_requests_RequestConstraint::write(::apache::thrift::protocol::TProtocol* oprot) const {
|
const char
|
||||||
uint32_t xfer = 0;
|
* com_raytheon_uf_common_pointdata_PointDataServerRequest::ascii_fingerprint =
|
||||||
xfer += oprot->writeStructBegin("com_raytheon_uf_common_dataquery_requests_RequestConstraint");
|
"C9F1CC9CD1A896EE01B7C5215E2BE99F";
|
||||||
|
const uint8_t
|
||||||
|
com_raytheon_uf_common_pointdata_PointDataServerRequest::binary_fingerprint[16] =
|
||||||
|
{ 0xC9, 0xF1, 0xCC, 0x9C, 0xD1, 0xA8, 0x96, 0xEE, 0x01, 0xB7,
|
||||||
|
0xC5, 0x21, 0x5E, 0x2B, 0xE9, 0x9F };
|
||||||
|
|
||||||
xfer += oprot->writeFieldBegin("constraintType", ::apache::thrift::protocol::T_STRUCT, 1);
|
uint32_t com_raytheon_uf_common_pointdata_PointDataServerRequest::read(
|
||||||
xfer += this->constraintType.write(oprot);
|
::apache::thrift::protocol::TProtocol* iprot) {
|
||||||
xfer += oprot->writeFieldEnd();
|
|
||||||
|
|
||||||
xfer += oprot->writeFieldBegin("constraintValue", ::apache::thrift::protocol::T_STRING, 2);
|
uint32_t xfer = 0;
|
||||||
xfer += oprot->writeString(this->constraintValue);
|
std::string fname;
|
||||||
xfer += oprot->writeFieldEnd();
|
::apache::thrift::protocol::TType ftype;
|
||||||
|
int16_t fid;
|
||||||
|
|
||||||
xfer += oprot->writeFieldStop();
|
xfer += iprot->readStructBegin(fname);
|
||||||
xfer += oprot->writeStructEnd();
|
|
||||||
return xfer;
|
using ::apache::thrift::protocol::TProtocolException;
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
xfer += iprot->readFieldBegin(fname, ftype, fid);
|
||||||
|
if (ftype == ::apache::thrift::protocol::T_STOP) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch (fid) {
|
||||||
|
case 1:
|
||||||
|
if (ftype == ::apache::thrift::protocol::T_MAP) {
|
||||||
|
{
|
||||||
|
this->rcMap.clear();
|
||||||
|
uint32_t _size0;
|
||||||
|
::apache::thrift::protocol::TType _ktype1;
|
||||||
|
::apache::thrift::protocol::TType _vtype2;
|
||||||
|
iprot->readMapBegin(_ktype1, _vtype2, _size0);
|
||||||
|
uint32_t _i4;
|
||||||
|
for (_i4 = 0; _i4 < _size0; ++_i4) {
|
||||||
|
std::string _key5;
|
||||||
|
xfer += iprot->readString(_key5);
|
||||||
|
com_raytheon_uf_common_dataquery_requests_RequestConstraint
|
||||||
|
& _val6 = this->rcMap[_key5];
|
||||||
|
xfer += _val6.read(iprot);
|
||||||
|
}
|
||||||
|
iprot->readMapEnd();
|
||||||
|
}
|
||||||
|
this->__isset.rcMap = true;
|
||||||
|
} else {
|
||||||
|
xfer += iprot->skip(ftype);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
xfer += iprot->skip(ftype);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
xfer += iprot->readFieldEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
xfer += iprot->readStructEnd();
|
||||||
|
|
||||||
|
return xfer;
|
||||||
}
|
}
|
||||||
|
|
||||||
void swap(com_raytheon_uf_common_dataquery_requests_RequestConstraint &a, com_raytheon_uf_common_dataquery_requests_RequestConstraint &b) {
|
uint32_t com_raytheon_uf_common_pointdata_PointDataServerRequest::write(
|
||||||
using ::std::swap;
|
::apache::thrift::protocol::TProtocol* oprot) const {
|
||||||
swap(a.constraintType, b.constraintType);
|
uint32_t xfer = 0;
|
||||||
swap(a.constraintValue, b.constraintValue);
|
xfer += oprot->writeStructBegin(
|
||||||
swap(a.__isset, b.__isset);
|
"com_raytheon_uf_common_pointdata_PointDataServerRequest");
|
||||||
|
xfer += oprot->writeFieldBegin("rcMap", ::apache::thrift::protocol::T_MAP,
|
||||||
|
1);
|
||||||
|
{
|
||||||
|
xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING,
|
||||||
|
::apache::thrift::protocol::T_STRUCT, this->rcMap.size());
|
||||||
|
std::map<std::string,
|
||||||
|
com_raytheon_uf_common_dataquery_requests_RequestConstraint>::const_iterator
|
||||||
|
_iter7;
|
||||||
|
for (_iter7 = this->rcMap.begin(); _iter7 != this->rcMap.end(); ++_iter7) {
|
||||||
|
xfer += oprot->writeStructBegin("11");
|
||||||
|
xfer += oprot->writeString(_iter7->first);
|
||||||
|
xfer += oprot->writeStructEnd();
|
||||||
|
xfer += _iter7->second.write(oprot);
|
||||||
|
}
|
||||||
|
xfer += oprot->writeMapEnd();
|
||||||
|
}
|
||||||
|
xfer += oprot->writeFieldEnd();
|
||||||
|
xfer += oprot->writeFieldStop();
|
||||||
|
xfer += oprot->writeStructEnd();
|
||||||
|
return xfer;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* com_raytheon_uf_common_pointdata_PointDataServerRequest::ascii_fingerprint = "C9F1CC9CD1A896EE01B7C5215E2BE99F";
|
|
||||||
const uint8_t com_raytheon_uf_common_pointdata_PointDataServerRequest::binary_fingerprint[16] = {0xC9,0xF1,0xCC,0x9C,0xD1,0xA8,0x96,0xEE,0x01,0xB7,0xC5,0x21,0x5E,0x2B,0xE9,0x9F};
|
|
||||||
|
|
||||||
uint32_t com_raytheon_uf_common_pointdata_PointDataServerRequest::read(::apache::thrift::protocol::TProtocol* iprot) {
|
|
||||||
|
|
||||||
uint32_t xfer = 0;
|
|
||||||
std::string fname;
|
|
||||||
::apache::thrift::protocol::TType ftype;
|
|
||||||
int16_t fid;
|
|
||||||
|
|
||||||
xfer += iprot->readStructBegin(fname);
|
|
||||||
|
|
||||||
using ::apache::thrift::protocol::TProtocolException;
|
|
||||||
|
|
||||||
|
|
||||||
while (true)
|
|
||||||
{
|
|
||||||
xfer += iprot->readFieldBegin(fname, ftype, fid);
|
|
||||||
if (ftype == ::apache::thrift::protocol::T_STOP) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
switch (fid)
|
|
||||||
{
|
|
||||||
case 1:
|
|
||||||
if (ftype == ::apache::thrift::protocol::T_MAP) {
|
|
||||||
{
|
|
||||||
this->rcMap.clear();
|
|
||||||
uint32_t _size0;
|
|
||||||
::apache::thrift::protocol::TType _ktype1;
|
|
||||||
::apache::thrift::protocol::TType _vtype2;
|
|
||||||
xfer += iprot->readMapBegin(_ktype1, _vtype2, _size0);
|
|
||||||
uint32_t _i4;
|
|
||||||
for (_i4 = 0; _i4 < _size0; ++_i4)
|
|
||||||
{
|
|
||||||
std::string _key5;
|
|
||||||
xfer += iprot->readString(_key5);
|
|
||||||
com_raytheon_uf_common_dataquery_requests_RequestConstraint& _val6 = this->rcMap[_key5];
|
|
||||||
xfer += _val6.read(iprot);
|
|
||||||
}
|
|
||||||
xfer += iprot->readMapEnd();
|
|
||||||
}
|
|
||||||
this->__isset.rcMap = true;
|
|
||||||
} else {
|
|
||||||
xfer += iprot->skip(ftype);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
xfer += iprot->skip(ftype);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
xfer += iprot->readFieldEnd();
|
|
||||||
}
|
|
||||||
|
|
||||||
xfer += iprot->readStructEnd();
|
|
||||||
|
|
||||||
return xfer;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint32_t com_raytheon_uf_common_pointdata_PointDataServerRequest::write(::apache::thrift::protocol::TProtocol* oprot) const {
|
|
||||||
uint32_t xfer = 0;
|
|
||||||
xfer += oprot->writeStructBegin("com_raytheon_uf_common_pointdata_PointDataServerRequest");
|
|
||||||
|
|
||||||
xfer += oprot->writeFieldBegin("rcMap", ::apache::thrift::protocol::T_MAP, 1);
|
|
||||||
{
|
|
||||||
xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRING, ::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->rcMap.size()));
|
|
||||||
std::map<std::string, com_raytheon_uf_common_dataquery_requests_RequestConstraint> ::const_iterator _iter7;
|
|
||||||
for (_iter7 = this->rcMap.begin(); _iter7 != this->rcMap.end(); ++_iter7)
|
|
||||||
{
|
|
||||||
xfer += oprot->writeString(_iter7->first);
|
|
||||||
xfer += _iter7->second.write(oprot);
|
|
||||||
}
|
|
||||||
xfer += oprot->writeMapEnd();
|
|
||||||
}
|
|
||||||
xfer += oprot->writeFieldEnd();
|
|
||||||
|
|
||||||
xfer += oprot->writeFieldStop();
|
|
||||||
xfer += oprot->writeStructEnd();
|
|
||||||
return xfer;
|
|
||||||
}
|
|
||||||
|
|
||||||
void swap(com_raytheon_uf_common_pointdata_PointDataServerRequest &a, com_raytheon_uf_common_pointdata_PointDataServerRequest &b) {
|
|
||||||
using ::std::swap;
|
|
||||||
swap(a.rcMap, b.rcMap);
|
|
||||||
swap(a.__isset, b.__isset);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,3 @@
|
||||||
/**
|
|
||||||
* Autogenerated by Thrift Compiler (0.9.0)
|
|
||||||
*
|
|
||||||
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
|
||||||
* @generated
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*****************************************************************************************
|
/*****************************************************************************************
|
||||||
* COPYRIGHT (c), 2009, RAYTHEON COMPANY
|
* COPYRIGHT (c), 2009, RAYTHEON COMPANY
|
||||||
* ALL RIGHTS RESERVED, An Unpublished Work
|
* ALL RIGHTS RESERVED, An Unpublished Work
|
||||||
|
@ -26,7 +19,8 @@
|
||||||
******************************************************************************************/
|
******************************************************************************************/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Extended thrift protocol to handle messages from edex.
|
* Support for point data request capability to retrieve point data
|
||||||
|
* from EDEX Thrift service.
|
||||||
*
|
*
|
||||||
* <pre>
|
* <pre>
|
||||||
*
|
*
|
||||||
|
@ -34,13 +28,21 @@
|
||||||
*
|
*
|
||||||
* Date Ticket# Engineer Description
|
* Date Ticket# Engineer Description
|
||||||
* ------------ ---------- ----------- --------------------------
|
* ------------ ---------- ----------- --------------------------
|
||||||
* 07/29/13 2215 bkowal Regenerated for thrift 0.9.0
|
* 01/18/10 3747 brockwoo Initial Creation
|
||||||
|
* 07/29/13 2215 bkowal Regenerated for thrift 0.9.0
|
||||||
|
* 07/22/14 15649 lshi Rollback to Initial Creation
|
||||||
*
|
*
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @author bkowal
|
* @author brockwoo
|
||||||
* @version 1
|
* @version 1
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Autogenerated by Thrift
|
||||||
|
*
|
||||||
|
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||||
|
*/
|
||||||
#include "PointData_constants.h"
|
#include "PointData_constants.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue