package org.fao.fenix.commons.msd.dto.full;

import com.fasterxml.jackson.annotation.JsonProperty;
import org.fao.fenix.commons.annotations.Description;
import org.fao.fenix.commons.annotations.Label;
import org.fao.fenix.commons.msd.dto.JSONEntity;
import org.fao.fenix.commons.msd.dto.type.CellGeometry;
import org.fao.fenix.commons.msd.dto.type.CellOfOrigin;
import org.fao.fenix.commons.msd.dto.type.XYPosition;

import javax.persistence.Embedded;
import java.io.Serializable;

public class SeGridSpatialRepresentation extends JSONEntity implements Serializable {

    @JsonProperty
    @Label(en="")
    @Description(en= "")
    private Integer numberOfDimensions;

    @JsonProperty
    @Label(en="")
    @Description(en= "")
    private OjAxis axisDimensionProperties;

    @JsonProperty
    @Label(en="")
    @Description(en= "")
    private CellGeometry cellGeometry;

    @JsonProperty
    @Label(en="")
    @Description(en= "")
    private CellOfOrigin cellOfOrigin;

    @JsonProperty
    @Label(en="")
    @Description(en= "")
    private XYPosition xyPosition;


    public Integer getNumberOfDimensions() {
        return numberOfDimensions;
    }

    public void setNumberOfDimensions(Integer numberOfDimensions) {
        this.numberOfDimensions = numberOfDimensions;
    }

    public OjAxis getAxisDimensionProperties() {
        return axisDimensionProperties;
    }
    @Embedded
    public void setAxisDimensionProperties(OjAxis axisDimensionProperties) {
        this.axisDimensionProperties = axisDimensionProperties;
    }

    public CellGeometry getCellGeometry() {
        return cellGeometry;
    }

    public void setCellGeometry(CellGeometry cellGeometry) {
        this.cellGeometry = cellGeometry;
    }

    public CellOfOrigin getCellOfOrigin() {
        return cellOfOrigin;
    }

    public void setCellOfOrigin(CellOfOrigin cellOfOrigin) {
        this.cellOfOrigin = cellOfOrigin;
    }

    public XYPosition getXyPosition() {
        return xyPosition;
    }

    public void setXyPosition(XYPosition xyPosition) {
        this.xyPosition = xyPosition;
    }
}

@@ -587,32 +587,51 @@
 %0A    @Label(en=%22
+Number of dimension
 %22)%0A    @Descript
@@ -643,216 +643,1011 @@
 n= %22
-%22)%0A    private Integer numberOfDimensions;%0A%0A    @JsonProperty%0A    @Label(en=%22%22)%0A    @Description(en= %22%22)%0A    private OjAxis axisDimensionProperties;%0A%0A    @JsonProperty%0A    @Label(en=%22%22)%0A    @Description(en= %22
+Number of independent spatial-temporal axes. For ex-ample, a grid dataset representing the topography of an area has 3 dimensions: x, y for the planar representation of the area and z reporting the elevation value of each cell.%22)%0A    private Integer numberOfDimensions;%0A%0A    @JsonProperty%0A    @Label(en=%22Information about spatial-temporal axis properties%22)%0A    @Description(en= %22Reference to the OJ Dimensions object that reports information about spatial-temporal axis properties.%22)%0A    private OjAxis axisDimensionProperties;%0A%0A    @JsonProperty%0A    @Label(en=%22Identi%0Ccation of grid data as point or cell%22)%0A    @Description(en= %22Specifies whether each pixel of the raster data represents a point or an area. A raster with the cell geometry as point assumes that the features to represent, or the values to report, refers to the center of the cell; cell geometry as area represents the whole area covered by the cell (e.g. averages of values falling within the cell; dominant feature of the cell, etc.).
 %22)%0A 
@@ -1710,32 +1710,53 @@
 %0A    @Label(en=%22
+Origin of raster cell
 %22)%0A    @Descript
@@ -1756,32 +1756,94 @@
 escription(en= %22
+Origin of the raster is the lower left or the upper left cell.
 %22)%0A    private C
@@ -1906,33 +1906,177 @@
 en=%22
-%22)%0A    @Description(en= %22
+Coordinate of the origin within the cell%22)%0A    @Description(en= %22Whether coordinates of the origin of the raster refer to the center or the corner of the cell of origin.
 %22)%0A 

Update SeGridSpatialRepresentation.java