/******************************************************************************* * 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.tools.workbench.test.models.projects; import org.eclipse.persistence.descriptors.RelationalDescriptor; import org.eclipse.persistence.mappings.AggregateObjectMapping; import org.eclipse.persistence.mappings.DirectToFieldMapping; import org.eclipse.persistence.mappings.ManyToManyMapping; import org.eclipse.persistence.mappings.OneToManyMapping; import org.eclipse.persistence.mappings.OneToOneMapping; import org.eclipse.persistence.queries.DoesExistQuery; import org.eclipse.persistence.queries.InMemoryQueryIndirectionPolicy; import org.eclipse.persistence.queries.ObjectLevelReadQuery; import org.eclipse.persistence.queries.ReadAllQuery; import org.eclipse.persistence.queries.ReadObjectQuery; import org.eclipse.persistence.sequencing.TableSequence; import org.eclipse.persistence.sessions.DatabaseLogin; import org.eclipse.persistence.sessions.Project; /** * @author kamoore * * To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */ public class ComplexAggregateRuntimeProject { private Project runtimeProject; public ComplexAggregateRuntimeProject() { super(); this.runtimeProject = new Project(); this.runtimeProject.setName("ComplexAggregate"); applyLogin(); this.runtimeProject.addDescriptor(buildAddressDescriptor()); this.runtimeProject.addDescriptor(buildAddressDescriptionDescriptor()); this.runtimeProject.addDescriptor(buildClientDescriptor()); this.runtimeProject.addDescriptor(buildComputerDescriptor()); this.runtimeProject.addDescriptor(buildEmployeeDescriptor()); this.runtimeProject.addDescriptor(buildEvaluationClientDescriptor()); this.runtimeProject.addDescriptor(buildLanguageDescriptor()); this.runtimeProject.addDescriptor(buildPeriodDescriptor()); this.runtimeProject.addDescriptor(buildPeriodDescriptionDescriptor()); this.runtimeProject.addDescriptor(buildProjectDescriptionDescriptor()); this.runtimeProject.addDescriptor(buildResponsibilityDescriptor()); } public void applyLogin() { DatabaseLogin login = new DatabaseLogin(); login.usePlatform(new org.eclipse.persistence.platform.database.MySQLPlatform()); login.setDriverClassName(TestDatabases.mySQLDriverClassName()); login.setConnectionString(TestDatabases.mySQLServerURL()); login.setUserName(TestDatabases.userName()); login.setPassword(TestDatabases.password()); // Configuration properties. //login.setUsesNativeSequencing(false); ((TableSequence)login.getDefaultSequence()).setTableName("SEQUENCE"); ((TableSequence)login.getDefaultSequence()).setNameFieldName("SEQ_NAME"); ((TableSequence)login.getDefaultSequence()).setCounterFieldName("SEQ_COUNT"); ((TableSequence)login.getDefaultSequence()).setPreallocationSize(50); login.setShouldCacheAllStatements(false); login.setUsesByteArrayBinding(true); login.setUsesStringBinding(false); if (login.shouldUseByteArrayBinding()) { // Can only be used with binding. login.setUsesStreamsForBinding(false); } login.setShouldForceFieldNamesToUpperCase(false); login.setShouldOptimizeDataConversion(true); login.setShouldTrimStrings(true); login.setUsesBatchWriting(false); if (login.shouldUseBatchWriting()) { // Can only be used with batch writing. login.setUsesJDBCBatchWriting(true); } login.setUsesExternalConnectionPooling(false); login.setUsesExternalTransactionController(false); this.runtimeProject.setLogin(login); } public RelationalDescriptor buildAddressDescriptionDescriptor() { RelationalDescriptor descriptor = new RelationalDescriptor(); descriptor.descriptorIsAggregate(); descriptor.setJavaClassName(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.AddressDescription.class.getName()); // Descriptor properties. descriptor.setAlias("AddressDescription"); // Query manager. //Named Queries // Query keys. descriptor.addDirectQueryKey("id" , "QUERY_KEY id"); // Mappings. AggregateObjectMapping periodDescriptionMapping = new AggregateObjectMapping(); periodDescriptionMapping.setAttributeName("periodDescription"); periodDescriptionMapping.setGetMethodName("getPeriodDescription"); periodDescriptionMapping.setSetMethodName("setPeriodDescription"); periodDescriptionMapping.setReferenceClassName(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.PeriodDescription.class.getName()); periodDescriptionMapping.setIsNullAllowed(true); periodDescriptionMapping.addFieldNameTranslation("periodDescription_period_endDate->DIRECT", "period_endDate->DIRECT"); periodDescriptionMapping.addFieldNameTranslation("periodDescription_period_startDate->DIRECT", "period_startDate->DIRECT"); descriptor.addMapping(periodDescriptionMapping); OneToOneMapping addressMapping = new OneToOneMapping(); addressMapping.setAttributeName("address"); addressMapping.setReferenceClassName(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.Address.class.getName()); addressMapping.useBasicIndirection(); addressMapping.privateOwnedRelationship(); addressMapping.addForeignKeyFieldName("address->EM_ADD_IN_REFERENCE_AGG_EMP_AGG_ADD", "AGG_ADD.ID"); descriptor.addMapping(addressMapping); return descriptor; } public RelationalDescriptor buildAddressDescriptor() { RelationalDescriptor descriptor = new RelationalDescriptor(); descriptor.setJavaClassName(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.Address.class.getName()); descriptor.addTableName("AGG_ADD"); descriptor.addPrimaryKeyFieldName("AGG_ADD.ID"); // Descriptor properties. descriptor.useFullIdentityMap(); descriptor.setIdentityMapSize(100); descriptor.setSequenceNumberFieldName("AGG_ADD.ID"); descriptor.setSequenceNumberName("SEQ"); descriptor.setAlias("Address"); descriptor.setIsIsolated(false); // Query manager. descriptor.getDescriptorQueryManager().assumeNonExistenceForDoesExist(); //Named Queries // Event manager. // Mappings. DirectToFieldMapping addressMapping = new DirectToFieldMapping(); addressMapping.setAttributeName("address"); addressMapping.setFieldName("AGG_ADD.ADDRESS"); descriptor.addMapping(addressMapping); DirectToFieldMapping idMapping = new DirectToFieldMapping(); idMapping.setAttributeName("id"); idMapping.setFieldName("AGG_ADD.ID"); descriptor.addMapping(idMapping); return descriptor; } public RelationalDescriptor buildClientDescriptor() { RelationalDescriptor descriptor = new RelationalDescriptor(); descriptor.setJavaClassName(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.Client.class.getName()); descriptor.addTableName("AGG_CLNT"); descriptor.addPrimaryKeyFieldName("AGG_CLNT.CL_ID"); // Inheritance properties. descriptor.getDescriptorInheritancePolicy().setClassIndicatorFieldName("AGG_CLNT.TYPE"); descriptor.getDescriptorInheritancePolicy().addClassNameIndicator(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.Client.class.getName(), "Client"); descriptor.getDescriptorInheritancePolicy().addClassNameIndicator(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.EvaluationClient.class.getName(), "Eval"); descriptor.getDescriptorInheritancePolicy().dontReadSubclassesOnQueries(); // Descriptor properties. descriptor.useFullIdentityMap(); descriptor.setIdentityMapSize(100); descriptor.setSequenceNumberFieldName("AGG_CLNT.CL_ID"); descriptor.setSequenceNumberName("SEQ"); descriptor.setReadOnly(); descriptor.setAlias("Client"); descriptor.setIsIsolated(false); // Query manager. descriptor.getDescriptorQueryManager().assumeNonExistenceForDoesExist(); descriptor.getDescriptorQueryManager().setReadObjectSQLString("read the object"); descriptor.getDescriptorQueryManager().getReadObjectQuery().setShouldBindAllParameters(true); descriptor.getDescriptorQueryManager().setReadAllSQLString("read everything"); descriptor.getDescriptorQueryManager().getReadAllQuery().setShouldBindAllParameters(true); descriptor.getDescriptorQueryManager().setInsertSQLString("an insert"); descriptor.getDescriptorQueryManager().getInsertQuery().setShouldBindAllParameters(true); descriptor.getDescriptorQueryManager().setUpdateSQLString("an update"); descriptor.getDescriptorQueryManager().getUpdateQuery().setShouldBindAllParameters(true); descriptor.getDescriptorQueryManager().setDeleteSQLString("an update"); descriptor.getDescriptorQueryManager().getDeleteQuery().setShouldBindAllParameters(true); //Named Queries //Named Query -- query3 ReadObjectQuery namedQuery0 = new ReadObjectQuery(); namedQuery0.setEJBQLString("3"); namedQuery0.setName("query3"); namedQuery0.setCascadePolicy(1); namedQuery0.setQueryTimeout(-1); namedQuery0.setShouldUseWrapperPolicy(true); namedQuery0.setShouldBindAllParameters(true); namedQuery0.setShouldCacheStatement(true); namedQuery0.setShouldMaintainCache(false); namedQuery0.setShouldPrepare(true); namedQuery0.setMaxRows(0); namedQuery0.setShouldRefreshIdentityMapResult(false); namedQuery0.setCacheUsage(1); namedQuery0.setLockMode((short)-1); namedQuery0.setShouldRefreshRemoteIdentityMapResult(false); namedQuery0.setDistinctState((short)0); namedQuery0.setInMemoryQueryIndirectionPolicy(new InMemoryQueryIndirectionPolicy(0)); descriptor.getDescriptorQueryManager().addQuery("query3", namedQuery0); //Named Query -- query2 ReadAllQuery namedQuery1 = new ReadAllQuery(); namedQuery1.setEJBQLString("2"); namedQuery1.setName("query2"); namedQuery1.setCascadePolicy(1); namedQuery1.setQueryTimeout(-1); namedQuery1.setShouldUseWrapperPolicy(true); namedQuery1.setShouldBindAllParameters(true); namedQuery1.setShouldCacheStatement(true); namedQuery1.setShouldMaintainCache(true); namedQuery1.setShouldPrepare(true); namedQuery1.setMaxRows(0); namedQuery1.setShouldRefreshIdentityMapResult(true); namedQuery1.setCacheUsage(0); namedQuery1.setLockMode((short)1); namedQuery1.setShouldRefreshRemoteIdentityMapResult(true); namedQuery1.setDistinctState((short)0); namedQuery1.setInMemoryQueryIndirectionPolicy(new InMemoryQueryIndirectionPolicy(0)); namedQuery1.addArgumentByTypeName("arg", org.eclipse.persistence.sessions.DatabaseLogin.class.getName()); namedQuery1.addArgumentByTypeName("arg2", java.lang.String.class.getName()); descriptor.getDescriptorQueryManager().addQuery("query2", namedQuery1); //Named Query -- query1 ReadObjectQuery namedQuery2 = new ReadObjectQuery(); namedQuery2.setEJBQLString("foo"); namedQuery2.setName("query1"); namedQuery2.setCascadePolicy(1); namedQuery2.setQueryTimeout(-1); namedQuery2.setShouldUseWrapperPolicy(true); namedQuery2.setShouldBindAllParameters(false); namedQuery2.setShouldCacheStatement(false); namedQuery2.setShouldMaintainCache(true); namedQuery2.setShouldPrepare(true); namedQuery2.setMaxRows(0); namedQuery2.setShouldRefreshIdentityMapResult(false); namedQuery2.setCacheUsage(ObjectLevelReadQuery.CheckCacheByPrimaryKey); namedQuery2.setLockMode((short)-1); namedQuery2.setShouldRefreshRemoteIdentityMapResult(false); namedQuery2.setDistinctState((short)0); namedQuery2.setInMemoryQueryIndirectionPolicy(new InMemoryQueryIndirectionPolicy(0)); namedQuery2.addArgumentByTypeName("arg", java.lang.String.class.getName()); descriptor.getDescriptorQueryManager().addQuery("query1", namedQuery2); //Named Query -- query6 ReadObjectQuery namedQuery3 = new ReadObjectQuery(); namedQuery3.setSQLString("blah qwerty"); namedQuery3.setName("query6"); namedQuery3.setCascadePolicy(1); namedQuery3.setQueryTimeout(-1); namedQuery3.setShouldUseWrapperPolicy(true); namedQuery3.setShouldBindAllParameters(false); namedQuery3.setShouldCacheStatement(true); namedQuery3.setShouldMaintainCache(false); namedQuery3.setShouldPrepare(true); namedQuery3.setMaxRows(0); namedQuery3.setShouldRefreshIdentityMapResult(true); namedQuery3.setCacheUsage(5); namedQuery3.setLockMode((short)2); namedQuery3.setShouldRefreshRemoteIdentityMapResult(true); namedQuery3.setDistinctState((short)0); namedQuery3.setInMemoryQueryIndirectionPolicy(new InMemoryQueryIndirectionPolicy(0)); descriptor.getDescriptorQueryManager().addQuery("query6", namedQuery3); //Named Query -- query5 ReadAllQuery namedQuery4 = new ReadAllQuery(); namedQuery4.setEJBQLString("hi"); namedQuery4.setName("query5"); namedQuery4.setCascadePolicy(1); namedQuery4.setQueryTimeout(-1); namedQuery4.setShouldUseWrapperPolicy(true); namedQuery4.setShouldBindAllParameters(true); namedQuery4.setShouldCacheStatement(false); namedQuery4.setShouldMaintainCache(true); namedQuery4.setShouldPrepare(true); namedQuery4.setMaxRows(0); namedQuery4.setShouldRefreshIdentityMapResult(false); namedQuery4.setCacheUsage(4); namedQuery4.setLockMode((short)-1); namedQuery4.setShouldRefreshRemoteIdentityMapResult(false); namedQuery4.setDistinctState((short)0); namedQuery4.setInMemoryQueryIndirectionPolicy(new InMemoryQueryIndirectionPolicy(0)); descriptor.getDescriptorQueryManager().addQuery("query5", namedQuery4); //Named Query -- query4 ReadAllQuery namedQuery5 = new ReadAllQuery(); namedQuery5.setSQLString("yo"); namedQuery5.setName("query4"); namedQuery5.setCascadePolicy(1); namedQuery5.setQueryTimeout(-1); namedQuery5.setShouldUseWrapperPolicy(true); namedQuery5.setShouldBindAllParameters(true); namedQuery5.setShouldCacheStatement(false); namedQuery5.setShouldMaintainCache(true); namedQuery5.setShouldPrepare(true); namedQuery5.setMaxRows(0); namedQuery5.setShouldRefreshIdentityMapResult(true); namedQuery5.setCacheUsage(3); namedQuery5.setLockMode((short)1); namedQuery5.setShouldRefreshRemoteIdentityMapResult(true); namedQuery5.setDistinctState((short)0); namedQuery5.setInMemoryQueryIndirectionPolicy(new InMemoryQueryIndirectionPolicy(0)); descriptor.getDescriptorQueryManager().addQuery("query4", namedQuery5); // Event manager. // Mappings. DirectToFieldMapping idMapping = new DirectToFieldMapping(); idMapping.setAttributeName("id"); idMapping.setFieldName("AGG_CLNT.CL_ID"); descriptor.addMapping(idMapping); DirectToFieldMapping nameMapping = new DirectToFieldMapping(); nameMapping.setAttributeName("name"); nameMapping.setFieldName("AGG_CLNT.CL_NAME"); descriptor.addMapping(nameMapping); AggregateObjectMapping addressDescriptionMapping = new AggregateObjectMapping(); addressDescriptionMapping.setAttributeName("addressDescription"); addressDescriptionMapping.setReferenceClassName(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.AddressDescription.class.getName()); addressDescriptionMapping.setIsNullAllowed(false); addressDescriptionMapping.addFieldNameTranslation("AGG_CLNT.CL_EDATE", "periodDescription_period_endDate->DIRECT"); addressDescriptionMapping.addFieldNameTranslation("AGG_CLNT.CL_SDATE", "periodDescription_period_startDate->DIRECT"); addressDescriptionMapping.addFieldNameTranslation("AGG_CLNT.CL_ADD", "address->EM_ADD_IN_REFERENCE_AGG_EMP_AGG_ADD"); addressDescriptionMapping.addFieldNameTranslation("AGG_CLNT.CL_ID", "QUERY_KEY id"); descriptor.addMapping(addressDescriptionMapping); return descriptor; } public RelationalDescriptor buildComputerDescriptor() { RelationalDescriptor descriptor = new RelationalDescriptor(); descriptor.setJavaClassName(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.Computer.class.getName()); descriptor.addTableName("AGG_COM"); descriptor.addPrimaryKeyFieldName("AGG_COM.ID"); // Descriptor properties. descriptor.useFullIdentityMap(); descriptor.setIdentityMapSize(100); descriptor.setSequenceNumberFieldName("AGG_COM.ID"); descriptor.setSequenceNumberName("SEQ"); descriptor.setAlias("Computer"); descriptor.setIsIsolated(false); // Query manager. descriptor.getDescriptorQueryManager().assumeNonExistenceForDoesExist(); //Named Queries // Event manager. // Mappings. DirectToFieldMapping descriptionMapping = new DirectToFieldMapping(); descriptionMapping.setAttributeName("description"); descriptionMapping.setFieldName("AGG_COM.DESCRIP"); descriptor.addMapping(descriptionMapping); DirectToFieldMapping idMapping = new DirectToFieldMapping(); idMapping.setAttributeName("id"); idMapping.setFieldName("AGG_COM.ID"); descriptor.addMapping(idMapping); return descriptor; } public RelationalDescriptor buildEmployeeDescriptor() { RelationalDescriptor descriptor = new RelationalDescriptor(); descriptor.setJavaClassName(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.Employee.class.getName()); descriptor.addTableName("AGG_EMP"); descriptor.addPrimaryKeyFieldName("AGG_EMP.EM_ADD"); descriptor.addPrimaryKeyFieldName("AGG_EMP.EM_ID"); // Descriptor properties. descriptor.useFullIdentityMap(); descriptor.setIdentityMapSize(100); descriptor.setSequenceNumberFieldName("AGG_EMP.EM_ID"); descriptor.setSequenceNumberName("SEQ"); descriptor.setAlias("Employee"); descriptor.setIsIsolated(false); // Query manager. descriptor.getDescriptorQueryManager().assumeNonExistenceForDoesExist(); //Named Queries // Event manager. // Query keys. descriptor.addDirectQueryKey("id", "AGG_EMP.EM_ID"); // Mappings. DirectToFieldMapping firstNameMapping = new DirectToFieldMapping(); firstNameMapping.setAttributeName("firstName"); firstNameMapping.setFieldName("AGG_EMP.EM_FNAME"); descriptor.addMapping(firstNameMapping); DirectToFieldMapping lastNameMapping = new DirectToFieldMapping(); lastNameMapping.setAttributeName("lastName"); lastNameMapping.setFieldName("AGG_EMP.EM_LNAME"); descriptor.addMapping(lastNameMapping); AggregateObjectMapping addressDescriptionMapping = new AggregateObjectMapping(); addressDescriptionMapping.setAttributeName("addressDescription"); addressDescriptionMapping.setGetMethodName("getAddressDescription"); addressDescriptionMapping.setSetMethodName("setAddressDescription"); addressDescriptionMapping.setReferenceClassName(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.AddressDescription.class.getName()); addressDescriptionMapping.setIsNullAllowed(false); addressDescriptionMapping.addFieldNameTranslation("AGG_EMP.EM_EDATE", "periodDescription_period_endDate->DIRECT"); addressDescriptionMapping.addFieldNameTranslation("AGG_EMP.EM_SDATE", "periodDescription_period_startDate->DIRECT"); addressDescriptionMapping.addFieldNameTranslation("AGG_EMP.EM_ADD", "address->EM_ADD_IN_REFERENCE_AGG_EMP_AGG_ADD"); addressDescriptionMapping.addFieldNameTranslation("AGG_EMP.EM_ID", "QUERY_KEY id"); descriptor.addMapping(addressDescriptionMapping); AggregateObjectMapping projectDescriptionMapping = new AggregateObjectMapping(); projectDescriptionMapping.setAttributeName("projectDescription"); projectDescriptionMapping.setGetMethodName("getProjectDescription"); projectDescriptionMapping.setSetMethodName("setProjectDescription"); projectDescriptionMapping.setReferenceClassName(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.ProjectDescription.class.getName()); projectDescriptionMapping.setIsNullAllowed(false); projectDescriptionMapping.addFieldNameTranslation("AGG_EMP.COMP_ID", "computer->COMP_ID_IN_REFERENCE_AGG_EMP_AGG_COM"); projectDescriptionMapping.addFieldNameTranslation("AGG_EMP.EM_PDESC", "description->DIRECT"); projectDescriptionMapping.addFieldNameTranslation("AGG_EMP.EM_ID", "id->DIRECT"); projectDescriptionMapping.addFieldNameTranslation("AGG_EMP.EM_ID", "languages->EM_ID_IN_REFERENCE_EMP_LAN_AGG_EMP"); projectDescriptionMapping.addFieldNameTranslation("AGG_EMP.EM_ID", "responsibilities->EM_ID_IN_REFERENCE_AGG_RES_AGG_EMP"); descriptor.addMapping(projectDescriptionMapping); return descriptor; } public RelationalDescriptor buildEvaluationClientDescriptor() { RelationalDescriptor descriptor = new RelationalDescriptor(); descriptor.setJavaClassName(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.EvaluationClient.class.getName()); descriptor.addTableName("AGG_ECNT"); descriptor.addPrimaryKeyFieldName("AGG_ECNT.CL_ID"); descriptor.getDescriptorInheritancePolicy().setShouldReadSubclasses(true); descriptor.getDescriptorQueryManager().getDoesExistQuery().setExistencePolicy(DoesExistQuery.AssumeNonExistence); // Inheritance properties. descriptor.getDescriptorInheritancePolicy().setParentClassName(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.Client.class.getName()); // Descriptor properties. descriptor.setAlias("EvaluationClient"); descriptor.setIsIsolated(false); // Query manager. //Named Queries // Event manager. // Mappings. AggregateObjectMapping evaluationPeriodMapping = new AggregateObjectMapping(); evaluationPeriodMapping.setAttributeName("evaluationPeriod"); evaluationPeriodMapping.setReferenceClassName(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.Period.class.getName()); evaluationPeriodMapping.setIsNullAllowed(false); evaluationPeriodMapping.addFieldNameTranslation("AGG_ECNT.EV_SDATE", "startDate->DIRECT"); evaluationPeriodMapping.addFieldNameTranslation("AGG_ECNT.EV_EDATE", "endDate->DIRECT"); descriptor.addMapping(evaluationPeriodMapping); return descriptor; } public RelationalDescriptor buildLanguageDescriptor() { RelationalDescriptor descriptor = new RelationalDescriptor(); descriptor.setJavaClassName(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.Language.class.getName()); descriptor.addTableName("AGG_LAN"); descriptor.addPrimaryKeyFieldName("AGG_LAN.ID"); // Descriptor properties. descriptor.useFullIdentityMap(); descriptor.setIdentityMapSize(100); descriptor.setIsIsolated(false); descriptor.setSequenceNumberFieldName("AGG_LAN.ID"); descriptor.setSequenceNumberName("SEQ"); descriptor.setAlias("Language"); // Query manager. descriptor.getDescriptorQueryManager().assumeNonExistenceForDoesExist(); //Named Queries // Event manager. // Mappings. DirectToFieldMapping idMapping = new DirectToFieldMapping(); idMapping.setAttributeName("id"); idMapping.setFieldName("AGG_LAN.ID"); descriptor.addMapping(idMapping); DirectToFieldMapping languageMapping = new DirectToFieldMapping(); languageMapping.setAttributeName("language"); languageMapping.setFieldName("AGG_LAN.LANGUAGE"); descriptor.addMapping(languageMapping); return descriptor; } public RelationalDescriptor buildPeriodDescriptionDescriptor() { RelationalDescriptor descriptor = new RelationalDescriptor(); descriptor.descriptorIsAggregate(); descriptor.setJavaClassName(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.PeriodDescription.class.getName()); // Descriptor properties. descriptor.setAlias("PeriodDescription"); // Query manager. //Named Queries // Event manager. // Mappings. AggregateObjectMapping periodMapping = new AggregateObjectMapping(); periodMapping.setAttributeName("period"); periodMapping.setGetMethodName("getPeriod"); periodMapping.setSetMethodName("setPeriod"); periodMapping.setReferenceClassName(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.Period.class.getName()); periodMapping.setIsNullAllowed(false); periodMapping.addFieldNameTranslation("period_endDate->DIRECT", "endDate->DIRECT"); periodMapping.addFieldNameTranslation("period_startDate->DIRECT", "startDate->DIRECT"); descriptor.addMapping(periodMapping); return descriptor; } public RelationalDescriptor buildPeriodDescriptor() { RelationalDescriptor descriptor = new RelationalDescriptor(); descriptor.descriptorIsAggregate(); descriptor.setJavaClassName(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.Period.class.getName()); // Descriptor properties. descriptor.setAlias("Period"); // Query manager. //Named Queries // Event manager. // Mappings. DirectToFieldMapping endDateMapping = new DirectToFieldMapping(); endDateMapping.setAttributeName("endDate"); endDateMapping.setFieldName("endDate->DIRECT"); descriptor.addMapping(endDateMapping); DirectToFieldMapping startDateMapping = new DirectToFieldMapping(); startDateMapping.setAttributeName("startDate"); startDateMapping.setFieldName("startDate->DIRECT"); descriptor.addMapping(startDateMapping); return descriptor; } public RelationalDescriptor buildProjectDescriptionDescriptor() { RelationalDescriptor descriptor = new RelationalDescriptor(); descriptor.descriptorIsAggregate(); descriptor.setJavaClassName(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.ProjectDescription.class.getName()); // Descriptor properties. descriptor.setAlias("ProjectDescription"); // Query manager. //Named Queries // Event manager. // Mappings. DirectToFieldMapping descriptionMapping = new DirectToFieldMapping(); descriptionMapping.setAttributeName("description"); descriptionMapping.setFieldName("description->DIRECT"); descriptor.addMapping(descriptionMapping); DirectToFieldMapping idMapping = new DirectToFieldMapping(); idMapping.setAttributeName("id"); idMapping.setFieldName("id->DIRECT"); descriptor.addMapping(idMapping); OneToOneMapping computerMapping = new OneToOneMapping(); computerMapping.setAttributeName("computer"); computerMapping.setReferenceClassName(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.Computer.class.getName()); computerMapping.useBasicIndirection(); computerMapping.privateOwnedRelationship(); computerMapping.addForeignKeyFieldName("computer->COMP_ID_IN_REFERENCE_AGG_EMP_AGG_COM", "AGG_COM.ID"); descriptor.addMapping(computerMapping); OneToManyMapping responsibilitiesMapping = new OneToManyMapping(); responsibilitiesMapping.setAttributeName("responsibilities"); responsibilitiesMapping.setReferenceClassName(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.Responsibility.class.getName()); responsibilitiesMapping.useBasicIndirection(); responsibilitiesMapping.useListClassName("java.util.Vector"); responsibilitiesMapping.privateOwnedRelationship(); responsibilitiesMapping.addTargetForeignKeyFieldName("AGG_RES.EMP_ID", "responsibilities->EM_ID_IN_REFERENCE_AGG_RES_AGG_EMP"); descriptor.addMapping(responsibilitiesMapping); ManyToManyMapping languagesMapping = new ManyToManyMapping(); languagesMapping.setAttributeName("languages"); languagesMapping.setReferenceClassName(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.Language.class.getName()); languagesMapping.useBasicIndirection(); languagesMapping.useListClassName("java.util.Vector"); languagesMapping.setRelationTableName("EMP_LAN"); languagesMapping.addSourceRelationKeyFieldName("EMP_LAN.EMP_ID", "languages->EM_ID_IN_REFERENCE_EMP_LAN_AGG_EMP"); languagesMapping.addTargetRelationKeyFieldName("EMP_LAN.LAN_ID", "AGG_LAN.ID"); descriptor.addMapping(languagesMapping); return descriptor; } public RelationalDescriptor buildResponsibilityDescriptor() { RelationalDescriptor descriptor = new RelationalDescriptor(); descriptor.setJavaClassName(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.Responsibility.class.getName()); descriptor.addTableName("AGG_RES"); descriptor.addPrimaryKeyFieldName("AGG_RES.ID"); // Descriptor properties. descriptor.useFullIdentityMap(); descriptor.setIdentityMapSize(100); descriptor.setSequenceNumberFieldName("AGG_RES.ID"); descriptor.setSequenceNumberName("SEQ"); descriptor.setAlias("Responsibility"); descriptor.setIsIsolated(false); // Query manager. descriptor.getDescriptorQueryManager().assumeNonExistenceForDoesExist(); //Named Queries // Event manager. // Mappings. DirectToFieldMapping idMapping = new DirectToFieldMapping(); idMapping.setAttributeName("id"); idMapping.setFieldName("AGG_RES.ID"); descriptor.addMapping(idMapping); DirectToFieldMapping responsibilityMapping = new DirectToFieldMapping(); responsibilityMapping.setAttributeName("responsibility"); responsibilityMapping.setFieldName("AGG_RES.DUTY"); descriptor.addMapping(responsibilityMapping); OneToOneMapping employeeMapping = new OneToOneMapping(); employeeMapping.setAttributeName("employee"); employeeMapping.setReferenceClassName(org.eclipse.persistence.tools.workbench.test.models.complexaggregate.Employee.class.getName()); employeeMapping.useBasicIndirection(); employeeMapping.addForeignKeyFieldName("AGG_RES.EMP_ID", "AGG_EMP.EM_ID"); descriptor.addMapping(employeeMapping); return descriptor; } public Project getRuntimeProject() { return this.runtimeProject; } }