<?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

      http://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.
-->
<jdo xmlns="https://db.apache.org/jdo/xmlns/jdo"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="https://db.apache.org/jdo/xmlns/jdo
     https://db.apache.org/jdo/xmlns/jdo_3_2.xsd">
<!--
This file contains the schema information when an implementation
has datastore identity.
-->
    <package name="org.apache.jdo.tck.pc.company">

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

        <class name="MeetingRoom" identity-type="datastore">
        </class>

        <class name="Company" identity-type="datastore">
            <field name="address"
                   field-type="org.apache.jdo.tck.pc.company.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="datastore"/>

        <class name="Department" identity-type="datastore">
            <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>
            <field name="meetingRooms" persistence-modifier="persistent">
                <collection element-type="org.apache.jdo.tck.pc.company.MeetingRoom"/>
                <join/>
            </field>
           <query name="projectingVariables">
	        <![CDATA[
		    select e.firstname
                    where name.startsWith('R&D') && employees.contains(e)
                    variables org.apache.jdo.tck.pc.company.Employee e
	        ]]>  
            </query>
        </class>

        <class name="Employee" identity-type="datastore">
            <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="datastore">
            <query name="constructor">
	        <![CDATA[
                    select new org.apache.jdo.tck.query.api.SampleQueries$Info (firstname, salary, manager)
                    where department.name == :deptName
	        ]]>
            </query>
            <query name="grouping">
	        <![CDATA[
                    select avg(salary), sum(salary), department.name
                    group by department.name having count(department.name) > 1
                ]]>
            </query>
        </class>

        <class name="Insurance" identity-type="datastore">
        </class>

        <class name="MedicalInsurance" identity-type="datastore"/>

        <class name="PartTimeEmployee" identity-type="datastore"/>

        <class name="Person" identity-type="datastore">
            <field name="middlename" default-fetch-group="false"/>
            <field name="address"
                   field-type="org.apache.jdo.tck.pc.company.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="datastore">
            <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>

        <interface name="PIAddress" embedded-only="true" requires-extent="false"/>

        <interface name="PICompany"
            identity-type="datastore">
            <property name="address"
                   field-type="org.apache.jdo.tck.pc.company.PIAddress"
                   persistence-modifier="persistent"/>
            <property name="departments" persistence-modifier="persistent">
                <collection element-type="org.apache.jdo.tck.pc.company.PIDepartment"/>
            </property>
        </interface>

        <interface name="PIDentalInsurance"
            identity-type="datastore"/>

        <interface name="PIDepartment"
            identity-type="datastore">
            <property name="employeeOfTheMonth"
                   field-type="org.apache.jdo.tck.pc.company.PIEmployee"
                   persistence-modifier="persistent"/>
            <property name="company"
                   field-type="org.apache.jdo.tck.pc.company.PICompany"
                   persistence-modifier="persistent"/>
            <property name="employees" persistence-modifier="persistent">
                <collection element-type="org.apache.jdo.tck.pc.company.PIEmployee"/>
            </property>
            <property name="fundedEmps" persistence-modifier="persistent">
                <collection element-type="org.apache.jdo.tck.pc.company.PIEmployee"/>
            </property>
        </interface>

        <interface name="PIEmployee"
            identity-type="datastore">
            <property name="dentalInsurance"
                   field-type="org.apache.jdo.tck.pc.company.PIDentalInsurance"
                   persistence-modifier="persistent"/>
            <property name="medicalInsurance"
                   field-type="org.apache.jdo.tck.pc.company.PIMedicalInsurance"
                   persistence-modifier="persistent"/>
            <property name="department"
                   field-type="org.apache.jdo.tck.pc.company.PIDepartment"
                   persistence-modifier="persistent"/>
            <property name="fundingDept"
                   field-type="org.apache.jdo.tck.pc.company.PIDepartment"
                   persistence-modifier="persistent"/>
            <property name="manager"
                   field-type="org.apache.jdo.tck.pc.company.PIEmployee"
                   persistence-modifier="persistent"/>
            <property name="mentor"
                   field-type="org.apache.jdo.tck.pc.company.PIEmployee"
                   persistence-modifier="persistent"/>
            <property name="protege"
                   field-type="org.apache.jdo.tck.pc.company.PIEmployee"
                   persistence-modifier="persistent"/>
            <property name="hradvisor"
                   field-type="org.apache.jdo.tck.pc.company.PIEmployee"
                   persistence-modifier="persistent"/>
            <property name="reviewedProjects" persistence-modifier="persistent">
                <collection element-type="org.apache.jdo.tck.pc.company.PIProject"/>
            </property>
            <property name="projects" persistence-modifier="persistent">
                <collection element-type="org.apache.jdo.tck.pc.company.PIProject"/>
            </property>
            <property name="team" persistence-modifier="persistent">
                <collection element-type="org.apache.jdo.tck.pc.company.PIEmployee"/>
            </property>
            <property name="hradvisees" persistence-modifier="persistent">
                <collection element-type="org.apache.jdo.tck.pc.company.PIEmployee"/>
            </property>
        </interface>

        <interface name="PIFullTimeEmployee"
            identity-type="datastore"/>

        <interface name="PIInsurance"
            identity-type="datastore">
            <property name="employee" field-type="org.apache.jdo.tck.pc.company.PIEmployee" persistence-modifier="persistent"/>
        </interface>

        <interface name="PIMedicalInsurance"
            identity-type="datastore"/>

        <interface name="PIPartTimeEmployee"
            identity-type="datastore"/>

        <interface name="PIPerson"
            identity-type="datastore">
            <property name="middlename" default-fetch-group="false"/>
            <property name="address"
                   field-type="org.apache.jdo.tck.pc.company.PIAddress"
                   persistence-modifier="persistent"/>
            <property name="phoneNumbers" persistence-modifier="persistent">
                <map key-type="String" value-type="String"/>
            </property>
            <query name="validNotUnique">
                SELECT firstname, lastname 
                INTO org.apache.jdo.tck.query.result.classes.FullName 
                FROM org.apache.jdo.tck.pc.company.PIPerson
            </query>
            <query name="validUnique">
                SELECT UNIQUE firstname, lastname 
                INTO org.apache.jdo.tck.query.result.classes.FullName 
                FROM org.apache.jdo.tck.pc.company.PIPerson 
                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.PIPerson
            </query>
            <query name="unmodifiable" unmodifiable="true">
                SELECT firstname, lastname 
                FROM org.apache.jdo.tck.pc.company.PIPerson
            </query>
            <query name="packageJDO">
                SELECT FROM org.apache.jdo.tck.pc.company.PIPerson
                WHERE personid > 1
            </query>
            <query name="changeQuery">
                SELECT FROM org.apache.jdo.tck.pc.company.PIPerson
            </query>
            <query name="invalidQuery">
                SeLeCt FrOm org.apache.jdo.tck.pc.company.PIPerson
            </query>
        </interface>

        <interface name="PIProject"
            identity-type="datastore">
            <property name="reviewers" persistence-modifier="persistent">
                <collection element-type="org.apache.jdo.tck.pc.company.PIEmployee"/>
            </property>
            <property name="members" persistence-modifier="persistent">
                <collection element-type="org.apache.jdo.tck.pc.company.PIEmployee"/>
            </property>
        </interface>

    </package>
</jdo>
