Skip to content

Commit

Permalink
replace PersistenceFacet by JPAFacet
Browse files Browse the repository at this point in the history
  • Loading branch information
koentsje committed Nov 5, 2013
1 parent e3b2ecf commit 4189c56
Show file tree
Hide file tree
Showing 2 changed files with 84 additions and 97 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@
import javax.inject.Inject;

import org.hibernate.forge.addon.connections.ConnectionProfileManager;
import org.jboss.forge.addon.javaee.jpa.PersistenceFacet;
import org.jboss.forge.addon.javaee.jpa.JPAFacet;
import org.jboss.forge.addon.projects.Project;
import org.jboss.forge.addon.projects.ProjectFactory;
import org.jboss.forge.addon.projects.facets.MetadataFacet;
import org.jboss.forge.addon.projects.ui.AbstractProjectCommand;
import org.jboss.forge.addon.ui.context.UIBuilder;
Expand All @@ -22,96 +23,86 @@
import org.jboss.forge.addon.ui.util.Metadata;
import org.jboss.forge.addon.ui.wizard.UIWizard;

public class GenerateEntitiesCommand extends AbstractProjectCommand implements UIWizard
{

private static String[] COMMAND_CATEGORY = { "Java EE", "Generate" };
private static String COMMAND_NAME = "Entities from Tables";
private static String COMMAND_DESCRIPTION = "Command to generate Java EE entities from database tables.";

@Inject
@WithAttributes(
label = "Target package",
type = InputType.JAVA_PACKAGE_PICKER,
description = "The name of the target package in which to generate the entities",
required = true)
private UIInput<String> targetPackage;

@Inject
@WithAttributes(
label = "Connection Profile",
description = "Select the database connection profile you want to use")
private UISelectOne<String> connectionProfile;

@Override
public Metadata getMetadata(UIContext context)
{
return Metadata
.from(super.getMetadata(context), getClass())
.name(COMMAND_NAME)
.description(COMMAND_DESCRIPTION)
.category(Categories.create(COMMAND_CATEGORY));
}

@Inject
private ConnectionProfileManager manager;

@Override
public void initializeUI(UIBuilder builder) throws Exception
{
Project project = getSelectedProject(builder.getUIContext());
MetadataFacet facet = project.getFacet(MetadataFacet.class);
String topLevelPackage = facet.getTopLevelPackage();
targetPackage.setDefaultValue(topLevelPackage);
ArrayList<String> profileNames = new ArrayList<String>();
profileNames.add("");
profileNames.addAll(manager.loadConnectionProfiles().keySet());
connectionProfile.setValueChoices(profileNames);
connectionProfile.setValue("");
builder.add(targetPackage).add(connectionProfile);
}

@Inject
private GenerateEntitiesCommandDescriptor descriptor;

@Override
public Result execute(UIContext context)
{
return Results.success();
}

protected String getParameters()
{
return targetPackage.getValue();
}

@Override
protected boolean isProjectRequired()
{
return true;
}

@Override
public boolean isEnabled(UIContext context)
{
Project project = getSelectedProject(context);
if (project != null)
{
return project.hasFacet(PersistenceFacet.class) && super.isEnabled(context);
}
else
{
return false;
}
}

@Override
public NavigationResult next(UIContext context) throws Exception
{
descriptor.targetPackage = targetPackage.getValue();
descriptor.connectionProfileName = connectionProfile.getValue();
descriptor.selectedProject = getSelectedProject(context);
return Results.navigateTo(ConnectionProfileDetailsStep.class);
}
public class GenerateEntitiesCommand extends AbstractProjectCommand implements
UIWizard {

private static String[] COMMAND_CATEGORY = { "Java EE", "Generate" };
private static String COMMAND_NAME = "Entities from Tables";
private static String COMMAND_DESCRIPTION = "Command to generate Java EE entities from database tables.";

@Inject
private ProjectFactory projectFactory;

@Inject
@WithAttributes(label = "Target package", type = InputType.JAVA_PACKAGE_PICKER, description = "The name of the target package in which to generate the entities", required = true)
private UIInput<String> targetPackage;

@Inject
@WithAttributes(label = "Connection Profile", description = "Select the database connection profile you want to use")
private UISelectOne<String> connectionProfile;

@Override
public Metadata getMetadata(UIContext context) {
return Metadata.from(super.getMetadata(context), getClass())
.name(COMMAND_NAME).description(COMMAND_DESCRIPTION)
.category(Categories.create(COMMAND_CATEGORY));
}

@Inject
private ConnectionProfileManager manager;

@Override
public void initializeUI(UIBuilder builder) throws Exception {
Project project = getSelectedProject(builder.getUIContext());
MetadataFacet facet = project.getFacet(MetadataFacet.class);
String topLevelPackage = facet.getTopLevelPackage();
targetPackage.setDefaultValue(topLevelPackage);
ArrayList<String> profileNames = new ArrayList<String>();
profileNames.add("");
profileNames.addAll(manager.loadConnectionProfiles().keySet());
connectionProfile.setValueChoices(profileNames);
connectionProfile.setValue("");
builder.add(targetPackage).add(connectionProfile);
}

@Inject
private GenerateEntitiesCommandDescriptor descriptor;

@Override
public Result execute(UIContext context) {
return Results.success();
}

protected String getParameters() {
return targetPackage.getValue();
}

@Override
protected boolean isProjectRequired() {
return true;
}

@Override
public boolean isEnabled(UIContext context) {
Project project = getSelectedProject(context);
if (project != null) {
return project.hasFacet(JPAFacet.class) && super.isEnabled(context);
} else {
return false;
}
}

@Override
public NavigationResult next(UIContext context) throws Exception {
descriptor.targetPackage = targetPackage.getValue();
descriptor.connectionProfileName = connectionProfile.getValue();
descriptor.selectedProject = getSelectedProject(context);
return Results.navigateTo(ConnectionProfileDetailsStep.class);
}

@Override
protected ProjectFactory getProjectFactory() {
return projectFactory;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@

package org.hibernate.forge.addon.generate;

import java.sql.Connection;
import java.sql.DriverManager;

import javax.inject.Inject;

import org.h2.Driver;
Expand All @@ -31,8 +28,6 @@
import org.jboss.forge.addon.dependencies.DependencyResolver;
import org.jboss.forge.addon.dependencies.builder.DependencyQueryBuilder;
import org.jboss.forge.addon.facets.FacetFactory;
import org.jboss.forge.addon.javaee.jpa.PersistenceFacet;
import org.jboss.forge.addon.projects.Project;
import org.jboss.forge.addon.projects.ProjectFactory;
import org.jboss.forge.addon.resource.FileResource;
import org.jboss.forge.arquillian.AddonDependency;
Expand All @@ -46,6 +41,7 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
;

@RunWith(Arquillian.class)
public class GenerateEntitiesCommandTest
Expand Down

1 comment on commit 4189c56

@lincolnthree
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, DUH. I was staring at this thinking I was crazy. That makes sense :) Hah.

Please sign in to comment.