package org.gcube.dataanalysis.wps.statisticalmanager.synchserver.mapping; import java.util.HashMap; import org.gcube.dataanalysis.ecoengine.datatypes.enumtypes.TableTemplates; public class TableTemplatesMapper { public HashMap dbTemplatesMap = new HashMap(); public HashMap linksMap = new HashMap(); public HashMap varsMap = new HashMap(); public TableTemplatesMapper(){ variablesMapping(); tablesMapping(); linksMapping(); } public void tablesMapping(){ dbTemplatesMap = new HashMap(); dbTemplatesMap.put(TableTemplates.HSPEN.name(), "CREATE TABLE #table_name# (#vars#, CONSTRAINT #table_name#_pkey PRIMARY KEY (speciesid, lifestage))"); dbTemplatesMap.put(TableTemplates.HCAF.name(), "CREATE TABLE #table_name# (#vars#, CONSTRAINT #table_name#_pkey PRIMARY KEY (csquarecode))"); dbTemplatesMap.put(TableTemplates.HSPEC.name(), "CREATE TABLE #table_name# (#vars#)"); dbTemplatesMap.put(TableTemplates.OCCURRENCE_AQUAMAPS.name(), "CREATE TABLE #table_name# (#vars#)"); dbTemplatesMap.put(TableTemplates.OCCURRENCE_SPECIES.name(), "CREATE TABLE #table_name# (#vars#)"); dbTemplatesMap.put(TableTemplates.MINMAXLAT.name(), "CREATE TABLE #table_name# (#vars#)"); dbTemplatesMap.put(TableTemplates.TRAININGSET.name(), "CREATE TABLE #table_name# (#vars#)"); dbTemplatesMap.put(TableTemplates.TESTSET.name(), "CREATE TABLE #table_name# (#vars#)"); dbTemplatesMap.put(TableTemplates.CLUSTER.name(), "CREATE TABLE #table_name# (#vars#)"); dbTemplatesMap.put(TableTemplates.TIMESERIES.name(), "CREATE TABLE #table_name# (#vars#)"); dbTemplatesMap.put(TableTemplates.GENERIC.name(), "CREATE TABLE #table_name# (#vars#)"); } public void linksMapping(){ linksMap = new HashMap(); linksMap.put(TableTemplates.HSPEN.name(), "(HSPEN) https://data.d4science.net/kLeQ"); linksMap.put(TableTemplates.HCAF.name(), "(HCAF) https://data.d4science.net/AhwE"); linksMap.put(TableTemplates.HSPEC.name(),"(HSPEC) https://data.d4science.net/TNCR"); linksMap.put(TableTemplates.OCCURRENCE_AQUAMAPS.name(), "(OCCURRENCE_AQUAMAPS) https://data.d4science.net/Un3H"); linksMap.put(TableTemplates.OCCURRENCE_SPECIES.name(), "(OCCURRENCE_SPECIES) https://data.d4science.net/wKRW"); linksMap.put(TableTemplates.MINMAXLAT.name(), "(MINMAXLAT) https://data.d4science.net/fPFQ"); linksMap.put(TableTemplates.TRAININGSET.name(), "(TRAININGSET) https://data.d4science.net/NgvU"); linksMap.put(TableTemplates.TESTSET.name(), "(TESTSET) https://data.d4science.net/EpjE"); linksMap.put(TableTemplates.CLUSTER.name(), "(CLUSTER) https://data.d4science.net/XN7z"); linksMap.put(TableTemplates.TIMESERIES.name(), "(TIMESERIES) https://data.d4science.net/5g4F"); linksMap.put(TableTemplates.GENERIC.name(), "(GENERIC) A generic comma separated csv file in UTF-8 encoding"); } public void variablesMapping(){ varsMap = new HashMap(); varsMap.put(TableTemplates.HSPEN.name(), "speccode integer, speciesid character varying NOT NULL, lifestage character varying NOT NULL, faoareas character varying(100), faoareasref character varying, faocomplete smallint, nmostlat real, smostlat real, wmostlong real, emostlong real, lme character varying(180), depthyn smallint, depthmin integer, depthmax integer, depthprefmin integer, depthprefmax integer, meandepth smallint, depthref character varying, pelagic smallint, tempyn smallint, tempmin real, tempmax real, tempprefmin real, tempprefmax real, tempref character varying, salinityyn smallint, salinitymin real, salinitymax real, salinityprefmin real, salinityprefmax real, salinityref character varying, primprodyn smallint, primprodmin real, primprodmax real, primprodprefmin real, primprodprefmax real, primprodprefref character varying, iceconyn smallint, iceconmin real, iceconmax real, iceconprefmin real, iceconprefmax real, iceconref character varying, landdistyn smallint, landdistmin real, landdistmax real, landdistprefmin real, landdistprefmax real, landdistref character varying, remark character varying, datecreated timestamp without time zone, datemodified timestamp without time zone, expert integer, dateexpert timestamp without time zone, envelope smallint, mapdata smallint, effort smallint, layer character(1), usepoints smallint, rank smallint"); varsMap.put(TableTemplates.HCAF.name(), "csquarecode character varying(10) NOT NULL, depthmin real, depthmax real, depthmean real, depthsd real, sstanmean real, sstansd real, sstmnmax real, sstmnmin real, sstmnrange real, sbtanmean real, salinitymean real, salinitysd real, salinitymax real, salinitymin real, salinitybmean real, primprodmean integer, iceconann real, iceconspr real, iceconsum real, iceconfal real, iceconwin real, faoaream integer, eezall character varying, lme integer, landdist integer, oceanarea real, centerlat real, centerlong real"); varsMap.put(TableTemplates.HSPEC.name(), "speciesid character varying, csquarecode character varying, probability real, boundboxyn smallint, faoareayn smallint, faoaream integer, eezall character varying, lme integer"); varsMap.put(TableTemplates.OCCURRENCE_AQUAMAPS.name(), "csquarecode character varying(10) NOT NULL, speciesid character varying NOT NULL, speccode integer, goodcell smallint, infaoarea smallint, inboundbox smallint, centerlat numeric, centerlong numeric, faoaream smallint, recordid integer NOT NULL"); varsMap.put(TableTemplates.OCCURRENCE_SPECIES.name(), "institutioncode character varying, collectioncode character varying, cataloguenumber character varying, dataset character varying, dataprovider character varying, datasource character varying, scientificnameauthorship character varying, identifiedby character varying, credits character varying, recordedby character varying, eventdate timestamp without time zone, modified timestamp without time zone, scientificname character varying, kingdom character varying, family character varying, locality character varying, country character varying, citation character varying, decimallatitude double precision, decimallongitude double precision, coordinateuncertaintyinmeters character varying, maxdepth double precision, mindepth double precision, basisofrecord character varying" ); varsMap.put(TableTemplates.MINMAXLAT.name(), "speciesid character varying, maxclat real, minclat real"); varsMap.put(TableTemplates.TRAININGSET.name(), ", label real, groupID character varying"); varsMap.put(TableTemplates.TESTSET.name(), ", tvalue real"); varsMap.put(TableTemplates.CLUSTER.name(), " , clusterid character varying, outlier boolean"); varsMap.put(TableTemplates.TIMESERIES.name(), ", time timestamp without time zone"); varsMap.put(TableTemplates.GENERIC.name(), ""); } public String generateCreateStatement(String tablename, String template, String variables){ return dbTemplatesMap.get(template).replace("#table_name#", tablename).replace("#vars#", variables); } }