Skip to content
Snippets Groups Projects
Commit c1eaa91c authored by Robert Butora's avatar Robert Butora
Browse files

updates new vlkb-volib: shape changed to enum

parent ee77a823
No related branches found
No related tags found
No related merge requests found
......@@ -172,25 +172,25 @@ final class XmlSerializer
xml.append("<SkySystem>"+coord.pos.system+"</SkySystem>");
switch(coord.pos.shape)
{
case "CIRCLE" :
xml.append("<l>"+coord.pos.circle.lon+"</l>");
xml.append("<b>"+coord.pos.circle.lat+"</b>");
case CIRCLE:
xml.append("<l>" + String.valueOf(coord.pos.circle.lon) + "</l>");
xml.append("<b>" + String.valueOf(coord.pos.circle.lat) + "</b>");
xml.append("<r>" + String.valueOf(coord.pos.circle.radius)+"</r>"); break;
case "RECT" :
xml.append("<l>"+(coord.pos.range.lon1+ coord.pos.range.lon2)/2.0 + "</l>");
xml.append("<b>"+(coord.pos.range.lat1+ coord.pos.range.lat2)/2.0 + "</b>");
case RANGE:
xml.append("<l>" + String.valueOf((coord.pos.range.lon1 + coord.pos.range.lon2)/2.0) + "</l>");
xml.append("<b>" + String.valueOf((coord.pos.range.lat1 + coord.pos.range.lat2)/2.0) + "</b>");
xml.append("<dl>" + String.valueOf(coord.pos.range.lon2 - coord.pos.range.lon1) + "</dl>");
xml.append("<db>" + String.valueOf(coord.pos.range.lat2 - coord.pos.range.lat1) + "</db>");
break;
default:
default: // POLYGON was not used in VLKB-legacy -> let it fail with error
xml.append("<shape> unknown shape: " + coord.pos.shape + " </shape>");
}
}
if(coord.band != null)
{
xml.append("<vl>" + String.valueOf(coord.band.wavelength[0]) +"</vl>");
xml.append("<vu>" + String.valueOf(coord.band.wavelength[1]) +"</vu>");
xml.append("<vl>" + String.valueOf(coord.band.getMin()) +"</vl>");
xml.append("<vu>" + String.valueOf(coord.band.getMax()) +"</vu>");
xml.append("<vtype>"+ coord.band.system +"</vtype>");
}
......
......@@ -48,8 +48,8 @@ public class DbPSearch
if(vel_valid)
{
String vel_no_overlap
= "((em_min > " + Double.toString(coord.band.wavelength[1])
+ ") OR (em_max < " + Double.toString(coord.band.wavelength[0]) + "))";
= "((em_min > " + Double.toString(coord.band.getMax())
+ ") OR (em_max < " + Double.toString(coord.band.getMin()) + "))";
theQuery += " AND ( (NOT " + vel_no_overlap + ") OR (em_min is null) OR (em_max is null))";
/* NOTE '... OR (em_min is null)' statement causes to include 2D datasets if they overlap in sky
......@@ -217,18 +217,17 @@ public class DbPSearch
String inputRegion = null;
String shape = pos.shape;
if(shape.equals("CIRCLE"))
switch(pos.shape)
{
case CIRCLE:
lon = pos.circle.lon;
lat = pos.circle.lat;
radius = pos.circle.radius;
inputRegion = "scircle '<(" + Double.toString(lon) + "d," + Double.toString(lat) + "d),"
+ Double.toString(radius) + "d>'";
}
else if (shape.equals("RECT"))
{
break;
case RANGE:
lon = (pos.range.lon1 + pos.range.lon2)/2.0;
lat = (pos.range.lat1 + pos.range.lat2)/2.0;
dlon = (pos.range.lon2 - pos.range.lon1)/2.0;
......@@ -241,9 +240,9 @@ public class DbPSearch
String ne_lat = Double.toString(lat + dlat/2.0);
inputRegion = "sbox '( ("+ sw_lon + "d, " + sw_lat + "d), (" + ne_lon +"d, " + ne_lat + "d) )'";
}
else if (shape.equals("POLYGON"))
{
break;
case POLYGON:
// FIXME redefine Polygon as point-array:
assert(pos.polygon.lon.length == pos.polygon.lat.length);
......@@ -254,11 +253,13 @@ public class DbPSearch
inputRegion += ", (" + pos.polygon.lon[ii] + "d, " + pos.polygon.lat[ii] + "d)";
}
inputRegion += " )'";
break;
default:
throw new IllegalArgumentException("Coord::shape was: " + pos.shape.toString()
+ " but valid is CIRCLE or RANGE or POLYGON");
}
else
{
throw new IllegalArgumentException("Coord::shape was: " + shape + " but valid is CIRCLE or RECT");
}
return inputRegion;
}
......
......@@ -303,11 +303,11 @@ public class FormatResponseFilter implements Filter
// FIXME assert coord: vel_min <= vel_max
// FIXME assert cube: v_min <= v_max
boolean dbInInp = (coord.band.wavelength[0] <= v_min) && (v_min <= coord.band.wavelength[1])
&& (coord.band.wavelength[0] <= v_max) && (v_max <= coord.band.wavelength[1]);
boolean dbInInp = (coord.band.getMin() <= v_min) && (v_min <= coord.band.getMax())
&& (coord.band.getMin() <= v_max) && (v_max <= coord.band.getMax());
boolean inpInDb = (v_min <= coord.band.wavelength[0]) && (coord.band.wavelength[0] <= v_max)
&& (v_min <= coord.band.wavelength[1] ) && (coord.band.wavelength[1] <= v_max);
boolean inpInDb = (v_min <= coord.band.getMin()) && (coord.band.getMin() <= v_max)
&& (v_min <= coord.band.getMax() ) && (coord.band.getMax() <= v_max);
return convertToOverlapCodeSky(inpInDb, dbInInp);
......@@ -362,35 +362,29 @@ public class FormatResponseFilter implements Filter
StringBuilder sb = new StringBuilder();
sb.append("skysystem=" + coord.pos.system);
sb.append("POSSYS=" + coord.pos.system.toString());
switch(coord.pos.shape)
{
case "CIRCLE" :
sb.append("&POS=CIRCLE " + coord.pos.circle.lon
+ " " + coord.pos.circle.lat + " " + coord.pos.circle.radius);
case CIRCLE:
sb.append("&POS=" + coord.pos.circle.toString());
break;
case "RECT" :
if(coord.band != null)
sb.append("&POS=RANGE="
+ " " + coord.pos.range.lon1 + " " + coord.pos.range.lon2
+ " " + coord.pos.range.lat1 + " " + coord.pos.range.lat2
+ " " + coord.band.wavelength[0] + " " + coord.band.wavelength[1]);
else
sb.append("&POS=RANGE="
+ " " + coord.pos.range.lon1 + " " + coord.pos.range.lon2
+ " " + coord.pos.range.lat1 + " " + coord.pos.range.lat2);
case RANGE:
sb.append("&POS=" + coord.pos.range.toString());
break;
case POLYGON:
sb.append("&POS=" + coord.pos.polygon.toString());
break;
default:
LOGGER.info("Coord::toVoQueryString: unknown shape: " + coord.pos.shape);
LOGGER.info("Coord::toQueryString: unknown shape: " + coord.pos.shape.toString());
}
if(coord.band != null)
{
sb.append("&BAND= " + coord.band.wavelength[0] + " " + coord.band.wavelength[1]);
sb.append("&specsystem=" + coord.band.system );
sb.append("&" + coord.band.toString());
sb.append("&BANDSYS=" + coord.band.system.toString() );
}
sb.append("&ID="); // FIXME id-value will be added in FormatResponseFilter
......
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment