diff --git a/data-access/servlet/src/main/java/common/Coord.java b/data-access/servlet/src/main/java/common/Coord.java index bd82e90bfaa9b1bfb0596619b0b2a2e2dbed04b8..91983b1b52cc58130d41fbb9bf5a7941a50a71eb 100644 --- a/data-access/servlet/src/main/java/common/Coord.java +++ b/data-access/servlet/src/main/java/common/Coord.java @@ -1,5 +1,6 @@ +import vo.parameter.*; class Coord { diff --git a/data-access/servlet/src/main/java/common/vo/soda/Band.java b/data-access/servlet/src/main/java/common/vo/soda/Band.java deleted file mode 100644 index 89630259c0ea1d762defc66ca5019ea2b6568280..0000000000000000000000000000000000000000 --- a/data-access/servlet/src/main/java/common/vo/soda/Band.java +++ /dev/null @@ -1,35 +0,0 @@ - -/* REC-SODA BAND parameter defines the interval(s) to be extracted -from the data using a floating point interval (xtype="interval") as defined -in DALI. */ - - -class Band -{ - public enum System {WAVE_Barycentric, VELO_LSRK, NONE}; - - System system; - double wavelength[]; - - - public Band(String str) - { - this.wavelength = Parser.getDaliIntervalPositiveValues(str, "BAND"); - } - - public Band(double low, double up) - { - wavelength = new double[2]; - wavelength[0] = low; - wavelength[1] = up; - } - - public void setSystem(Band.System system) { this.system = system; } - - public String toString() - { - return "BAND " + wavelength[0] + " " + wavelength[1]; - } - -} - diff --git a/data-access/servlet/src/main/java/common/vo/soda/Circle.java b/data-access/servlet/src/main/java/common/vo/soda/Circle.java deleted file mode 100644 index dd5b406c9a42b930ded7276d89f47a611be6e686..0000000000000000000000000000000000000000 --- a/data-access/servlet/src/main/java/common/vo/soda/Circle.java +++ /dev/null @@ -1,61 +0,0 @@ - -/* REC-SODA: UCD describing the CIRCLE parameter is pos.outline;obs.*/ -/* REC-DALI Sect 3.3.6 Circle: definition */ - - -class Circle -{ - - double lon; - double lat; - double radius; - - public Circle(String value) - { - parseCircle(value); - } - - private void parseCircle(String str) - { - String[] arr = str.strip().split(" +"); - - if(arr == null) - throw new IllegalArgumentException("CIRCLE : no value, or value contains no space"); - else - { - final int len = 3; - if(arr.length != len) - throw new IllegalArgumentException( - "CIRCLE : must have " + len + " elements delimited by space, but found " + arr.length); - else - { - - double dbl = Double.parseDouble(arr[0]); - if ((dbl < 0) || (dbl > 360)) - throw new IllegalArgumentException("CIRCLE : first number must be in range [0,360] but found " + dbl); - else - this.lon = dbl; - - dbl = Double.parseDouble(arr[1]); - if ((dbl < -90) || (dbl > 90)) - throw new IllegalArgumentException("CIRCLE : second number must be in range [-90,90] but found " + dbl); - else - this.lat = dbl; - - dbl = Double.parseDouble(arr[2]); - if ((dbl <= 0) || (dbl > 180)) - throw new IllegalArgumentException("CIRCLE : third number must be in range (0,180] but found " + dbl); - else - this.radius = dbl; - - } - } - } - - public String toString() - { - return "CIRCLE " + Double.valueOf(lon) + " " + Double.valueOf(lat) + " " + Double.valueOf(radius); - } - -} - diff --git a/data-access/servlet/src/main/java/common/vo/soda/MultiValuedParamNotSupported.java b/data-access/servlet/src/main/java/common/vo/soda/MultiValuedParamNotSupported.java deleted file mode 100644 index 2b3dd3c6a1efaf93eeea9eccb4b359e0200ab8c4..0000000000000000000000000000000000000000 --- a/data-access/servlet/src/main/java/common/vo/soda/MultiValuedParamNotSupported.java +++ /dev/null @@ -1,8 +0,0 @@ - - - -public class MultiValuedParamNotSupported extends IllegalArgumentException { - public MultiValuedParamNotSupported(String errorMessage){//, Throwable err) { - super(errorMessage);//, err); - } -} diff --git a/data-access/servlet/src/main/java/common/vo/soda/Parser.java b/data-access/servlet/src/main/java/common/vo/soda/Parser.java deleted file mode 100644 index 66d0d67eac82d3a4928db6cf792b02fd0c708b6c..0000000000000000000000000000000000000000 --- a/data-access/servlet/src/main/java/common/vo/soda/Parser.java +++ /dev/null @@ -1,90 +0,0 @@ - -import java.util.Map; - - -class Parser -{ - - public static String getFirstString(Map<String, String[]> params, String key) - { - String[] values = params.get(key); - if (values == null) return null; - - if (values.length < 1) - throw new IllegalArgumentException(key + " has no valid value"); - else - return values[0];// FIXME if values[0] is null -> canot distinguish from key not found - } - - - public static String[] getFirstStringArray(Map<String, String[]> params, String key, String separator, int arrayLength) - { - String array = getFirstString(params, key); - if (array == null) return null; - - String[] stringArray = array.split(separator); - - if(stringArray.length != arrayLength) - throw new IllegalArgumentException( - key + " parameter has incorrect number of elements (" - + stringArray.length + " vs " + arrayLength + ") or incorrect separator used"); - - return stringArray; - } - - - public static double[] getDaliIntervalPositiveValues(String value, String errorMsgPrefix) - { - String[] arr = value.strip().split(" +"); - - double[] dblArr = new double[2]; - - if(arr == null) - throw new IllegalArgumentException(errorMsgPrefix + " : no value, or value contains no space"); - else - { - final int len = 2; - if(arr.length != len) - throw new IllegalArgumentException( - errorMsgPrefix + " : must have " + len + " space-delimited elements, but found " + arr.length); - else - { - - - String val = arr[0]; - if(val.equals("Inf") || val.equals("+Inf")) - { - dblArr[0] = Double.POSITIVE_INFINITY; - } - else - { - double dbl = Double.parseDouble(val); - if (dbl < 0) - throw new IllegalArgumentException(errorMsgPrefix + " : values must be positive, but first value was " + dbl); - else - dblArr[0] = dbl; - } - - - val = arr[1]; - if(val.equals("-Inf")) - { - // dblArr[1] = Double.NEGATIVE_INFINITY; - throw new IllegalArgumentException(errorMsgPrefix + " : values must be positive, but second value was " + val); - } - else - { - double dbl = Double.parseDouble(val); - if (dbl < 0) - throw new IllegalArgumentException(errorMsgPrefix + " : values must be positive, but second value was " + dbl); - else - dblArr[1] = dbl; - } - } - } - - return dblArr; - } - - -} diff --git a/data-access/servlet/src/main/java/common/vo/soda/Pol.java b/data-access/servlet/src/main/java/common/vo/soda/Pol.java deleted file mode 100644 index 189fe7f0215accd06fad3f2d1a83d6f59532fb62..0000000000000000000000000000000000000000 --- a/data-access/servlet/src/main/java/common/vo/soda/Pol.java +++ /dev/null @@ -1,40 +0,0 @@ - -/* REC ObsCore B.6.5.1. List of polarization states (pol_states) -... polarization labels inspired from the FITS specification. See Table 7 in FITS WCS Paper 1 -(Greisen et Calabretta 2002) . Labels are combined using symbols from the - -{I Q U V RR LL RL LR XX YY XY YX POLI POLA} set - -and separated by a / character. A leading / character must start the list and -a trailing / character must end it. It should be ordered following the above list, compatible with -the FITS list table for polarization definition. -*/ - -// NOTE POLI POLA is not in FITS STOKES other match and are defined in FITS as: I=1...V=4 and RR=-1...YX=-8 - -import java.util.Arrays; -import java.util.Set; -import java.util.HashSet; - -class Pol -{ - final static Set<String> POL_STATES - = new HashSet<>(Arrays.asList("I", "Q", "U", "V", "RR", "LL", "RL", "LR", "XX", "YY", "XY", "YX")); - - String[] states; - - Pol(String[] values) - { - for(String pol : values) - if(!POL_STATES.contains(pol)) - throw new IllegalArgumentException("POL value is " + pol +" but must be one of " + String.join(" ", POL_STATES)); - - this.states = values; - } - - - public String toString() - { - return "POL " + String.join(" ", states); - } -} diff --git a/data-access/servlet/src/main/java/common/vo/soda/Polygon.java b/data-access/servlet/src/main/java/common/vo/soda/Polygon.java deleted file mode 100644 index 745b58105acb01dcf213194c11a85688444e2990..0000000000000000000000000000000000000000 --- a/data-access/servlet/src/main/java/common/vo/soda/Polygon.java +++ /dev/null @@ -1,89 +0,0 @@ -/* REC DALI 3.3.7 Polygon -In spherical coordinates, all longitude values must fall within [0,360] and -all latitude values within [-90,90]. Vertices must be ordered such that the -polygon winding direction is counter-clockwise (when viewed from the origin -toward the sky) as described in (Rots, 2007). - - -Rots, A. (2007), 'Space-time coordinate metadata for the virtual observa- -tory', IVOA Recommendation. -http://www.ivoa.net/documents/latest/STC.html : - -4.5.1.4 Polygon -.... - In order to avoid ambiguities in direction, vertices need to be less -than 180 deg apart in both coordinates. Great circles or small circles spanning 180 deg -require specification of an extra intermediate vertex. -.... -The boundaries are considered part of the region. The inside of the region is -defined as that part of coordinate space that is encircled by the polygon in a -counter-clockwise sense. -... -*/ - -class Polygon -{ - - double[] lon; - double[] lat; - - public Polygon(String value) - { - parsePolygon(value); - } - - private void parsePolygon(String str) - { - String[] arr = str.strip().split(" +"); - - if(arr == null) - throw new IllegalArgumentException("POLYGON : no value, or value contains no space"); - else - { - final int minLen = 3*2; // REC SODA : at least 3 (lon,lat) points - if(arr.length < minLen) - throw new IllegalArgumentException( - "POLYGON : must have at least " + minLen + " elements delimited by space, but found " + arr.length); - else - { - boolean isEven = ((arr.length % 2) == 0); - if(!isEven) - throw new IllegalArgumentException("POLYGON must have even number of values, but has " + arr.length); - - lon = new double[arr.length/2]; - lat = new double[arr.length/2]; - - for(int ii=0; ii<(arr.length-1); ii+=2) - { - - double dbl = Double.parseDouble(arr[ii]); - if ((dbl < 0) || (dbl > 360)) - throw new IllegalArgumentException("POLYGON : first number must be in range [0,360] but found " + dbl); - else - this.lon[ii/2] = dbl; - - dbl = Double.parseDouble(arr[ii+1]); - if ((dbl < -90) || (dbl > 90)) - throw new IllegalArgumentException("POLYGON : second number must be in range [-90,90] but found " + dbl); - else - this.lat[ii/2] = dbl; - - } - - } - } - } - - - public String toString() - { - StringBuilder sb = new StringBuilder("POLYGON"); - int ii = 0; - for(ii = 0; ii<lon.length; ii++) - sb.append(" (" + String.valueOf(lon[ii]) + ", " + String.valueOf(lat[ii]) + ")"); - - return sb.toString(); - } - -} - diff --git a/data-access/servlet/src/main/java/common/vo/soda/Pos.java b/data-access/servlet/src/main/java/common/vo/soda/Pos.java deleted file mode 100644 index 55aaf524e425c97cc451606945cd2a326fdc377f..0000000000000000000000000000000000000000 --- a/data-access/servlet/src/main/java/common/vo/soda/Pos.java +++ /dev/null @@ -1,93 +0,0 @@ - -import java.util.logging.Logger; - - -class Pos -{ - protected static final Logger LOGGER = Logger.getLogger("Pos"); - - enum System {NONE, ICRS, GALACTIC}; - - String shape; - String value; - - System system; - - Circle circle; - Range range; - Polygon polygon; - - - public Pos(Circle circle) {this.shape = "CIRCLE"; this.circle = circle;}; - public Pos(Range range) {this.shape = "RANGE"; this.range = range;}; - public Pos(Polygon polygon) {this.shape = "POLYGON"; this.polygon = polygon;}; - - - public Pos(String value) - { - LOGGER.info("trace: " + value); - parsePos(value); - } - - - private void parsePos(String str) - { - String strArr[] = str.strip().split(" +", 2); - - if(strArr.length > 1) - { - this.shape = strArr[0].strip(); - this.value = strArr[1].strip(); - } - else - { - throw new IllegalArgumentException("POS value must have more then one space-separated elements but had " - + strArr.length + " elements)"); - } - - if(this.shape.equals("CIRCLE")) - { - this.circle = new Circle(this.value); - } - else if(this.shape.equals("RANGE")) - { - this.range = new Range(this.value); - } - else if(this.shape.equals("POLYGON")) - { - this.polygon = new Polygon(this.value); - } - else - { - throw new IllegalArgumentException("Valid POS shape is CIRCLE or RANGE or POLYGON but was: " + this.shape); - } - - } - - public void setSystem(Pos.System system) { this.system = system; } - - public String toString() - { - String shapeStr; - if(this.shape.equals("CIRCLE")) - { - shapeStr = this.circle.toString(); - } - else if(this.shape.equals("RANGE")) - { - shapeStr = this.range.toString(); - } - else if(this.shape.equals("POLYGON")) - { - shapeStr = this.polygon.toString(); - } - else - { - throw new IllegalArgumentException("Valid POS shape is CIRCLE or RANGE or POLYGON but was: " + this.shape); - } - - return "POS: " + shapeStr; - } - -} - diff --git a/data-access/servlet/src/main/java/common/vo/soda/Range.java b/data-access/servlet/src/main/java/common/vo/soda/Range.java deleted file mode 100644 index 8f74921f091e22f3e938a39fdb0dc4d650a1083c..0000000000000000000000000000000000000000 --- a/data-access/servlet/src/main/java/common/vo/soda/Range.java +++ /dev/null @@ -1,98 +0,0 @@ - -import java.util.Arrays; - -class Range -{ - - double lon1, lon2; - double lat1, lat2; - - public Range(String value) - { - parseRange(value); - } - - public Range(double lonCenter, double latCenter, double lonWidth, double latWidth) - { - lon1 = lonCenter - lonWidth/2.0; - lon2 = lonCenter + lonWidth/2.0; - lat1 = latCenter - latWidth/2.0; - lat2 = latCenter + latWidth/2.0; - } - - public Range(Circle circle) - { - lon1 = circle.lon - circle.radius; - lon2 = circle.lon + circle.radius; - - lat1 = circle.lat - circle.radius; - lat2 = circle.lat + circle.radius; - } - - - - public Range(Polygon polygon) - { - lon1 = Arrays.stream(polygon.lon).min().getAsDouble(); - lon2 = Arrays.stream(polygon.lon).max().getAsDouble(); - - lat1 = Arrays.stream(polygon.lat).min().getAsDouble(); - lat2 = Arrays.stream(polygon.lat).max().getAsDouble(); - } - - - - private void parseRange(String str) - { - String[] arr = str.strip().split(" +"); - - if(arr == null) - throw new IllegalArgumentException("RANGE : no value, or value contains no space"); - else - { - final int len = 4; - if(arr.length != len) - throw new IllegalArgumentException( - "RANGE : must have " + len + " elements delimited by space, but found " + arr.length); - else - { - - double dbl = Double.parseDouble(arr[0]); - if ((dbl < 0) || (dbl > 360)) - throw new IllegalArgumentException("RANGE : first number must be in range [0,360] but found " + dbl); - else - this.lon1 = dbl; - - dbl = Double.parseDouble(arr[1]); - if ((dbl < 0) || (dbl > 360)) - throw new IllegalArgumentException("RANGE : first number must be in range [0,360] but found " + dbl); - else - this.lon2 = dbl; - - - dbl = Double.parseDouble(arr[2]); - if ((dbl < -90) || (dbl > 90)) - throw new IllegalArgumentException("RANGE : second number must be in range [-90,90] but found " + dbl); - else - this.lat1 = dbl; - - dbl = Double.parseDouble(arr[3]); - if ((dbl < -90) || (dbl > 90)) - throw new IllegalArgumentException("RANGE : second number must be in range [-90,90] but found " + dbl); - else - this.lat2 = dbl; - - } - } - } - - - public String toString() - { - String str = "RANGE " + Double.valueOf(lon1) + " " + Double.valueOf(lon2) - + " " + Double.valueOf(lat1) + " " + Double.valueOf(lat2); - return str; - } - -} - diff --git a/data-access/servlet/src/main/java/common/vo/soda/SodaParam.java b/data-access/servlet/src/main/java/common/vo/soda/SodaParam.java deleted file mode 100644 index 6abd8445b448150c48fefcdf8cbdbdce3440ca65..0000000000000000000000000000000000000000 --- a/data-access/servlet/src/main/java/common/vo/soda/SodaParam.java +++ /dev/null @@ -1,11 +0,0 @@ - - -/* FIXME contains also VLKB-legacy params which will be removed once clients can do SODA */ - -public enum SodaParam -{ -ID, POS, CIRCLE, POLYGON, BAND, TIME, POL, -skysystem, specsystem, -pubdid,l,b,r,dl,db,vtype,vl,vu,nullvals -} - diff --git a/data-access/servlet/src/main/java/common/vo/soda/SodaParser.java b/data-access/servlet/src/main/java/common/vo/soda/SodaParser.java deleted file mode 100644 index 76378ccfeaf39e68317b3f6081b486aca9111f83..0000000000000000000000000000000000000000 --- a/data-access/servlet/src/main/java/common/vo/soda/SodaParser.java +++ /dev/null @@ -1,232 +0,0 @@ - -import java.util.logging.Logger; - -import java.util.Map; -import java.util.HashMap; -import java.util.Arrays; - - - - -class SodaParser -{ - protected static final Logger LOGGER = Logger.getLogger(ServletCutout.class.getName()); - - //public class SodaParamMap extends HashMap<SodaParam, String[]> {}; - Map<SodaParam, String[]> params; - - - Pos pos; - Band band; - Time time; - Pol pol; - - - public SodaParser(Map<SodaParam, String[]> params) - { - LOGGER.info("trace - there are " + params.size() + " params"); - this.params = params; - } - - - - /* return null if value not present or the value if present exactly once - * else throw MultiplicityNotSupoorted SODA_error - */ - private String soda_getSingleValue(SodaParam name) - { - LOGGER.info("trace"); - - String[] valArr = params.get(name); - - if(valArr == null) - return null; - else - if(valArr.length == 0) - return null; - else if(valArr.length == 1) - { - LOGGER.info("ParamFound " + name.toString() + " : " + valArr[0]); - return valArr[0]; - } - else - throw new MultiValuedParamNotSupported(name + " was found " + valArr.length + " times"); - } - -/* - public String sodaReq_getResponseFormat(SodaParamMap params, String defaultResponseFormat) - { - String respFormat = soda_getSingleValue(params, "RESPONSEFORMAT"); - return ((respFormat == null) ? defaultResponseFormat : respFormat); - } -*/ - - public boolean sodaReq_hasSodaId() - { - String id = soda_getSingleValue(SodaParam.ID); - return (id != null); - } - - - public String sodaReq_getId() - { - String pubdid = soda_getSingleValue(SodaParam.ID); - if(pubdid == null) - throw new IllegalArgumentException("ID is missing, but is mandatory"); - else - return pubdid; - } - - public Pos sodaReq_getPosCirclePolygon() - { - String valuePos = soda_getSingleValue(SodaParam.POS); - String valueCircle = soda_getSingleValue(SodaParam.CIRCLE); - String valuePolygon = soda_getSingleValue(SodaParam.POLYGON); - - Pos pos = null; - - if( (valuePos != null) && (valueCircle == null) && (valuePolygon == null) ) - { - pos = new Pos(valuePos); - LOGGER.info(pos.toString()); - } - else if( (valuePos == null) && (valueCircle != null) && (valuePolygon == null) ) - { - Circle circle = new Circle(valueCircle); - LOGGER.info(circle.toString()); - pos = new Pos(circle); - } - else if( (valuePos == null) && (valueCircle == null) && (valuePolygon != null) ) - { - Polygon polygon = new Polygon(valuePolygon); - LOGGER.info(polygon.toString()); - pos = new Pos(polygon); - } - else - { - throw new IllegalArgumentException("Exactly one of POS | CIRCLE | POLYGON must be given."); - } - - return pos; - } - - - public Band sodaReq_getBand() - { - String value = soda_getSingleValue(SodaParam.BAND); - if(value == null) - return null; - else - return new Band(value); - } - - - public Time sodaReq_getTime() - { - String value = soda_getSingleValue(SodaParam.TIME); - if(value == null) - return null; - else - return new Time(value); - } - - public Pol sodaReq_getPol() - { - String[] valArr = params.get(SodaParam.POL); - - - if(valArr == null) - return null; - else if(valArr.length < 1) - return null; - else - { - LOGGER.info("ParamFound " + SodaParam.POL.toString() + " : " + Arrays.toString(valArr)); - return new Pol(valArr); - } - } - - - /* VLKB */ - - - public String vlkbReq_getPubdid() - { - String pubdid = soda_getSingleValue(SodaParam.pubdid); - if(pubdid == null) - throw new IllegalArgumentException(SodaParam.pubdid.toString() + " is missing, but is mandatory"); - else - return pubdid; - } - - public Pos vlkbReq_getCircleRect() - { - Pos pos = null; - - String l_value = soda_getSingleValue(SodaParam.l); - String b_value = soda_getSingleValue(SodaParam.b); - - if( (l_value != null) && (b_value != null ) ) - { - String r_value = soda_getSingleValue(SodaParam.r); - if(r_value != null) - { - Circle circle = new Circle(l_value + " " + b_value + " " + r_value); - pos = new Pos(circle); - } - else - { - String dl_value = soda_getSingleValue(SodaParam.dl); - String db_value = soda_getSingleValue(SodaParam.db); - if((dl_value != null) && (db_value != null)) - { - double l = Double.parseDouble(l_value); - double b = Double.parseDouble(b_value); - double dl = Double.parseDouble(dl_value); - double db = Double.parseDouble(db_value); - - Range range = new Range(l, b, dl, db); - pos = new Pos(range); - } - else - { - throw new IllegalArgumentException("one of 'r' or '(dl,db)' pair must be provided to designate sky area"); - } - } - } - else - { - throw new IllegalArgumentException("VLKB sky position center (l,b) is missing however is mandatory"); - } - - return pos; - } - - - public Band vlkbReq_getVelocity() - { - Band band = null; - - String cvlow = soda_getSingleValue(SodaParam.vl); - String cvup = soda_getSingleValue(SodaParam.vu); - //String cvtype = soda_getSingleValue(params, "vtype"); // "1"=VELO_LSRK or "2"=WAVE_Barycentirc - - boolean vel_valid = (cvlow != null) && (cvup != null); - - if(vel_valid) - { - double vel_low = Double.parseDouble(cvlow); - double vel_up = Double.parseDouble(cvup); - band = new Band(vel_low, vel_up); - } - - return band; - } - - public boolean vlkbReq_getNullValues() - { - return (null != soda_getSingleValue(SodaParam.nullvals)); - } - -} - diff --git a/data-access/servlet/src/main/java/common/vo/soda/Time.java b/data-access/servlet/src/main/java/common/vo/soda/Time.java deleted file mode 100644 index 69afc8c7ef8707455a7556e2283d30321935c89a..0000000000000000000000000000000000000000 --- a/data-access/servlet/src/main/java/common/vo/soda/Time.java +++ /dev/null @@ -1,27 +0,0 @@ - -/* SODA 3.3.5 TIME -...numeric values interpreted as Modified Julian Date(s) in UTC. -As in DALI, open intervals use -Inf or +Inf as one limit. -*/ - -class Time -{ - enum System {MJD_UTC, NONE}; - - System system; - double mjdUtc[]; - - public Time(String value) - { - mjdUtc = Parser.getDaliIntervalPositiveValues(value, "TIME"); - } - - public void setSystem(Time.System system) { this.system = system; } - - public String toString() - { - return "TIME " + mjdUtc[0] + " " + mjdUtc[1]; - } - -} - diff --git a/data-access/servlet/src/main/java/datasets/Cutout.java b/data-access/servlet/src/main/java/datasets/Cutout.java index 096312f53c49d3ebfb88c240666e05648c045edf..33d5080efed34e7b0820735ed479f716c5c9124f 100644 --- a/data-access/servlet/src/main/java/datasets/Cutout.java +++ b/data-access/servlet/src/main/java/datasets/Cutout.java @@ -9,6 +9,8 @@ import java.io.InputStreamReader; import java.io.PrintWriter; import java.time.Instant;//Timestamp in cut-filename +import vo.parameter.*; + public interface Cutout { diff --git a/data-access/servlet/src/main/java/datasets/CutoutImpl.java b/data-access/servlet/src/main/java/datasets/CutoutImpl.java index b584ed6a5ca91e5c9f1c886b921faeca51c05e6d..cca2b70e0e121265bbe2d45e5a0de5d6b4a02bda 100644 --- a/data-access/servlet/src/main/java/datasets/CutoutImpl.java +++ b/data-access/servlet/src/main/java/datasets/CutoutImpl.java @@ -26,6 +26,8 @@ import java.nio.file.Paths; import java.time.*;// Timestamp in cut-filename import java.io.ByteArrayOutputStream; // for SODA direct streaming doSubimgStream +import vo.parameter.*; + class CutoutImpl implements Cutout { static final Logger LOGGER = Logger.getLogger(DatasetsImpl.class.getName()); diff --git a/data-access/servlet/src/main/java/datasets/json-rpc/JsonEncoder.java b/data-access/servlet/src/main/java/datasets/json-rpc/JsonEncoder.java index c76e0204766ab0381b81da81b1f71cc05a8b795f..f81bccdcde8a4677f0c14a03cd40a75107ac3dbb 100644 --- a/data-access/servlet/src/main/java/datasets/json-rpc/JsonEncoder.java +++ b/data-access/servlet/src/main/java/datasets/json-rpc/JsonEncoder.java @@ -8,6 +8,7 @@ import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; +import vo.parameter.*; public class JsonEncoder { diff --git a/data-access/servlet/src/main/java/datasets/json-rpc/JsonEncoderMerge.java b/data-access/servlet/src/main/java/datasets/json-rpc/JsonEncoderMerge.java index 96151188c1d832acd331d9c8ebe63e0340839114..32e6ba2abc7f500d2c4e82f8e0703d600b2f8def 100644 --- a/data-access/servlet/src/main/java/datasets/json-rpc/JsonEncoderMerge.java +++ b/data-access/servlet/src/main/java/datasets/json-rpc/JsonEncoderMerge.java @@ -6,6 +6,7 @@ import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; +import vo.parameter.*; public class JsonEncoderMerge { diff --git a/data-access/servlet/src/main/java/webapi/MonitorFilter.java b/data-access/servlet/src/main/java/webapi/MonitorFilter.java index c20a1dab8f97a79765c4d4b11aefa9d57a903cdb..4e985449fb39fa802277c4fea281fed81e65f9cd 100644 --- a/data-access/servlet/src/main/java/webapi/MonitorFilter.java +++ b/data-access/servlet/src/main/java/webapi/MonitorFilter.java @@ -21,6 +21,8 @@ import javax.servlet.http.Part; import javax.servlet.http.HttpServletRequestWrapper; import java.security.Principal; +import vo.parameter.*; + @javax.servlet.annotation.MultipartConfig public class MonitorFilter implements Filter { diff --git a/data-access/servlet/src/main/java/webapi/ServletCutout.java b/data-access/servlet/src/main/java/webapi/ServletCutout.java index 42a2e50879606e71aa56ce5f43e3af6c6c6678ae..bdeb7040d9905810278acab2471d7049c93e10b9 100644 --- a/data-access/servlet/src/main/java/webapi/ServletCutout.java +++ b/data-access/servlet/src/main/java/webapi/ServletCutout.java @@ -41,6 +41,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import vo.parameter.*; public class ServletCutout extends javax.servlet.http.HttpServlet { @@ -104,7 +105,7 @@ public class ServletCutout extends javax.servlet.http.HttpServlet Resolver rsl = new ResolverFromId(); rsl.resolve(id); - if(pos != null) pos.setSystem(Pos.System.valueOf(DEFAULT_SKY_SYSTEM)); + // if(pos != null) pos.setSystem(Pos.System.valueOf(DEFAULT_SKY_SYSTEM)); if(band != null) band.setSystem(Band.System.valueOf(DEFAULT_SPEC_SYSTEM)); if(time != null) time.setSystem(Time.System.valueOf(DEFAULT_TIME_SYSTEM)); @@ -261,18 +262,18 @@ public class ServletCutout extends javax.servlet.http.HttpServlet writer.close(); } - - private Map<SodaParam, String[]> collectSodaParams(HttpServletRequest req) +/* + private Map<VoParam, String[]> collectSodaParams(HttpServletRequest req) { - Map<SodaParam, String[]> params = new HashMap<SodaParam, String[]>(); - for(SodaParam paramToken : SodaParam.values()) + Map<VoParam, String[]> params = new HashMap<VoParam, String[]>(); + for(VoParam paramToken : VoParam.values()) { String[] paramValue = req.getParameterValues(paramToken.toString()); params.put(paramToken, paramValue); } return params; } - +*/ protected void convertHttpToSoda(HttpServletRequest request, HttpServletResponse response) @@ -283,7 +284,7 @@ public class ServletCutout extends javax.servlet.http.HttpServlet try { - Map<SodaParam, String[]> params = collectSodaParams(request); + /*/Map<SodaParam, String[]> params = collectSodaParams(request); SodaParser parser = new SodaParser(params); String id = null; @@ -306,6 +307,20 @@ public class ServletCutout extends javax.servlet.http.HttpServlet pos = parser.vlkbReq_getCircleRect(); band = parser.vlkbReq_getVelocity(); } +*/ + Map<String, String[]> params = request.getParameterMap(); + + String id = SingleStringParam.parseSingleStringParam(params, "ID"); + Pos pos = Pos.parsePos(params, DEFAULT_SKY_SYSTEM); + Band band = Band.parseBand(params, DEFAULT_SPEC_SYSTEM); + Time time = Time.parseTime(params, DEFAULT_TIME_SYSTEM); + Pol pol = Pol.parsePol(params); + + + + + + String respFormat = sodaReq_getResponseFormat(request, DEFAULT_RESPONSEFORMAT); diff --git a/data-access/servlet/src/main/java/webapi/ServletMerge.java b/data-access/servlet/src/main/java/webapi/ServletMerge.java index 2415e543489c224949535e75f80b527082857195..7fce57f1d2757dd967ddfadcb750101ece71794a 100644 --- a/data-access/servlet/src/main/java/webapi/ServletMerge.java +++ b/data-access/servlet/src/main/java/webapi/ServletMerge.java @@ -34,7 +34,7 @@ import java.util.TimeZone; import java.security.Principal; - +import vo.parameter.*; public class ServletMerge extends javax.servlet.http.HttpServlet { @@ -88,7 +88,7 @@ public class ServletMerge extends javax.servlet.http.HttpServlet try { - Map<SodaParam, String[]> params = collectSodaParams(request); + /* Map<SodaParam, String[]> params = collectSodaParams(request); SodaParser parser = new SodaParser(params); String id = null; @@ -111,6 +111,17 @@ public class ServletMerge extends javax.servlet.http.HttpServlet pos = parser.vlkbReq_getCircleRect(); band = parser.vlkbReq_getVelocity(); } +*/ + Map<String, String[]> params = request.getParameterMap(); + String id = null; + Pos pos = null; + Band band = null; + Time time = null; + Pol pol = null; + + + + String respFormat = DEFAULT_RESPONSEFORMAT;//sodaReq_getResponseFormat(request, DEFAULT_RESPONSEFORMAT); @@ -179,7 +190,7 @@ public class ServletMerge extends javax.servlet.http.HttpServlet LOGGER.info("processRequest normal exit"); } - +/* private Map<SodaParam, String[]> collectSodaParams(HttpServletRequest req) { Map<SodaParam, String[]> params = new HashMap<SodaParam, String[]>(); @@ -190,7 +201,7 @@ public class ServletMerge extends javax.servlet.http.HttpServlet } return params; } - +*/ /* semi-colon separated list of pudids convert to arra */ private String[] parseLegacyPubdidArr(String pubdids) diff --git a/java-libs/lib/vlkb-volib-0.9-SNAPSHOT.jar b/java-libs/lib/vlkb-volib-0.9-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..9ba5160584a847c38f4cae9a2732f69845e30032 Binary files /dev/null and b/java-libs/lib/vlkb-volib-0.9-SNAPSHOT.jar differ