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.ResponsiblePartyRole;

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

public class OjResponsibleParty extends JSONEntity implements Serializable {

    @JsonProperty
    @Label(en="")
    @Description(en="")
    private String pointOfContact;

    @JsonProperty
    @Label(en="")
    @Description(en="")
    private Map<String, String> organization;

    @JsonProperty
    @Label(en="")
    @Description(en="")
    private Map<String, String> organizationUnit;

    @JsonProperty
    @Label(en="")
    @Description(en="")
    private Map<String, String> position;

    @JsonProperty
    @Label(en="")
    @Description(en="")
    private ResponsiblePartyRole role;

    @JsonProperty
    @Label(en="")
    @Description(en="")
    private Map<String, String> specify;

    @JsonProperty
    @Label(en="")
    @Description(en="")
    private OjContact contactInfo;



    public String getPointOfContact() {
        return pointOfContact;
    }

    public void setPointOfContact(String pointOfContact) {
        this.pointOfContact = pointOfContact;
    }

    public Map<String, String> getPosition() {
        return position;
    }

    public void setPosition(Map<String, String> position) {
        this.position = position;
    }

    public ResponsiblePartyRole getRole() {
        return role;
    }

    public void setRole(ResponsiblePartyRole role) {
        this.role = role;
    }

    public Map<String, String> getSpecify() {
        return specify;
    }

    public void setSpecify(Map<String, String> specify) {
        this.specify = specify;
    }

    public OjContact getContactInfo() {
        return contactInfo;
    }
    @Embedded
    public void setContactInfo(OjContact contactInfo) {
        this.contactInfo = contactInfo;
    }

    public Map<String, String> getOrganization() {
        return organization;
    }

    public void setOrganization(Map<String, String> organization) {
        this.organization = organization;
    }

    public Map<String, String> getOrganizationUnit() {
        return organizationUnit;
    }

    public void setOrganizationUnit(Map<String, String> organizationUnit) {
        this.organizationUnit = organizationUnit;
    }
}

@@ -498,32 +498,48 @@
 %0A    @Label(en=%22
+Point of contact
 %22)%0A    @Descript
@@ -538,32 +538,202 @@
 Description(en=%22
+Responsible person-surname, given name, title separated by a delimiter. It contains information about the party who can be contacted for acquiring knowledge the resource.
 %22)%0A    private S
@@ -780,32 +780,44 @@
 %0A    @Label(en=%22
+Organization
 %22)%0A    @Descript
@@ -816,32 +816,69 @@
 Description(en=%22
+Name of the responsible organization.
 %22)%0A    private M
@@ -948,32 +948,101 @@
 en=%22
-%22)%0A    @Description(en=%22
+Organization unit/division%22)%0A    @Description(en=%22Addressable subdivision of an organization.
 %22)%0A 
@@ -1116,32 +1116,40 @@
 %0A    @Label(en=%22
+Position
 %22)%0A    @Descript
@@ -1148,32 +1148,75 @@
 Description(en=%22
+Role or position of the responsible person.
 %22)%0A    private M
@@ -1270,32 +1270,36 @@
 %0A    @Label(en=%22
+Role
 %22)%0A    @Descript
@@ -1298,32 +1298,137 @@
 Description(en=%22
+Function performed by the responsible party concerning the resource (e.g. owner, distributor, user. . . )
 %22)%0A    private R
@@ -1479,32 +1479,39 @@
 %0A    @Label(en=%22
+Specify
 %22)%0A    @Descript
@@ -1510,32 +1510,173 @@
 Description(en=%22
+Textual metadata element that allows to specify the role performed by the responsible party. This field is conditional to the element %3Crole%3E.
 %22)%0A    private M
@@ -1733,24 +1733,43 @@
  @Label(en=%22
+Contact information
 %22)%0A    @Desc
@@ -1780,16 +1780,68 @@
 ion(en=%22
+Address/phone number/email of the responsible party.
 %22)%0A    p

Update OjResponsibleParty.java