PersonElement.java

//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.11 
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
// Any modifications to this file will be lost upon recompilation of the source schema. 
// Generated on: 2018.10.06 at 11:57:09 AM CEST 
//


package com.hack23.cia.model.external.riksdagen.personlista.impl;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import com.hack23.cia.model.common.api.ModelObject;
import org.jvnet.jaxb2_commons.lang.Equals;
import org.jvnet.jaxb2_commons.lang.EqualsStrategy;
import org.jvnet.jaxb2_commons.lang.HashCode;
import org.jvnet.jaxb2_commons.lang.HashCodeStrategy;
import org.jvnet.jaxb2_commons.lang.JAXBEqualsStrategy;
import org.jvnet.jaxb2_commons.lang.JAXBHashCodeStrategy;
import org.jvnet.jaxb2_commons.lang.JAXBToStringStrategy;
import org.jvnet.jaxb2_commons.lang.ToString;
import org.jvnet.jaxb2_commons.lang.ToStringStrategy;
import org.jvnet.jaxb2_commons.locator.ObjectLocator;
import org.jvnet.jaxb2_commons.locator.util.LocatorUtils;


/**
 * <p>Java class for PersonElement complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="PersonElement"&gt;
 *   &lt;complexContent&gt;
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *       &lt;sequence&gt;
 *         &lt;element name="hangar_guid" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
 *         &lt;element name="intressent_id" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
 *         &lt;element name="fodd_ar" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
 *         &lt;element name="kon" type="{http://personlista.riksdagen.external.model.cia.hack23.com/impl}SexType"/&gt;
 *         &lt;element name="efternamn" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
 *         &lt;element name="tilltalsnamn" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
 *         &lt;element name="iort" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
 *         &lt;element name="parti" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
 *         &lt;element name="valkrets" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
 *         &lt;element name="status" type="{http://personlista.riksdagen.external.model.cia.hack23.com/impl}RoleStatus"/&gt;
 *         &lt;element name="bild_url_192" type="{http://www.w3.org/2001/XMLSchema}anyURI"/&gt;
 *         &lt;element name="bild_url_max" type="{http://www.w3.org/2001/XMLSchema}anyURI"/&gt;
 *         &lt;element name="bild_url_80" type="{http://www.w3.org/2001/XMLSchema}anyURI"/&gt;
 *         &lt;element name="person_url_xml" type="{http://www.w3.org/2001/XMLSchema}anyURI"/&gt;
 *         &lt;element name="personuppdrag" type="{http://personlista.riksdagen.external.model.cia.hack23.com/impl}PersonAssignmentElement"/&gt;
 *         &lt;element name="personuppgift" type="{http://personlista.riksdagen.external.model.cia.hack23.com/impl}PersonDetailElement"/&gt;
 *       &lt;/sequence&gt;
 *     &lt;/restriction&gt;
 *   &lt;/complexContent&gt;
 * &lt;/complexType&gt;
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "PersonElement", propOrder = {
    "hangarGuid",
    "id",
    "bornYear",
    "gender",
    "lastName",
    "firstName",
    "place",
    "party",
    "electionRegion",
    "status",
    "imageUrl192",
    "imageUrlMax",
    "imageUrl80",
    "personUrlXml",
    "personAssignmentElement",
    "personDetailElement"
})
@Entity(name = "PersonElement")
@Table(name = "PERSON_ELEMENT")
@Inheritance(strategy = InheritanceType.JOINED)
public class PersonElement
    implements Serializable, ModelObject, Equals, HashCode, ToString
{

    @XmlElement(name = "hangar_guid", required = true)
    protected String hangarGuid;
    @XmlElement(name = "intressent_id", required = true)
    protected String id;
    @XmlElement(name = "fodd_ar", required = true)
    protected String bornYear;
    @XmlElement(name = "kon", required = true)
    @XmlSchemaType(name = "string")
    protected SexType gender;
    @XmlElement(name = "efternamn", required = true)
    protected String lastName;
    @XmlElement(name = "tilltalsnamn", required = true)
    protected String firstName;
    @XmlElement(name = "iort", required = true)
    protected String place;
    @XmlElement(name = "parti", required = true)
    protected String party;
    @XmlElement(name = "valkrets", required = true)
    protected String electionRegion;
    @XmlElement(required = true)
    @XmlSchemaType(name = "string")
    protected RoleStatus status;
    @XmlElement(name = "bild_url_192", required = true)
    @XmlSchemaType(name = "anyURI")
    protected String imageUrl192;
    @XmlElement(name = "bild_url_max", required = true)
    @XmlSchemaType(name = "anyURI")
    protected String imageUrlMax;
    @XmlElement(name = "bild_url_80", required = true)
    @XmlSchemaType(name = "anyURI")
    protected String imageUrl80;
    @XmlElement(name = "person_url_xml", required = true)
    @XmlSchemaType(name = "anyURI")
    protected String personUrlXml;
    @XmlElement(name = "personuppdrag", required = true)
    protected PersonAssignmentElement personAssignmentElement;
    @XmlElement(name = "personuppgift", required = true)
    protected PersonDetailElement personDetailElement;

    /**
     * Gets the value of the hangarGuid property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    @Basic
    @Column(name = "HANGAR_GUID", length = 255)
    public String getHangarGuid() {
        return hangarGuid;
    }

    /**
     * Sets the value of the hangarGuid property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setHangarGuid(String value) {
        this.hangarGuid = value;
    }

    /**
     * Gets the value of the id property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    @Id
    @Column(name = "ID")
    public String getId() {
        return id;
    }

    /**
     * Sets the value of the id property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setId(String value) {
        this.id = value;
    }

    /**
     * Gets the value of the bornYear property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    @Basic
    @Column(name = "BORN_YEAR", length = 255)
    public String getBornYear() {
        return bornYear;
    }

    /**
     * Sets the value of the bornYear property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setBornYear(String value) {
        this.bornYear = value;
    }

    /**
     * Gets the value of the gender property.
     * 
     * @return
     *     possible object is
     *     {@link SexType }
     *     
     */
    @Basic
    @Column(name = "GENDER", length = 255)
    @Enumerated(EnumType.STRING)
    public SexType getGender() {
        return gender;
    }

    /**
     * Sets the value of the gender property.
     * 
     * @param value
     *     allowed object is
     *     {@link SexType }
     *     
     */
    public void setGender(SexType value) {
        this.gender = value;
    }

    /**
     * Gets the value of the lastName property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    @Basic
    @Column(name = "LAST_NAME", length = 255)
    public String getLastName() {
        return lastName;
    }

    /**
     * Sets the value of the lastName property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setLastName(String value) {
        this.lastName = value;
    }

    /**
     * Gets the value of the firstName property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    @Basic
    @Column(name = "FIRST_NAME", length = 255)
    public String getFirstName() {
        return firstName;
    }

    /**
     * Sets the value of the firstName property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setFirstName(String value) {
        this.firstName = value;
    }

    /**
     * Gets the value of the place property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    @Basic
    @Column(name = "PLACE", length = 255)
    public String getPlace() {
        return place;
    }

    /**
     * Sets the value of the place property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setPlace(String value) {
        this.place = value;
    }

    /**
     * Gets the value of the party property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    @Basic
    @Column(name = "PARTY", length = 255)
    public String getParty() {
        return party;
    }

    /**
     * Sets the value of the party property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setParty(String value) {
        this.party = value;
    }

    /**
     * Gets the value of the electionRegion property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    @Basic
    @Column(name = "ELECTION_REGION", length = 255)
    public String getElectionRegion() {
        return electionRegion;
    }

    /**
     * Sets the value of the electionRegion property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setElectionRegion(String value) {
        this.electionRegion = value;
    }

    /**
     * Gets the value of the status property.
     * 
     * @return
     *     possible object is
     *     {@link RoleStatus }
     *     
     */
    @Basic
    @Column(name = "STATUS", length = 255)
    @Enumerated(EnumType.STRING)
    public RoleStatus getStatus() {
        return status;
    }

    /**
     * Sets the value of the status property.
     * 
     * @param value
     *     allowed object is
     *     {@link RoleStatus }
     *     
     */
    public void setStatus(RoleStatus value) {
        this.status = value;
    }

    /**
     * Gets the value of the imageUrl192 property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    @Basic
    @Column(name = "IMAGE_URL_192")
    public String getImageUrl192() {
        return imageUrl192;
    }

    /**
     * Sets the value of the imageUrl192 property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setImageUrl192(String value) {
        this.imageUrl192 = value;
    }

    /**
     * Gets the value of the imageUrlMax property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    @Basic
    @Column(name = "IMAGE_URL_MAX")
    public String getImageUrlMax() {
        return imageUrlMax;
    }

    /**
     * Sets the value of the imageUrlMax property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setImageUrlMax(String value) {
        this.imageUrlMax = value;
    }

    /**
     * Gets the value of the imageUrl80 property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    @Basic
    @Column(name = "IMAGE_URL_80")
    public String getImageUrl80() {
        return imageUrl80;
    }

    /**
     * Sets the value of the imageUrl80 property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setImageUrl80(String value) {
        this.imageUrl80 = value;
    }

    /**
     * Gets the value of the personUrlXml property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    @Basic
    @Column(name = "PERSON_URL_XML")
    public String getPersonUrlXml() {
        return personUrlXml;
    }

    /**
     * Sets the value of the personUrlXml property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setPersonUrlXml(String value) {
        this.personUrlXml = value;
    }

    /**
     * Gets the value of the personAssignmentElement property.
     * 
     * @return
     *     possible object is
     *     {@link PersonAssignmentElement }
     *     
     */
    @ManyToOne(targetEntity = PersonAssignmentElement.class, cascade = {
        CascadeType.ALL
    })
    @JoinColumn(name = "PERSON_ASSIGNMENT_ELEMENT_PE_0")
    public PersonAssignmentElement getPersonAssignmentElement() {
        return personAssignmentElement;
    }

    /**
     * Sets the value of the personAssignmentElement property.
     * 
     * @param value
     *     allowed object is
     *     {@link PersonAssignmentElement }
     *     
     */
    public void setPersonAssignmentElement(PersonAssignmentElement value) {
        this.personAssignmentElement = value;
    }

    /**
     * Gets the value of the personDetailElement property.
     * 
     * @return
     *     possible object is
     *     {@link PersonDetailElement }
     *     
     */
    @ManyToOne(targetEntity = PersonDetailElement.class, cascade = {
        CascadeType.ALL
    })
    @JoinColumn(name = "PERSON_DETAIL_ELEMENT_PERSON_0")
    public PersonDetailElement getPersonDetailElement() {
        return personDetailElement;
    }

    /**
     * Sets the value of the personDetailElement property.
     * 
     * @param value
     *     allowed object is
     *     {@link PersonDetailElement }
     *     
     */
    public void setPersonDetailElement(PersonDetailElement value) {
        this.personDetailElement = value;
    }

    public PersonElement withHangarGuid(String value) {
        setHangarGuid(value);
        return this;
    }

    public PersonElement withId(String value) {
        setId(value);
        return this;
    }

    public PersonElement withBornYear(String value) {
        setBornYear(value);
        return this;
    }

    public PersonElement withGender(SexType value) {
        setGender(value);
        return this;
    }

    public PersonElement withLastName(String value) {
        setLastName(value);
        return this;
    }

    public PersonElement withFirstName(String value) {
        setFirstName(value);
        return this;
    }

    public PersonElement withPlace(String value) {
        setPlace(value);
        return this;
    }

    public PersonElement withParty(String value) {
        setParty(value);
        return this;
    }

    public PersonElement withElectionRegion(String value) {
        setElectionRegion(value);
        return this;
    }

    public PersonElement withStatus(RoleStatus value) {
        setStatus(value);
        return this;
    }

    public PersonElement withImageUrl192(String value) {
        setImageUrl192(value);
        return this;
    }

    public PersonElement withImageUrlMax(String value) {
        setImageUrlMax(value);
        return this;
    }

    public PersonElement withImageUrl80(String value) {
        setImageUrl80(value);
        return this;
    }

    public PersonElement withPersonUrlXml(String value) {
        setPersonUrlXml(value);
        return this;
    }

    public PersonElement withPersonAssignmentElement(PersonAssignmentElement value) {
        setPersonAssignmentElement(value);
        return this;
    }

    public PersonElement withPersonDetailElement(PersonDetailElement value) {
        setPersonDetailElement(value);
        return this;
    }

    public String toString() {
        final ToStringStrategy strategy = JAXBToStringStrategy.INSTANCE;
        final StringBuilder buffer = new StringBuilder();
        append(null, buffer, strategy);
        return buffer.toString();
    }

    public StringBuilder append(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
        strategy.appendStart(locator, this, buffer);
        appendFields(locator, buffer, strategy);
        strategy.appendEnd(locator, this, buffer);
        return buffer;
    }

    public StringBuilder appendFields(ObjectLocator locator, StringBuilder buffer, ToStringStrategy strategy) {
        {
            String theHangarGuid;
            theHangarGuid = this.getHangarGuid();
            strategy.appendField(locator, this, "hangarGuid", buffer, theHangarGuid);
        }
        {
            String theId;
            theId = this.getId();
            strategy.appendField(locator, this, "id", buffer, theId);
        }
        {
            String theBornYear;
            theBornYear = this.getBornYear();
            strategy.appendField(locator, this, "bornYear", buffer, theBornYear);
        }
        {
            SexType theGender;
            theGender = this.getGender();
            strategy.appendField(locator, this, "gender", buffer, theGender);
        }
        {
            String theLastName;
            theLastName = this.getLastName();
            strategy.appendField(locator, this, "lastName", buffer, theLastName);
        }
        {
            String theFirstName;
            theFirstName = this.getFirstName();
            strategy.appendField(locator, this, "firstName", buffer, theFirstName);
        }
        {
            String thePlace;
            thePlace = this.getPlace();
            strategy.appendField(locator, this, "place", buffer, thePlace);
        }
        {
            String theParty;
            theParty = this.getParty();
            strategy.appendField(locator, this, "party", buffer, theParty);
        }
        {
            String theElectionRegion;
            theElectionRegion = this.getElectionRegion();
            strategy.appendField(locator, this, "electionRegion", buffer, theElectionRegion);
        }
        {
            RoleStatus theStatus;
            theStatus = this.getStatus();
            strategy.appendField(locator, this, "status", buffer, theStatus);
        }
        {
            String theImageUrl192;
            theImageUrl192 = this.getImageUrl192();
            strategy.appendField(locator, this, "imageUrl192", buffer, theImageUrl192);
        }
        {
            String theImageUrlMax;
            theImageUrlMax = this.getImageUrlMax();
            strategy.appendField(locator, this, "imageUrlMax", buffer, theImageUrlMax);
        }
        {
            String theImageUrl80;
            theImageUrl80 = this.getImageUrl80();
            strategy.appendField(locator, this, "imageUrl80", buffer, theImageUrl80);
        }
        {
            String thePersonUrlXml;
            thePersonUrlXml = this.getPersonUrlXml();
            strategy.appendField(locator, this, "personUrlXml", buffer, thePersonUrlXml);
        }
        {
            PersonAssignmentElement thePersonAssignmentElement;
            thePersonAssignmentElement = this.getPersonAssignmentElement();
            strategy.appendField(locator, this, "personAssignmentElement", buffer, thePersonAssignmentElement);
        }
        {
            PersonDetailElement thePersonDetailElement;
            thePersonDetailElement = this.getPersonDetailElement();
            strategy.appendField(locator, this, "personDetailElement", buffer, thePersonDetailElement);
        }
        return buffer;
    }

    public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) {
        if ((object == null)||(this.getClass()!= object.getClass())) {
            return false;
        }
        if (this == object) {
            return true;
        }
        final PersonElement that = ((PersonElement) object);
        {
            String lhsHangarGuid;
            lhsHangarGuid = this.getHangarGuid();
            String rhsHangarGuid;
            rhsHangarGuid = that.getHangarGuid();
            if (!strategy.equals(LocatorUtils.property(thisLocator, "hangarGuid", lhsHangarGuid), LocatorUtils.property(thatLocator, "hangarGuid", rhsHangarGuid), lhsHangarGuid, rhsHangarGuid)) {
                return false;
            }
        }
        {
            String lhsId;
            lhsId = this.getId();
            String rhsId;
            rhsId = that.getId();
            if (!strategy.equals(LocatorUtils.property(thisLocator, "id", lhsId), LocatorUtils.property(thatLocator, "id", rhsId), lhsId, rhsId)) {
                return false;
            }
        }
        {
            String lhsBornYear;
            lhsBornYear = this.getBornYear();
            String rhsBornYear;
            rhsBornYear = that.getBornYear();
            if (!strategy.equals(LocatorUtils.property(thisLocator, "bornYear", lhsBornYear), LocatorUtils.property(thatLocator, "bornYear", rhsBornYear), lhsBornYear, rhsBornYear)) {
                return false;
            }
        }
        {
            SexType lhsGender;
            lhsGender = this.getGender();
            SexType rhsGender;
            rhsGender = that.getGender();
            if (!strategy.equals(LocatorUtils.property(thisLocator, "gender", lhsGender), LocatorUtils.property(thatLocator, "gender", rhsGender), lhsGender, rhsGender)) {
                return false;
            }
        }
        {
            String lhsLastName;
            lhsLastName = this.getLastName();
            String rhsLastName;
            rhsLastName = that.getLastName();
            if (!strategy.equals(LocatorUtils.property(thisLocator, "lastName", lhsLastName), LocatorUtils.property(thatLocator, "lastName", rhsLastName), lhsLastName, rhsLastName)) {
                return false;
            }
        }
        {
            String lhsFirstName;
            lhsFirstName = this.getFirstName();
            String rhsFirstName;
            rhsFirstName = that.getFirstName();
            if (!strategy.equals(LocatorUtils.property(thisLocator, "firstName", lhsFirstName), LocatorUtils.property(thatLocator, "firstName", rhsFirstName), lhsFirstName, rhsFirstName)) {
                return false;
            }
        }
        {
            String lhsPlace;
            lhsPlace = this.getPlace();
            String rhsPlace;
            rhsPlace = that.getPlace();
            if (!strategy.equals(LocatorUtils.property(thisLocator, "place", lhsPlace), LocatorUtils.property(thatLocator, "place", rhsPlace), lhsPlace, rhsPlace)) {
                return false;
            }
        }
        {
            String lhsParty;
            lhsParty = this.getParty();
            String rhsParty;
            rhsParty = that.getParty();
            if (!strategy.equals(LocatorUtils.property(thisLocator, "party", lhsParty), LocatorUtils.property(thatLocator, "party", rhsParty), lhsParty, rhsParty)) {
                return false;
            }
        }
        {
            String lhsElectionRegion;
            lhsElectionRegion = this.getElectionRegion();
            String rhsElectionRegion;
            rhsElectionRegion = that.getElectionRegion();
            if (!strategy.equals(LocatorUtils.property(thisLocator, "electionRegion", lhsElectionRegion), LocatorUtils.property(thatLocator, "electionRegion", rhsElectionRegion), lhsElectionRegion, rhsElectionRegion)) {
                return false;
            }
        }
        {
            RoleStatus lhsStatus;
            lhsStatus = this.getStatus();
            RoleStatus rhsStatus;
            rhsStatus = that.getStatus();
            if (!strategy.equals(LocatorUtils.property(thisLocator, "status", lhsStatus), LocatorUtils.property(thatLocator, "status", rhsStatus), lhsStatus, rhsStatus)) {
                return false;
            }
        }
        {
            String lhsImageUrl192;
            lhsImageUrl192 = this.getImageUrl192();
            String rhsImageUrl192;
            rhsImageUrl192 = that.getImageUrl192();
            if (!strategy.equals(LocatorUtils.property(thisLocator, "imageUrl192", lhsImageUrl192), LocatorUtils.property(thatLocator, "imageUrl192", rhsImageUrl192), lhsImageUrl192, rhsImageUrl192)) {
                return false;
            }
        }
        {
            String lhsImageUrlMax;
            lhsImageUrlMax = this.getImageUrlMax();
            String rhsImageUrlMax;
            rhsImageUrlMax = that.getImageUrlMax();
            if (!strategy.equals(LocatorUtils.property(thisLocator, "imageUrlMax", lhsImageUrlMax), LocatorUtils.property(thatLocator, "imageUrlMax", rhsImageUrlMax), lhsImageUrlMax, rhsImageUrlMax)) {
                return false;
            }
        }
        {
            String lhsImageUrl80;
            lhsImageUrl80 = this.getImageUrl80();
            String rhsImageUrl80;
            rhsImageUrl80 = that.getImageUrl80();
            if (!strategy.equals(LocatorUtils.property(thisLocator, "imageUrl80", lhsImageUrl80), LocatorUtils.property(thatLocator, "imageUrl80", rhsImageUrl80), lhsImageUrl80, rhsImageUrl80)) {
                return false;
            }
        }
        {
            String lhsPersonUrlXml;
            lhsPersonUrlXml = this.getPersonUrlXml();
            String rhsPersonUrlXml;
            rhsPersonUrlXml = that.getPersonUrlXml();
            if (!strategy.equals(LocatorUtils.property(thisLocator, "personUrlXml", lhsPersonUrlXml), LocatorUtils.property(thatLocator, "personUrlXml", rhsPersonUrlXml), lhsPersonUrlXml, rhsPersonUrlXml)) {
                return false;
            }
        }
        {
            PersonAssignmentElement lhsPersonAssignmentElement;
            lhsPersonAssignmentElement = this.getPersonAssignmentElement();
            PersonAssignmentElement rhsPersonAssignmentElement;
            rhsPersonAssignmentElement = that.getPersonAssignmentElement();
            if (!strategy.equals(LocatorUtils.property(thisLocator, "personAssignmentElement", lhsPersonAssignmentElement), LocatorUtils.property(thatLocator, "personAssignmentElement", rhsPersonAssignmentElement), lhsPersonAssignmentElement, rhsPersonAssignmentElement)) {
                return false;
            }
        }
        {
            PersonDetailElement lhsPersonDetailElement;
            lhsPersonDetailElement = this.getPersonDetailElement();
            PersonDetailElement rhsPersonDetailElement;
            rhsPersonDetailElement = that.getPersonDetailElement();
            if (!strategy.equals(LocatorUtils.property(thisLocator, "personDetailElement", lhsPersonDetailElement), LocatorUtils.property(thatLocator, "personDetailElement", rhsPersonDetailElement), lhsPersonDetailElement, rhsPersonDetailElement)) {
                return false;
            }
        }
        return true;
    }

    public boolean equals(Object object) {
        final EqualsStrategy strategy = JAXBEqualsStrategy.INSTANCE;
        return equals(null, null, object, strategy);
    }

    public int hashCode(ObjectLocator locator, HashCodeStrategy strategy) {
        int currentHashCode = 1;
        {
            String theHangarGuid;
            theHangarGuid = this.getHangarGuid();
            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "hangarGuid", theHangarGuid), currentHashCode, theHangarGuid);
        }
        {
            String theId;
            theId = this.getId();
            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "id", theId), currentHashCode, theId);
        }
        {
            String theBornYear;
            theBornYear = this.getBornYear();
            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "bornYear", theBornYear), currentHashCode, theBornYear);
        }
        {
            SexType theGender;
            theGender = this.getGender();
            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "gender", theGender), currentHashCode, theGender);
        }
        {
            String theLastName;
            theLastName = this.getLastName();
            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "lastName", theLastName), currentHashCode, theLastName);
        }
        {
            String theFirstName;
            theFirstName = this.getFirstName();
            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "firstName", theFirstName), currentHashCode, theFirstName);
        }
        {
            String thePlace;
            thePlace = this.getPlace();
            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "place", thePlace), currentHashCode, thePlace);
        }
        {
            String theParty;
            theParty = this.getParty();
            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "party", theParty), currentHashCode, theParty);
        }
        {
            String theElectionRegion;
            theElectionRegion = this.getElectionRegion();
            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "electionRegion", theElectionRegion), currentHashCode, theElectionRegion);
        }
        {
            RoleStatus theStatus;
            theStatus = this.getStatus();
            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "status", theStatus), currentHashCode, theStatus);
        }
        {
            String theImageUrl192;
            theImageUrl192 = this.getImageUrl192();
            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "imageUrl192", theImageUrl192), currentHashCode, theImageUrl192);
        }
        {
            String theImageUrlMax;
            theImageUrlMax = this.getImageUrlMax();
            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "imageUrlMax", theImageUrlMax), currentHashCode, theImageUrlMax);
        }
        {
            String theImageUrl80;
            theImageUrl80 = this.getImageUrl80();
            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "imageUrl80", theImageUrl80), currentHashCode, theImageUrl80);
        }
        {
            String thePersonUrlXml;
            thePersonUrlXml = this.getPersonUrlXml();
            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "personUrlXml", thePersonUrlXml), currentHashCode, thePersonUrlXml);
        }
        {
            PersonAssignmentElement thePersonAssignmentElement;
            thePersonAssignmentElement = this.getPersonAssignmentElement();
            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "personAssignmentElement", thePersonAssignmentElement), currentHashCode, thePersonAssignmentElement);
        }
        {
            PersonDetailElement thePersonDetailElement;
            thePersonDetailElement = this.getPersonDetailElement();
            currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "personDetailElement", thePersonDetailElement), currentHashCode, thePersonDetailElement);
        }
        return currentHashCode;
    }

    public int hashCode() {
        final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE;
        return this.hashCode(null, strategy);
    }

}