implementing test code for mapping d4gna project to catalogue item

This commit is contained in:
Francesco Mangiacrapa 2024-06-18 16:47:23 +02:00
parent 0ae2c3895d
commit fca972e68c
2 changed files with 47 additions and 17 deletions

View File

@ -37,7 +37,7 @@ import test.TestContextConfig;
public class GeoportalToCatalogue { public class GeoportalToCatalogue {
public final static String profileID = "profiledConcessioni"; public final static String profileID = "profiledConcessioni";
public final static String projectID = "66714cdea08b3011b506e089"; public final static String projectID = "66697afda08b3011b506ddb6";
public static void main(String[] args) { public static void main(String[] args) {
@ -52,7 +52,8 @@ public class GeoportalToCatalogue {
Project theProject = clientProjects.getProjectByID(profileID, projectID); Project theProject = clientProjects.getProjectByID(profileID, projectID);
Document asDocument = Serialization.asDocument(theProject); Document asDocument = Serialization.asDocument(theProject);
//System.out.println(prettyPrintUsingGson(asDocument.toJson())); System.out.println("Source JSON:");
System.out.println(prettyPrintUsingGson(asDocument.toJson()));
applyMappingToCatalogue(asDocument.toJson()); applyMappingToCatalogue(asDocument.toJson());
} catch (Exception e) { } catch (Exception e) {
@ -105,32 +106,36 @@ public class GeoportalToCatalogue {
String toCatalogueJSON = stringWriter.toString(); String toCatalogueJSON = stringWriter.toString();
System.out.println("\n\ntoCatalogueString:" + toCatalogueJSON); System.out.println("\n\ntoCatalogueString:" + toCatalogueJSON);
System.out.println("\nPretty printing 1");
//System.out.println(prettyPrintUsingGson(toCatalogueJSON)); System.out.println(prettyPrintUsingGson(toCatalogueJSON));
com.jayway.jsonpath.Configuration configuration = com.jayway.jsonpath.Configuration.builder() com.jayway.jsonpath.Configuration configuration = com.jayway.jsonpath.Configuration.builder()
.jsonProvider(new JsonOrgJsonProvider()).build(); .jsonProvider(new JsonOrgJsonProvider()).build();
//GIS LINK
JSONObject theRootDocument = JSONObjectOrdered.instance(); JSONObject theRootDocument = JSONObjectOrdered.instance();
theRootDocument.put("key", "Gis Link"); theRootDocument.put("key", "Gis Link");
theRootDocument.put("value", "https://data.dev.d4science.org"); theRootDocument.put("value", "https://data.dev.d4science.org/test/my_gis_link");
System.out.println("gis link: "+theRootDocument); System.out.println("gis link: " + theRootDocument);
DocumentContext theDoc = JsonPath.parse(toCatalogueJSON,configuration); DocumentContext theDoc = JsonPath.parse(toCatalogueJSON, configuration);
theDoc.add("$.extras", theRootDocument); theDoc.add("$.extras", theRootDocument);
System.out.println("\n\nTo pretty print JSON:"); System.out.println("\n\nTo pretty print JSON:");
//System.out.println("gis link: "+theDoc.jsonString()); // System.out.println("gis link: "+theDoc.jsonString());
System.out.println(prettyPrintUsingGson(theDoc.jsonString())); System.out.println(prettyPrintUsingGson(theDoc.jsonString()));
} catch (IOException e) { } catch (IOException e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} catch (TemplateException e) { } catch (TemplateException e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} catch (JSONException e) { }
catch (JSONException e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }

View File

@ -151,6 +151,16 @@ Starting document mapping to Catalogue
</#if> </#if>
</#if> </#if>
<#-- Mapping first "Immagine Rappresentativa" as resource -->
<#if theDocument.immaginiRappresentative?? && theDocument.immaginiRappresentative[0]?? && theDocument.immaginiRappresentative[0].fileset?? && theDocument.immaginiRappresentative[0].fileset._payloads??>
<#assign payloads = theDocument.immaginiRappresentative[0].fileset._payloads>
<#if payloads?size!=0>
<#-- Getting the first payload -->
<#assign payload = payloads[0]>
<@assignResource name=payload._name url=payload._link description=theDocument.immaginiRappresentative[0].didascalia format=payload._mimetype></@assignResource>
</#if>
</#if>
<#-- Building Resources --> <#-- Building Resources -->
<@buildResources the_resources=resources></@buildResources> <@buildResources the_resources=resources></@buildResources>
@ -182,8 +192,8 @@ Starting document mapping to Catalogue
<#-- Mapping the year of the "dataInizioProgetto" as group --> <#-- Mapping the year of the "dataInizioProgetto" as group -->
<#assign dateString = theDocument.dataInizioProgetto?trim> <#assign dateString = theDocument.dataInizioProgetto?trim>
<#assign year = dateString?split("-")[0]> <#assign dataInizioYear = dateString?split("-")[0]>
<@assignGroup in_groups=year></@assignGroup> <#-- <@assignGroup in_groups=dataInizioYear></@assignGroup> -->
<#-- Building groups --> <#-- Building groups -->
<@buildGroups the_groups=groups></@buildGroups> <@buildGroups the_groups=groups></@buildGroups>
@ -230,16 +240,31 @@ Starting document mapping to Catalogue
</#if> </#if>
<#if theDocument.cronologiaMacrofase??> <#if theDocument.cronologiaMacrofase??>
<@assignExtraField key="Cronologia (Macrofase)" value=theDocument.cronologiaMacrofase asObject=false></@assignExtraField> <#if theDocument.cronologiaMacrofase?is_sequence>
<#list theDocument.cronologiaMacrofase as my_extra>
<@assignExtraField key="Cronologia (Macrofase)" value=my_extra asObject=false></@assignExtraField>
</#list>
<#else>
<@assignExtraField key="Cronologia (Macrofase)" value=theDocument.cronologiaMacrofase asObject=false></@assignExtraField>
</#if>
</#if> </#if>
<#-- spatial field --> <#-- spatial field -->
<#if jsonProj._identificationReferences?? && jsonProj._identificationReferences?size!=0 && jsonProj._identificationReferences[0].geoJSON??> <#if jsonProj._identificationReferences?? && jsonProj._identificationReferences?size!=0 && jsonProj._identificationReferences[0].geoJSON??>
<#assign geoJSON = jsonProj._identificationReferences[0].geoJSON> <#assign geoJSON = jsonProj._identificationReferences[0].geoJSON>
<#assign spatialField = '{\\"type\\": \\"${geoJSON.type}\\", \\"coordinates\\": [${geoJSON.coordinates?join(", ")}]}'> <#if geoJSON.coordinates?? && geoJSON.coordinates?is_sequence && geoJSON.coordinates?size gt 2>
<#assign point_Coordinates = [geoJSON.coordinates[0], geoJSON.coordinates[1]]>
<#assign spatialField = '{\\"type\\": \\"${geoJSON.type}\\", \\"coordinates\\": [${point_Coordinates?join(", ")}]}'>
<@assignExtraField key="spatial" value=spatialField asObject=false></@assignExtraField> <@assignExtraField key="spatial" value=spatialField asObject=false></@assignExtraField>
</#if> </#if>
</#if>
<#-- Adding extra field "Anno" to add it as group -->
<@assignExtraField key="Anno" value=dataInizioYear asObject=false></@assignExtraField>
<#-- system:type --> <#-- system:type -->
<@assignExtraField key="system:type" value="D4GNA" asObject=true></@assignExtraField> <@assignExtraField key="system:type" value="D4GNA" asObject=true></@assignExtraField>
<@buildExtrasFields the_extras=extras></@buildExtrasFields> <@buildExtrasFields the_extras=extras></@buildExtrasFields>