/******************************************************************************* * Copyright (c) 1998, 2015 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 v1.0 and Eclipse Distribution License v. 1.0 * which accompanies this distribution. * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html * and the Eclipse Distribution License is available at * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Oracle - initial API and implementation from Oracle TopLink ******************************************************************************/ package org.eclipse.persistence.testing.models.transparentindirection; import java.util.*; import org.eclipse.persistence.descriptors.RelationalDescriptor; /** * configure Order descriptor to use IndirectLists */ public class CustomIndirectContainerProject extends IndirectListProject { public CustomIndirectContainerProject() { super(); buildDogDescriptor(); } protected void buildDogDescriptor() { RelationalDescriptor descriptor = new RelationalDescriptor(); // SECTION: DESCRIPTOR descriptor.setJavaClass(Dog.class); Vector vector = new Vector(); vector.addElement("DOG"); descriptor.setTableNames(vector); descriptor.addPrimaryKeyFieldName("DOG.ID"); // SECTION: PROPERTIES descriptor.setIdentityMapClass(org.eclipse.persistence.internal.identitymaps.FullIdentityMap.class); descriptor.setSequenceNumberName("dog"); descriptor.setSequenceNumberFieldName("ID"); descriptor.setExistenceChecking("Check cache"); descriptor.setIdentityMapSize(100); // SECTION: COPY POLICY descriptor.createCopyPolicy("constructor"); // SECTION: INSTANTIATION POLICY descriptor.createInstantiationPolicy("constructor"); // SECTION: DIRECTTOFIELDMAPPING org.eclipse.persistence.mappings.DirectToFieldMapping directtofieldmapping = new org.eclipse.persistence.mappings.DirectToFieldMapping(); directtofieldmapping.setAttributeName("id"); directtofieldmapping.setIsReadOnly(false); directtofieldmapping.setFieldName("DOG.ID"); descriptor.addMapping(directtofieldmapping); // SECTION: DIRECTTOFIELDMAPPING org.eclipse.persistence.mappings.DirectToFieldMapping directtofieldmapping1 = new org.eclipse.persistence.mappings.DirectToFieldMapping(); directtofieldmapping1.setAttributeName("name"); directtofieldmapping1.setIsReadOnly(false); directtofieldmapping1.setFieldName("DOG.NAME"); descriptor.addMapping(directtofieldmapping1); // SECTION: ONETOONEMAPPING org.eclipse.persistence.mappings.OneToOneMapping onetoonemapping = new org.eclipse.persistence.mappings.OneToOneMapping(); onetoonemapping.setAttributeName("owner"); onetoonemapping.setIsReadOnly(false); onetoonemapping.useContainerIndirection(SalesRepContainer.class); onetoonemapping.setReferenceClass(SalesRep.class); onetoonemapping.setIsPrivateOwned(false); onetoonemapping.addForeignKeyFieldName("DOG.SREP_ID", "SALEREP.ID"); descriptor.addMapping(onetoonemapping); addDescriptor(descriptor); } }