<?xml version="1.0" encoding="UTF-8" ?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      https://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!DOCTYPE jdo PUBLIC
    "-//The Apache Software Foundation//DTD Java Data Objects Metadata 3.2//EN"
    "https://db.apache.org/jdo/xmlns/jdo_3_2.dtd">
<!--
This file contains the schema information when an implementation
has application identity.
-->
<jdo>
    <package name="org.apache.jdo.tck.pc.company">

        <class name="Address" embedded-only="true" requires-extent="false"/>

        <class name="Company"
            identity-type="application"
            objectid-class="org.apache.jdo.tck.pc.company.Company$Oid">
            <field name="companyid" primary-key="true"/>
            <field name="address"
                   persistence-modifier="persistent"/>
            <field name="departments" persistence-modifier="persistent">
                <collection element-type="org.apache.jdo.tck.pc.company.Department"/>
            </field>
        </class>

        <class name="DentalInsurance"
            identity-type="application"
            persistence-capable-superclass="org.apache.jdo.tck.pc.company.Insurance"/>

        <class name="Department"
            identity-type="application"
            objectid-class="org.apache.jdo.tck.pc.company.Department$Oid">
            <field name="deptid" primary-key="true"/>
            <field name="employees" persistence-modifier="persistent">
                <collection element-type="org.apache.jdo.tck.pc.company.Employee"/>
            </field>
            <field name="fundedEmps" persistence-modifier="persistent">
                <collection element-type="org.apache.jdo.tck.pc.company.Employee"/>
            </field>
        </class>

        <class name="Employee"
            identity-type="application"
            persistence-capable-superclass="org.apache.jdo.tck.pc.company.Person">
            <field name="reviewedProjects" persistence-modifier="persistent">
                <collection element-type="org.apache.jdo.tck.pc.company.Project"/>
            </field>
            <field name="projects" persistence-modifier="persistent">
                <collection element-type="org.apache.jdo.tck.pc.company.Project"/>
            </field>
            <field name="team" persistence-modifier="persistent">
                <collection element-type="org.apache.jdo.tck.pc.company.Employee"/>
            </field>
            <field name="hradvisees" persistence-modifier="persistent">
                <collection element-type="org.apache.jdo.tck.pc.company.Employee"/>
            </field>
        </class>

        <class name="FullTimeEmployee"
            identity-type="application"
            persistence-capable-superclass="org.apache.jdo.tck.pc.company.Employee"/>

        <class name="Insurance"
            identity-type="application"
            objectid-class="org.apache.jdo.tck.pc.company.Insurance$Oid">
            <field name="insid" primary-key="true"/>
        </class>

        <class name="MedicalInsurance"
            identity-type="application"
            persistence-capable-superclass="org.apache.jdo.tck.pc.company.Insurance"
        />

        <class name="PartTimeEmployee"
            identity-type="application"
            persistence-capable-superclass="org.apache.jdo.tck.pc.company.Employee"/>

        <class name="Person"
            identity-type="application"
            objectid-class="org.apache.jdo.tck.pc.company.Person$Oid">
            <field name="personid" primary-key="true"/>
            <field name="middlename" default-fetch-group="false"/>
            <field name="address"
                   persistence-modifier="persistent"/>
            <field name="phoneNumbers" persistence-modifier="persistent">
                <map key-type="String" value-type="String"/>
            </field>
            <query name="validNotUnique">
                SELECT firstname, lastname 
                INTO org.apache.jdo.tck.query.result.classes.FullName 
                FROM org.apache.jdo.tck.pc.company.Person
            </query>
            <query name="validUnique">
                SELECT UNIQUE firstname, lastname 
                INTO org.apache.jdo.tck.query.result.classes.FullName 
                FROM org.apache.jdo.tck.pc.company.Person 
                WHERE firstname == 'emp1First'
            </query>
            <query name="invalidUnique">
                SELECT UNIQUE firstname, lastname 
                INTO org.apache.jdo.tck.query.result.classes.FullName
                FROM org.apache.jdo.tck.pc.company.Person
            </query>
            <query name="unmodifiable" unmodifiable="true">
                SELECT firstname, lastname 
                FROM org.apache.jdo.tck.pc.company.Person
            </query>
            <query name="packageJDO">
                SELECT FROM org.apache.jdo.tck.pc.company.Person
                WHERE personid > 1
            </query>
            <query name="changeQuery">
                SELECT FROM org.apache.jdo.tck.pc.company.Person
            </query>
            <query name="invalidQuery">
                SeLeCt FrOm org.apache.jdo.tck.pc.company.Person
            </query>
        </class>

        <class name="Project"
            identity-type="application"
            objectid-class="org.apache.jdo.tck.pc.company.Project$Oid">
            <field name="projid" primary-key="true"/>
            <field name="reviewers" persistence-modifier="persistent">
                <collection element-type="org.apache.jdo.tck.pc.company.Employee"/>
            </field>
            <field name="members" persistence-modifier="persistent">
                <collection element-type="org.apache.jdo.tck.pc.company.Employee"/>
            </field>
        </class>
    </package>
</jdo>
