diff options
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/GenerateEntitiesWizard.java')
-rw-r--r-- | jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/GenerateEntitiesWizard.java | 212 |
1 files changed, 0 insertions, 212 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/GenerateEntitiesWizard.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/GenerateEntitiesWizard.java deleted file mode 100644 index d709c7967f..0000000000 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/wizards/GenerateEntitiesWizard.java +++ /dev/null @@ -1,212 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0, which accompanies this distribution - * and is available at http://www.eclipse.org/legal/epl-v10.html. - * - * Contributors: - * Oracle - initial API and implementation - ******************************************************************************/ -package org.eclipse.jpt.ui.internal.wizards; - -import java.util.Collection; -import java.util.Collections; -import java.util.Map; - -import org.eclipse.jdt.core.IPackageFragment; -import org.eclipse.jdt.core.IPackageFragmentRoot; -import org.eclipse.jdt.core.JavaModelException; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.wizard.Wizard; -import org.eclipse.jpt.core.EntityGeneratorDatabaseAnnotationNameBuilder; -import org.eclipse.jpt.core.JpaProject; -import org.eclipse.jpt.db.Column; -import org.eclipse.jpt.db.ForeignKey; -import org.eclipse.jpt.db.Schema; -import org.eclipse.jpt.db.Table; -import org.eclipse.jpt.gen.internal.EntityGenerator; -import org.eclipse.jpt.gen.internal.PackageGenerator; -import org.eclipse.jpt.ui.internal.JptUiMessages; -import org.eclipse.jpt.utility.internal.CollectionTools; - -/** - * two pages: - * - a Database Schema page that allows the user to select a schema - * - a Generate Entities page that allows the user to select which tables in - * the selected schema are to be used and to configure Entity names - */ -public class GenerateEntitiesWizard extends Wizard { - - private final JpaProject jpaProject; - - private final IStructuredSelection selection; - - private DatabaseSchemaWizardPage dbSchemaPage; - - private GenerateEntitiesWizardPage generateEntitiesPage; - - private final PackageGenerator.Config packageGeneratorConfig; - - private final EntityGenerator.Config entityGeneratorConfig; - - private boolean synchronizePersistenceXml; - - - public GenerateEntitiesWizard(JpaProject jpaProject, IStructuredSelection selection) { - super(); - this.jpaProject = jpaProject; - this.selection = selection; - this.packageGeneratorConfig = new PackageGenerator.Config(); - this.entityGeneratorConfig = new EntityGenerator.Config(); - this.setWindowTitle(JptUiMessages.GenerateEntitiesWizard_generateEntities); - } - - @Override - public void addPages() { - super.addPages(); - this.dbSchemaPage = new DatabaseSchemaWizardPage(this.jpaProject); - this.dbSchemaPage.addListener(new SchemaPageListener()); - this.addPage(this.dbSchemaPage); - - this.generateEntitiesPage = new GenerateEntitiesWizardPage(); - this.addPage(this.generateEntitiesPage); - this.generateEntitiesPage.init(this.selection); - } - - @Override - public boolean canFinish() { - return this.generateEntitiesPage.isPageComplete(); - } - - @Override - public boolean performFinish() { - this.packageGeneratorConfig.setPackageFragment(this.buildPackageFragment()); - - this.entityGeneratorConfig.setConvertToJavaStyleIdentifiers(this.generateEntitiesPage.convertToJavaStyleIdentifiers()); - this.entityGeneratorConfig.setFieldAccessType(this.generateEntitiesPage.fieldAccessType()); - this.entityGeneratorConfig.setCollectionTypeName(this.generateEntitiesPage.getCollectionTypeName()); - this.entityGeneratorConfig.setCollectionAttributeNameSuffix(this.generateEntitiesPage.getCollectionAttributeNameSuffix()); - this.entityGeneratorConfig.setFieldVisibility(this.generateEntitiesPage.getFieldVisibility()); - this.entityGeneratorConfig.setMethodVisibility(this.generateEntitiesPage.getMethodVisibility()); - this.entityGeneratorConfig.setGenerateGettersAndSetters(this.generateEntitiesPage.generateGettersAndSetters()); - this.entityGeneratorConfig.setGenerateDefaultConstructor(this.generateEntitiesPage.generateDefaultConstructor()); - this.entityGeneratorConfig.setSerializable(this.generateEntitiesPage.serializable()); - this.entityGeneratorConfig.setGenerateSerialVersionUID(this.generateEntitiesPage.generateSerialVersionUID()); - this.entityGeneratorConfig.setGenerateEmbeddedIdForCompoundPK(this.generateEntitiesPage.generateEmbeddedIdForCompoundPK()); - this.entityGeneratorConfig.setEmbeddedIdAttributeName(this.generateEntitiesPage.getEmbeddedIdAttributeName()); - this.entityGeneratorConfig.setPrimaryKeyMemberClassName(this.generateEntitiesPage.getPrimaryKeyMemberClassName()); - for (Map.Entry<Table, String> entry : this.generateEntitiesPage.getSelectedTables().entrySet()) { - this.entityGeneratorConfig.addTable(entry.getKey(), entry.getValue()); - } - // the name builder comes from the JPA platform - this.entityGeneratorConfig.setDatabaseAnnotationNameBuilder(this.buildDatabaseAnnotationNameBuilder()); - - this.synchronizePersistenceXml = this.generateEntitiesPage.synchronizePersistenceXml(); - - return true; - } - - private EntityGenerator.DatabaseAnnotationNameBuilder buildDatabaseAnnotationNameBuilder() { - return new LocalDatabaseAnnotationNameBuilder(this.jpaProject.getJpaPlatform().getEntityGeneratorDatabaseAnnotationNameBuilder()); - } - - private IPackageFragment buildPackageFragment() { - IPackageFragmentRoot packageFragmentRoot = this.generateEntitiesPage.getPackageFragmentRoot(); - IPackageFragment packageFragment = this.generateEntitiesPage.getPackageFragment(); - - if (packageFragment == null) { - packageFragment= packageFragmentRoot.getPackageFragment(""); //$NON-NLS-1$ - } - - if (packageFragment.exists()) { - return packageFragment; - } - - try { - return packageFragmentRoot.createPackageFragment(packageFragment.getElementName(), true, null); - } - catch (JavaModelException ex) { - throw new RuntimeException(ex); - } - } - - - // ********** intra-wizard methods ********** - - Collection<Table> getPossibleTables() { - return this.buildTables(this.dbSchemaPage.getSelectedSchema()); - } - - JpaProject getJpaProject() { - return this.jpaProject; - } - - void selectedSchemaChanged(Schema schema) { - this.generateEntitiesPage.setPossibleTables(this.buildTables(schema)); - } - - private Collection<Table> buildTables(Schema schema) { - return (schema == null) ? - Collections.<Table>emptySet() - : - CollectionTools.collection(schema.tables()); - } - - - // ********** public methods - settings ********** - - public PackageGenerator.Config getPackageGeneratorConfig() { - return this.packageGeneratorConfig; - } - - public EntityGenerator.Config getEntityGeneratorConfig() { - return this.entityGeneratorConfig; - } - - public boolean synchronizePersistenceXml(){ - return this.synchronizePersistenceXml; - } - - - // ********** name builder adapter ********** - - /** - * adapt the JPA platform-supplied builder to the builder interface - * expected by the entity generator - */ - static class LocalDatabaseAnnotationNameBuilder implements EntityGenerator.DatabaseAnnotationNameBuilder { - private EntityGeneratorDatabaseAnnotationNameBuilder builder; - LocalDatabaseAnnotationNameBuilder(EntityGeneratorDatabaseAnnotationNameBuilder builder) { - super(); - this.builder = builder; - } - public String buildTableAnnotationName(String entityName, Table table) { - return this.builder.buildTableAnnotationName(entityName, table); - } - public String buildColumnAnnotationName(String attributeName, Column column) { - return this.builder.buildColumnAnnotationName(attributeName, column); - } - public String buildJoinColumnAnnotationName(String attributeName, ForeignKey foreignKey) { - return this.builder.buildJoinColumnAnnotationName(attributeName, foreignKey); - } - public String buildJoinColumnAnnotationName(Column column) { - return this.builder.buildJoinColumnAnnotationName(column); - } - public String buildJoinTableAnnotationName(Table table) { - return this.builder.buildJoinTableAnnotationName(table); - } - } - - - // ********** schema page listener ********** - - /** - * listen for when the Database Connection page changes its selected schema - * so we can keep the Generate Entities page in synch - */ - class SchemaPageListener implements DatabaseSchemaWizardPage.Listener { - public void selectedSchemaChanged(Schema schema) { - GenerateEntitiesWizard.this.selectedSchemaChanged(schema); - } - } -} |