<?xml version = '1.0' encoding = 'UTF-8'?>
<!--

    Copyright (c) 2018, 2020 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0 which is available at
    http://www.eclipse.org/legal/epl-2.0,
    or the Eclipse Distribution License v. 1.0 which is available at
    http://www.eclipse.org/org/documents/edl-v10.php.

    SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause

-->

<object-persistence version="Eclipse Persistence Services - 0.1-incubation" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.eclipse.org/eclipselink/xsds/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <name>Employee</name>
   <class-mapping-descriptors>
      <class-mapping-descriptor xsi:type="eis-class-mapping-descriptor">
         <class>org.eclipse.persistence.testing.models.employee.domain.Address</class>
         <alias>Address</alias>
         <events xsi:type="event-policy"/>
         <querying xsi:type="query-policy"/>
         <attribute-mappings>
            <attribute-mapping xsi:type="eis-direct-mapping">
               <attribute-name>id</attribute-name>
               <field name="ADDRESS_ID/text()" xsi:type="node"/>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-direct-mapping">
               <attribute-name>street</attribute-name>
               <field name="STREET/text()" xsi:type="node"/>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-direct-mapping">
               <attribute-name>city</attribute-name>
               <field name="CITY/text()" xsi:type="node"/>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-direct-mapping">
               <attribute-name>province</attribute-name>
               <field name="PROVINCE/text()" xsi:type="node"/>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-direct-mapping">
               <attribute-name>country</attribute-name>
               <field name="COUNTRY/text()" xsi:type="node"/>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-direct-mapping">
               <attribute-name>postalCode</attribute-name>
               <field name="P_CODE/text()" xsi:type="node"/>
            </attribute-mapping>
         </attribute-mappings>
         <descriptor-type>aggregate</descriptor-type>
         <instantiation/>
         <copying xsi:type="instantiation-copy-policy"/>
         <change-policy xsi:type="deferred-detection-change-policy"/>
         <datatype>ADDRESS</datatype>
         <namespace-resolver/>
      </class-mapping-descriptor>
      <class-mapping-descriptor xsi:type="eis-class-mapping-descriptor">
         <class>org.eclipse.persistence.testing.models.employee.domain.Employee</class>
         <alias></alias>
         <primary-key>
            <field name="EMP_ID/text()" xsi:type="node"/>
         </primary-key>
         <events xsi:type="event-policy"/>
         <querying xsi:type="query-policy"/>
         <attribute-mappings>
            <attribute-mapping xsi:type="eis-direct-mapping">
               <attribute-name>id</attribute-name>
               <field name="EMP_ID/text()" xsi:type="node"/>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-direct-mapping">
               <attribute-name>firstName</attribute-name>
               <field name="F_NAME/text()" xsi:type="node"/>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-direct-mapping">
               <attribute-name>lastName</attribute-name>
               <field name="L_NAME/text()" xsi:type="node"/>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-direct-mapping">
               <attribute-name>gender</attribute-name>
               <field name="GENDER/text()" xsi:type="node"/>
               <converter xsi:type="object-type-converter">
                  <type-mappings>
                     <type-mapping>
                        <object-value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema">Male</object-value>
                        <data-value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema">M</data-value>
                     </type-mapping>
                     <type-mapping>
                        <object-value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema">Female</object-value>
                        <data-value xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema">F</data-value>
                     </type-mapping>
                  </type-mappings>
               </converter>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-composite-object-mapping">
               <attribute-name>address</attribute-name>
               <get-method>getAddress</get-method>
               <set-method>setAddress</set-method>
               <reference-class>org.eclipse.persistence.testing.models.employee.domain.Address</reference-class>
               <field name="ADDRESS" xsi:type="node"/>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-one-to-many-mapping">
               <attribute-name>managedEmployees</attribute-name>
               <reference-class>org.eclipse.persistence.testing.models.employee.domain.Employee</reference-class>
               <container xsi:type="list-container-policy">
                  <collection-type>java.util.Vector</collection-type>
               </container>
               <indirection xsi:type="value-holder-indirection-policy"/>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-direct-mapping">
               <attribute-name>salary</attribute-name>
               <field name="SALARY/text()" xsi:type="node"/>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-transformation-mapping">
               <attribute-name>normalHours</attribute-name>
               <attribute-transformer>org.eclipse.persistence.testing.models.employee.eis.xmlfile.NormalHoursTransformer</attribute-transformer>
               <field-transformations>
                  <field-transformation xsi:type="transformer-based-field-transformation">
                     <field name="END_TIME/text()" xsi:type="node">
                        <schema-type>{http://www.w3.org/2001/XMLSchema}time</schema-type>
                     </field>
                     <transformer-class>org.eclipse.persistence.testing.models.employee.eis.xmlfile.NormalHoursTransformer</transformer-class>
                  </field-transformation>
                  <field-transformation xsi:type="transformer-based-field-transformation">
                     <field name="START_TIME/text()" xsi:type="node">
                        <schema-type>{http://www.w3.org/2001/XMLSchema}time</schema-type>
                     </field>
                     <transformer-class>org.eclipse.persistence.testing.models.employee.eis.xmlfile.NormalHoursTransformer</transformer-class>
                  </field-transformation>
               </field-transformations>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-composite-object-mapping">
               <attribute-name>period</attribute-name>
               <reference-class>org.eclipse.persistence.testing.models.employee.domain.EmploymentPeriod</reference-class>
               <field name="PERIOD" xsi:type="node"/>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-composite-direct-collection-mapping">
               <attribute-name>responsibilitiesList</attribute-name>
               <get-method>getResponsibilitiesList</get-method>
               <set-method>setResponsibilitiesList</set-method>
               <field name="RESPONS/text()" xsi:type="node"/>
               <container xsi:type="list-container-policy">
                  <collection-type>java.util.Vector</collection-type>
               </container>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-one-to-one-mapping">
               <attribute-name>manager</attribute-name>
               <reference-class>org.eclipse.persistence.testing.models.employee.domain.Employee</reference-class>
               <foreign-key>
                  <field-reference>
                     <source-field name="MANAGER_ID/text()" xsi:type="node"/>
                     <target-field name="EMP_ID/text()" xsi:type="node"/>
                  </field-reference>
               </foreign-key>
               <foreign-key-fields>
                  <field name="MANAGER_ID/text()" xsi:type="node"/>
               </foreign-key-fields>
               <indirection xsi:type="value-holder-indirection-policy"/>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-composite-collection-mapping">
               <attribute-name>phoneNumbers</attribute-name>
               <get-method>getPhoneNumbers</get-method>
               <set-method>setPhoneNumbers</set-method>
               <reference-class>org.eclipse.persistence.testing.models.employee.domain.PhoneNumber</reference-class>
               <field name="PHONES/PHONE" xsi:type="node"/>
               <container xsi:type="list-container-policy">
                  <collection-type>java.util.Vector</collection-type>
               </container>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-one-to-many-mapping">
               <attribute-name>projects</attribute-name>
               <reference-class>org.eclipse.persistence.testing.models.employee.domain.Project</reference-class>
               <source-foreign-key-fields>
                  <field name="PROJ_ID/text()" xsi:type="node"/>
               </source-foreign-key-fields>
               <target-foreign-key-fields>
                  <field name="PROJ_ID/text()" xsi:type="node"/>
               </target-foreign-key-fields>
               <foreign-key-grouping-element name="PROJECTS" xsi:type="node"/>
               <container xsi:type="list-container-policy">
                  <collection-type>java.util.Vector</collection-type>
               </container>
               <indirection xsi:type="value-holder-indirection-policy"/>
            </attribute-mapping>
         </attribute-mappings>
         <descriptor-type>independent</descriptor-type>
         <amendment>
            <amendment-class>org.eclipse.persistence.testing.models.employee.eis.xmlfile.EmployeeAmendments</amendment-class>
            <amendment-method>addToEmployeeDescriptor</amendment-method>
         </amendment>
         <instantiation/>
         <copying xsi:type="instantiation-copy-policy"/>
         <change-policy xsi:type="deferred-detection-change-policy"/>
         <datatype>EMPLOYEE</datatype>
         <namespace-resolver/>
      </class-mapping-descriptor>
      <class-mapping-descriptor xsi:type="eis-class-mapping-descriptor">
         <class>org.eclipse.persistence.testing.models.employee.domain.EmploymentPeriod</class>
         <alias>EmploymentPeriod</alias>
         <events xsi:type="event-policy"/>
         <querying xsi:type="query-policy"/>
         <attribute-mappings>
            <attribute-mapping xsi:type="eis-direct-mapping">
               <attribute-name>endDate</attribute-name>
               <field name="END_DATE/text()" xsi:type="node">
                  <schema-type>{http://www.w3.org/2001/XMLSchema}date</schema-type>
               </field>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-direct-mapping">
               <attribute-name>startDate</attribute-name>
               <field name="START_DATE/text()" xsi:type="node">
                  <schema-type>{http://www.w3.org/2001/XMLSchema}date</schema-type>
               </field>
            </attribute-mapping>
         </attribute-mappings>
         <descriptor-type>aggregate</descriptor-type>
         <instantiation/>
         <copying xsi:type="instantiation-copy-policy"/>
         <change-policy xsi:type="deferred-detection-change-policy"/>
         <datatype>PERIOD</datatype>
         <namespace-resolver/>
      </class-mapping-descriptor>
      <class-mapping-descriptor xsi:type="eis-class-mapping-descriptor">
         <class>org.eclipse.persistence.testing.models.employee.domain.LargeProject</class>
         <alias></alias>
         <inheritance xsi:type="qname-inheritance-policy">
            <parent-class>org.eclipse.persistence.testing.models.employee.domain.Project</parent-class>
         </inheritance>
         <events xsi:type="event-policy"/>
         <querying xsi:type="query-policy"/>
         <attribute-mappings>
            <attribute-mapping xsi:type="eis-direct-mapping">
               <attribute-name>budget</attribute-name>
               <field name="BUDGET/text()" xsi:type="node"/>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-direct-mapping">
               <attribute-name>milestoneVersion</attribute-name>
               <field name="MILESTONE/text()" xsi:type="node">
                  <schema-type>{http://www.w3.org/2001/XMLSchema}dateTime</schema-type>
               </field>
            </attribute-mapping>
         </attribute-mappings>
         <descriptor-type>independent</descriptor-type>
         <amendment>
            <amendment-class>org.eclipse.persistence.testing.models.employee.eis.xmlfile.EmployeeAmendments</amendment-class>
            <amendment-method>addToLargeProjectDescriptor</amendment-method>
         </amendment>
         <instantiation/>
         <copying xsi:type="instantiation-copy-policy"/>
         <change-policy xsi:type="deferred-detection-change-policy"/>
         <datatype>PROJECT</datatype>
         <namespace-resolver/>
      </class-mapping-descriptor>
      <class-mapping-descriptor xsi:type="eis-class-mapping-descriptor">
         <class>org.eclipse.persistence.testing.models.employee.domain.PhoneNumber</class>
         <alias>PhoneNumber</alias>
         <events xsi:type="event-policy"/>
         <querying xsi:type="query-policy"/>
         <attribute-mappings>
            <attribute-mapping xsi:type="eis-direct-mapping">
               <attribute-name>type</attribute-name>
               <field name="@TYPE" xsi:type="node"/>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-direct-mapping">
               <attribute-name>areaCode</attribute-name>
               <field name="AREA_CODE/text()" xsi:type="node"/>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-direct-mapping">
               <attribute-name>number</attribute-name>
               <field name="P_NUMBER/text()" xsi:type="node"/>
            </attribute-mapping>
         </attribute-mappings>
         <descriptor-type>aggregate</descriptor-type>
         <instantiation/>
         <copying xsi:type="instantiation-copy-policy"/>
         <change-policy xsi:type="deferred-detection-change-policy"/>
         <datatype>PHONE</datatype>
         <namespace-resolver/>
      </class-mapping-descriptor>
      <class-mapping-descriptor xsi:type="eis-class-mapping-descriptor">
         <class>org.eclipse.persistence.testing.models.employee.domain.Project</class>
         <alias></alias>
         <primary-key>
            <field name="PROJ_ID/text()" xsi:type="node"/>
         </primary-key>
         <inheritance xsi:type="qname-inheritance-policy">
            <class-indicator-field name="@TYPE" xsi:type="column"/>
            <class-indicator-mappings>
               <class-indicator-mapping>
                  <class>org.eclipse.persistence.testing.models.employee.domain.SmallProject</class>
                  <class-indicator xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema">S</class-indicator>
               </class-indicator-mapping>
               <class-indicator-mapping>
                  <class>org.eclipse.persistence.testing.models.employee.domain.LargeProject</class>
                  <class-indicator xsi:type="xsd:string" xmlns:xsd="http://www.w3.org/2001/XMLSchema">L</class-indicator>
               </class-indicator-mapping>
            </class-indicator-mappings>
         </inheritance>
         <events xsi:type="event-policy"/>
         <querying xsi:type="query-policy"/>
         <attribute-mappings>
            <attribute-mapping xsi:type="eis-direct-mapping">
               <attribute-name>id</attribute-name>
               <field name="PROJ_ID/text()" xsi:type="node"/>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-direct-mapping">
               <attribute-name>name</attribute-name>
               <field name="PROJ_NAME/text()" xsi:type="node"/>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-direct-mapping">
               <attribute-name>description</attribute-name>
               <field name="DESCRIP/text()" xsi:type="node"/>
            </attribute-mapping>
            <attribute-mapping xsi:type="eis-one-to-one-mapping">
               <attribute-name>teamLeader</attribute-name>
               <reference-class>org.eclipse.persistence.testing.models.employee.domain.Employee</reference-class>
               <foreign-key>
                  <field-reference>
                     <source-field name="LEADER_ID/text()" xsi:type="node"/>
                     <target-field name="EMP_ID/text()" xsi:type="node"/>
                  </field-reference>
               </foreign-key>
               <foreign-key-fields>
                  <field name="LEADER_ID/text()" xsi:type="node"/>
               </foreign-key-fields>
               <indirection xsi:type="value-holder-indirection-policy"/>
            </attribute-mapping>
         </attribute-mappings>
         <descriptor-type>independent</descriptor-type>
         <amendment>
            <amendment-class>org.eclipse.persistence.testing.models.employee.eis.xmlfile.EmployeeAmendments</amendment-class>
            <amendment-method>addToProjectDescriptor</amendment-method>
         </amendment>
         <instantiation/>
         <copying xsi:type="instantiation-copy-policy"/>
         <change-policy xsi:type="deferred-detection-change-policy"/>
         <datatype>PROJECT</datatype>
         <namespace-resolver/>
      </class-mapping-descriptor>
      <class-mapping-descriptor xsi:type="eis-class-mapping-descriptor">
         <class>org.eclipse.persistence.testing.models.employee.domain.SmallProject</class>
         <alias></alias>
         <inheritance xsi:type="qname-inheritance-policy">
            <parent-class>org.eclipse.persistence.testing.models.employee.domain.Project</parent-class>
         </inheritance>
         <events xsi:type="event-policy"/>
         <querying xsi:type="query-policy"/>
         <descriptor-type>independent</descriptor-type>
         <amendment>
            <amendment-class>org.eclipse.persistence.testing.models.employee.eis.xmlfile.EmployeeAmendments</amendment-class>
            <amendment-method>addToSmallProjectDescriptor</amendment-method>
         </amendment>
         <instantiation/>
         <copying xsi:type="instantiation-copy-policy"/>
         <change-policy xsi:type="deferred-detection-change-policy"/>
         <datatype>PROJECT</datatype>
         <namespace-resolver/>
      </class-mapping-descriptor>
   </class-mapping-descriptors>
   <login xsi:type="eis-login">
      <connection-spec-class>org.eclipse.persistence.eis.EISConnectionSpec</connection-spec-class>
   </login>
</object-persistence>
