From c7811f29b6222d932aecb701c369b755e7584e6a Mon Sep 17 00:00:00 2001 From: "francesco.mangiacrapa" Date: Tue, 1 Feb 2022 10:56:23 +0100 Subject: [PATCH] removed guava --- .classpath | 6 +- pom.xml | 11 +- .../data/geoutility/CustomerTable.java | 165 +++++++++++++++ .../spatial/data/geoutility/GeoJUnitTest.java | 195 ++++++++++++++++-- 4 files changed, 355 insertions(+), 22 deletions(-) create mode 100644 src/test/java/org/gcube/spatial/data/geoutility/CustomerTable.java diff --git a/.classpath b/.classpath index c278245..8cd988e 100644 --- a/.classpath +++ b/.classpath @@ -6,7 +6,11 @@ - + + + + + diff --git a/pom.xml b/pom.xml index 323e66c..73945bb 100644 --- a/pom.xml +++ b/pom.xml @@ -81,11 +81,12 @@ slf4j-log4j12 1.6.4 - - log4j - log4j - 1.2.16 - + + + + + + junit diff --git a/src/test/java/org/gcube/spatial/data/geoutility/CustomerTable.java b/src/test/java/org/gcube/spatial/data/geoutility/CustomerTable.java new file mode 100644 index 0000000..2043a68 --- /dev/null +++ b/src/test/java/org/gcube/spatial/data/geoutility/CustomerTable.java @@ -0,0 +1,165 @@ +//package org.gcube.spatial.data.geoutility; +// +//import java.util.EnumSet; +//import java.util.Map; +//import java.util.stream.Stream; +// +//import org.gcube.spatial.data.geoutility.CustomerTable.Column; +// +//import com.google.common.base.Predicate; +//import com.google.common.collect.HashBasedTable; +//import com.google.common.collect.Maps; +//import com.google.common.collect.Table; +// +//public class CustomerTable { +// +// public enum Column { +// PARENT_LOCATION_ID, LOCATION_ID, LOCATION_TYPE, LOCATION_DEN; +// } +// +// private Table table = HashBasedTable.create(); +// +// @Override +// public String toString() { +// return table.toString(); +// } +// +// public void createRow(String[] values) { +// if (Column.values().length != values.length) { +// throw new IllegalArgumentException(); +// } +// Integer rowNum = table.rowKeySet().size() + 1; +// for (int i = 0; i < values.length; i++) { +// table.put(rowNum, Column.values()[i], values[i]); +// } +// } +// +//// private void query() { +//// // TODO Auto-generated method stub +//// +//// } +//// +//// public Table query(Predicate> query) { +//// return query(query, allOf(Column.class)); +//// } +// +// public Table query(Predicate> query, EnumSet columns) { +// Map> filtered = Maps.filterValues(table.rowMap(), query); +// return createResultTable(filtered, columns); +// } +// +// private Table createResultTable(Map> resultMap, +// final EnumSet columns) { +// +// int i = 0; +// Table result = HashBasedTable.create(); +// for (Map row : resultMap.values()) { +// i++; +// for (Column column : row.keySet()) { +// if (columns.contains(column)) { +// result.put(i, column, row.get(column)); +// } +// } +// } +// return result; +// } +// +// public static void main(String[] args) { +// +// } +// +// public Stream> filter(String column, String value) { +// Stream> stream = table.rowMap().values().stream().filter(row -> { +// return row.get(column).contains(value); +// }); +// return stream; +// } +// +// public Table table() { +// +// return table; +// } +//} +// +//class EqualPredicate implements Predicate> { +// +// private Column column; +// private String value; +// +// public EqualPredicate(Column column, String value) { +// this.column = column; +// this.value = value; +// } +// +// @Override +// public boolean apply(Map input) { +// return input.get(column) != null && input.get(column).equals(value); +// +// } +// +// public static EqualPredicate equal(Column column, String value) { +// return new EqualPredicate(column, value); +// } +// +// @Override +// public String toString() { +// StringBuilder builder = new StringBuilder(); +// builder.append("EqualPredicate [column="); +// builder.append(column); +// builder.append(", value="); +// builder.append(value); +// builder.append("]"); +// return builder.toString(); +// } +// +// +//} +// +// +//class Location { +// +// String parentId; +// String id; +// String type; +// String name; // is denominazione +// +// public Location(String parentId, String id, String type, String name) { +// super(); +// this.parentId = parentId; +// this.id = id; +// this.type = type; +// this.name = name; +// } +// +// public String getParentId() { +// return parentId; +// } +// +// public String getId() { +// return id; +// } +// +// public String getType() { +// return type; +// } +// +// public String getName() { +// return name; +// } +// +// @Override +// public String toString() { +// StringBuilder builder = new StringBuilder(); +// builder.append("Location [parentId="); +// builder.append(parentId); +// builder.append(", id="); +// builder.append(id); +// builder.append(", type="); +// builder.append(type); +// builder.append(", name="); +// builder.append(name); +// builder.append("]"); +// return builder.toString(); +// } +// +//} \ No newline at end of file diff --git a/src/test/java/org/gcube/spatial/data/geoutility/GeoJUnitTest.java b/src/test/java/org/gcube/spatial/data/geoutility/GeoJUnitTest.java index af92621..0e0e496 100644 --- a/src/test/java/org/gcube/spatial/data/geoutility/GeoJUnitTest.java +++ b/src/test/java/org/gcube/spatial/data/geoutility/GeoJUnitTest.java @@ -3,17 +3,22 @@ */ package org.gcube.spatial.data.geoutility; -import java.net.URLEncoder; import java.util.ArrayList; +import java.util.EnumSet; import java.util.List; +import java.util.Map; +//import org.gcube.spatial.data.geoutility.CustomerTable.Column; import org.gcube.spatial.data.geoutility.shared.wfs.FeatureRow; import org.gcube.spatial.data.geoutility.shared.wfs.WFSParameter; import org.gcube.spatial.data.geoutility.wfs.FeatureParser; import org.gcube.spatial.data.geoutility.wfs.WFSQueryBuilder; import org.gcube.spatial.data.geoutility.wms.WmsUrlValidator; +import org.junit.Before; import org.junit.Test; +//import com.google.common.collect.Table; + /** * The Class GeoJUnitTest. * @@ -21,10 +26,13 @@ import org.junit.Test; */ public class GeoJUnitTest { +// CustomerTable tableReg = new CustomerTable(); +// CustomerTable tableProv = new CustomerTable(); + /** * Test get styles. */ - //@Test + // @Test public void testGetStyles() { // String wmsRequest = "http://repoigg.services.iit.cnr.it:8080/geoserver/IGG/ows?service=wms&version=1.1.0&request=GetMap&layers==IGG:area_temp_1000&width=676&height=330&srs=EPSG:4326&crs=EPSG:4326&format=application/openlayers&bbox=-85.5,-180.0,90.0,180.0"; // String wmsRequest = "http://thredds-d-d4s.d4science.org/thredds/wms/public/netcdf/test20.nc?service=wms&version=1.3.0&request=GetMap&layers=analyzed_field&styles=&width=640&height=480&srs=EPSG:4326&CRS=EPSG:4326&format=image/png&COLORSCALERANGE=auto&bbox=-85.0,-180.0,85.0,180.0"; @@ -78,16 +86,17 @@ public class GeoJUnitTest { } - //@Test - public void testWFSRequest() { + /*@Before + public void fillRegioneProvinceComuniWFSRequest() { + String wfsEndPoint = "https://geoserver1.dev.d4science.org/geoserver/devvre/wfs"; try { - //REGIONI + // REGIONI String layerName = "devvre:Reg01012021_g_WGS84"; List propertyName = new ArrayList(); propertyName.add("devvre:COD_REG"); propertyName.add("devvre:DEN_REG"); - //Querying list of Regioni + // Querying list of Regioni WFSQueryBuilder queryBuilder = new WFSQueryBuilder(); queryBuilder.addParameter(WFSParameter.SERVICE, WFSParameter.SERVICE.getValue()); queryBuilder.addParameter(WFSParameter.VERSION, "2.0.0"); @@ -95,22 +104,27 @@ public class GeoJUnitTest { queryBuilder.addParameter(WFSParameter.TYPENAME, layerName); queryBuilder.addParameter(WFSParameter.OUTPUTFORMAT, WFSParameter.OUTPUTFORMAT.getValue()); queryBuilder.addParameter(WFSParameter.PROPERTYNAME, propertyName, ","); + System.out.println(queryBuilder.getQuery()); FeatureParser fp = new FeatureParser(); List rows = fp.getWFSFeatures(wfsEndPoint, queryBuilder); System.out.println("Regioni: "); + for (FeatureRow featureRow : rows) { System.out.println(featureRow); + Map> properties = featureRow.getMapProperties(); + tableReg.createRow(new String[] { "", properties.get("COD_REG").get(0), "Regione", + properties.get("DEN_REG").get(0) }); } - - - //PROVINCE + System.out.println("Table regioni: " + tableReg); + + // PROVINCE layerName = "devvre:ProvCM01012021_g_WGS84"; propertyName = new ArrayList(); propertyName.add("devvre:COD_REG"); propertyName.add("devvre:COD_PROV"); propertyName.add("devvre:DEN_PROV"); - propertyName.add("devvre:DEN_CM"); //è pieno per i capoluoghi di provincia - + propertyName.add("devvre:DEN_CM"); // è pieno per i capoluoghi di provincia + queryBuilder = new WFSQueryBuilder(); queryBuilder.addParameter(WFSParameter.SERVICE, WFSParameter.SERVICE.getValue()); queryBuilder.addParameter(WFSParameter.VERSION, "2.0.0"); @@ -118,20 +132,169 @@ public class GeoJUnitTest { queryBuilder.addParameter(WFSParameter.TYPENAME, layerName); queryBuilder.addParameter(WFSParameter.OUTPUTFORMAT, WFSParameter.OUTPUTFORMAT.getValue()); queryBuilder.addParameter(WFSParameter.PROPERTYNAME, propertyName, ","); - queryBuilder.addParameter(WFSParameter.CQL_FILTER, URLEncoder.encode("devvre:COD_REG=9", "UTF-8")); + // queryBuilder.addParameter(WFSParameter.CQL_FILTER, + // URLEncoder.encode("devvre:COD_REG=9", "UTF-8")); + System.out.println(queryBuilder.getQuery()); fp = new FeatureParser(); rows = fp.getWFSFeatures(wfsEndPoint, queryBuilder); + System.out.println("PROVINCE: "); for (FeatureRow featureRow : rows) { System.out.println(featureRow); - } - + Map> properties = featureRow.getMapProperties(); + String denProv = properties.get("DEN_PROV").get(0); + if (denProv == null || denProv.isEmpty() || denProv.equals("-")) { + denProv = properties.get("DEN_CM").get(0); // è un capoluogo di provincia + } - System.out.println(queryBuilder.getQuery()); + tableProv.createRow(new String[] { properties.get("COD_REG").get(0), properties.get("COD_PROV").get(0), + "Provincia", denProv }); + } + + // COMUNI +// layerName = "devvre:Com01012021_g_WGS84"; +// propertyName = new ArrayList(); +// //propertyName.add("devvre:COD_REG"); +// propertyName.add("devvre:COD_PROV"); +// propertyName.add("devvre:COMUNE"); +// +// queryBuilder = new WFSQueryBuilder(); +// queryBuilder.addParameter(WFSParameter.SERVICE, WFSParameter.SERVICE.getValue()); +// queryBuilder.addParameter(WFSParameter.VERSION, "2.0.0"); +// queryBuilder.addParameter(WFSParameter.REQUEST, "GetFeature"); +// queryBuilder.addParameter(WFSParameter.TYPENAME, layerName); +// queryBuilder.addParameter(WFSParameter.OUTPUTFORMAT, WFSParameter.OUTPUTFORMAT.getValue()); +// queryBuilder.addParameter(WFSParameter.PROPERTYNAME, propertyName, ","); +// queryBuilder.addParameter(WFSParameter.CQL_FILTER, URLEncoder.encode("devvre:COD_PROV=9", "UTF-8")); +// System.out.println(queryBuilder.getQuery()); +// fp = new FeatureParser(); +// rows = fp.getWFSFeatures(wfsEndPoint, queryBuilder); +// +// System.out.println("COMUNI: "); +// for (FeatureRow featureRow : rows) { +// System.out.println(featureRow); +// Map> properties = featureRow.getMapProperties(); +// String denProv = properties.get("DEN_PROV").get(0); +// if(denProv==null || denProv.isEmpty()) { +// denProv = properties.get("DEN_CM").get(0); //è un capoluogo di provincia +// } +// +// tableProv.createRow(new String[] {properties.get("COD_REG").get(0),properties.get("COD_PROV").get(0),"Provincia",denProv}); +// } +// + + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + }*/ + + /*@Test + public void testQueryTableRegioneProvince() { + + try { + + Table theTableProv = tableReg.table(); + List locations = new ArrayList(); + for (Integer tableRowId : theTableProv.rowKeySet()) { + Location location = rowToLocation(theTableProv, tableRowId); + locations.add(location); + } + + System.out.println("Location Regioni: " + locations); + + String regID = "9"; + EqualPredicate equalPredicate = new EqualPredicate(Column.PARENT_LOCATION_ID, regID); + EnumSet returnColumn = EnumSet.of(Column.PARENT_LOCATION_ID, Column.LOCATION_ID, + Column.LOCATION_TYPE, Column.LOCATION_DEN); + + Table tableResult = tableProv.query(equalPredicate, returnColumn); + + List locationResult = new ArrayList(); + for (Integer rowId : tableResult.rowKeySet()) { + Location location = rowToLocation(tableResult, rowId); + locationResult.add(location); + } + + System.out.println("Query location for " + equalPredicate + ":"); + System.out.println(locationResult); + +// +// String valueType = "Regione"; +// String regId = "9"; //Toscana +// Stream> stream1 = tableReg.table().rowMap().values().stream().filter(row -> { +// return row.get(Column.LOCATION_TYPE) != null && row.get(Column.LOCATION_ID) !=null && row.get(Column.LOCATION_TYPE).equals(valueType) && row.get(Column.LOCATION_ID).equals(regId); +// }); +// +// EqualPredicate equalPredicate = new EqualPredicate(Column.LOCATION_ID, regId); +// stream1.forEach(s -> System.out.println(s)); +// // Print the stream +// System.out.println("Query regione:" +tableReg.query(equalPredicate,returnColumn)); +// +// CustomerTable tableProv = new CustomerTable(); +// +// //PROVINCE +// layerName = "devvre:ProvCM01012021_g_WGS84"; +// propertyName = new ArrayList(); +// propertyName.add("devvre:COD_REG"); +// propertyName.add("devvre:COD_PROV"); +// propertyName.add("devvre:DEN_PROV"); +// propertyName.add("devvre:DEN_CM"); //è pieno per i capoluoghi di provincia +// +// queryBuilder = new WFSQueryBuilder(); +// queryBuilder.addParameter(WFSParameter.SERVICE, WFSParameter.SERVICE.getValue()); +// queryBuilder.addParameter(WFSParameter.VERSION, "2.0.0"); +// queryBuilder.addParameter(WFSParameter.REQUEST, "GetFeature"); +// queryBuilder.addParameter(WFSParameter.TYPENAME, layerName); +// queryBuilder.addParameter(WFSParameter.OUTPUTFORMAT, WFSParameter.OUTPUTFORMAT.getValue()); +// queryBuilder.addParameter(WFSParameter.PROPERTYNAME, propertyName, ","); +// //queryBuilder.addParameter(WFSParameter.CQL_FILTER, URLEncoder.encode("devvre:COD_REG=9", "UTF-8")); +// fp = new FeatureParser(); +// rows = fp.getWFSFeatures(wfsEndPoint, queryBuilder); +// System.out.println("PROVINCE: "); +// for (FeatureRow featureRow : rows) { +// //System.out.println(featureRow); +// Map> properties = featureRow.getMapProperties(); +// String denProv = properties.get("DEN_PROV").get(0); +// if(denProv==null || denProv.isEmpty()) { +// denProv = properties.get("DEN_CM").get(0); //è un capoluogo di provincia +// } +// +// tableProv.createRow(new String[] {properties.get("COD_REG").get(0),properties.get("COD_PROV").get(0),"Provincia",denProv}); +// } +// +// System.out.println("Table PROVINCE: "+tableProv); +// +// Table theTableProv = tableProv.table(); +// List locationsProv = new ArrayList(); +// for (Integer tableRowId : theTableProv.rowKeySet()) { +// Location location = rowToLocation(table, tableRowId); +// locationsProv.add(location); +// } +// System.out.println("Location Province: "+locationsProv); +// +// +// EqualPredicate ep = new EqualPredicate(Column.PARENT_LOCATION_ID,"5"); +// Table provQuery = tableProv.query(ep, returnColumn); +// System.out.println("Query PROVINCIA: "+provQuery); +// +// +// System.out.println(queryBuilder.getQuery()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } - } + }*/ + + /* + public static Location rowToLocation(Table table, Integer rowId) { + Map column = table.row(rowId); + column.get(Column.PARENT_LOCATION_ID); + column.get(Column.LOCATION_ID); + column.get(Column.LOCATION_TYPE); + column.get(Column.LOCATION_DEN); + return new Location(column.get(Column.PARENT_LOCATION_ID), column.get(Column.LOCATION_ID), + column.get(Column.LOCATION_TYPE), column.get(Column.LOCATION_DEN)); + }*/ }