<?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.
-->
<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">
    <package name="org.apache.jdo.tck.pc.shoppingcart">

        <class
                name="Undetachable"
                identity-type="datastore"
                detachable="false"
                />

        <class
                name="Product"
                identity-type="datastore"
                detachable="true"
                />

        <class
                name="Cart"
                identity-type="datastore"
                detachable="true"
                >
            <field name="entries">
                <collection element-type="CartEntry"/>
            </field>
            <fetch-group name="Cart.entries">
                <field name="entries"/>
            </fetch-group>
        </class>

        <class
                name="CartEntry"
                identity-type="datastore"
                detachable="true"
                >
            <fetch-group name="CartEntry.cart">
                <field name="cart"/>
            </fetch-group>
            <fetch-group name="CartEntry.product">
                <field name="product"/>
            </fetch-group>
        </class>
    </package>
</jdo>
