Skip to content

Commit

Permalink
JSONRestResourceFromEntityCommand implements only UIWizardStep.
Browse files Browse the repository at this point in the history
The class no longer inherits from AbstractJavaEECommand.
  • Loading branch information
VineetReynolds committed Apr 25, 2014
1 parent e470e6b commit af0ebb4
Showing 1 changed file with 26 additions and 42 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,27 +15,23 @@
import javax.ws.rs.core.MediaType;

import org.jboss.forge.addon.convert.Converter;
import org.jboss.forge.addon.javaee.ejb.EJBFacet;
import org.jboss.forge.addon.javaee.ejb.ui.EJBSetupWizard;
import org.jboss.forge.addon.javaee.jpa.JPAFacet;
import org.jboss.forge.addon.javaee.jpa.ui.setup.JPASetupWizard;
import org.jboss.forge.addon.javaee.rest.RestFacet;
import org.jboss.forge.addon.javaee.rest.generation.RestResourceGenerator;
import org.jboss.forge.addon.javaee.rest.generator.RestGenerationContextImpl;
import org.jboss.forge.addon.javaee.rest.generator.impl.EntityBasedResourceGenerator;
import org.jboss.forge.addon.javaee.rest.ui.setup.RestSetupWizard;
import org.jboss.forge.addon.javaee.ui.AbstractJavaEECommand;
import org.jboss.forge.addon.parser.java.facets.JavaSourceFacet;
import org.jboss.forge.addon.parser.java.resources.JavaResource;
import org.jboss.forge.addon.projects.Project;
import org.jboss.forge.addon.projects.ProjectFactory;
import org.jboss.forge.addon.projects.Projects;
import org.jboss.forge.addon.resource.Resource;
import org.jboss.forge.addon.scaffold.spi.ResourceCollection;
import org.jboss.forge.addon.text.Inflector;
import org.jboss.forge.addon.ui.command.PrerequisiteCommandsProvider;
import org.jboss.forge.addon.ui.context.UIBuilder;
import org.jboss.forge.addon.ui.context.UIContext;
import org.jboss.forge.addon.ui.context.UIExecutionContext;
import org.jboss.forge.addon.ui.context.UINavigationContext;
import org.jboss.forge.addon.ui.context.UIValidationContext;
import org.jboss.forge.addon.ui.hints.InputType;
import org.jboss.forge.addon.ui.input.UIInput;
import org.jboss.forge.addon.ui.input.UISelectOne;
Expand All @@ -44,19 +40,17 @@
import org.jboss.forge.addon.ui.result.NavigationResult;
import org.jboss.forge.addon.ui.result.Result;
import org.jboss.forge.addon.ui.result.Results;
import org.jboss.forge.addon.ui.result.navigation.NavigationResultBuilder;
import org.jboss.forge.addon.ui.util.Categories;
import org.jboss.forge.addon.ui.util.Metadata;
import org.jboss.forge.addon.ui.wizard.UIWizardStep;
import org.jboss.forge.roaster.model.source.JavaClassSource;
import org.jboss.shrinkwrap.descriptor.api.persistence.PersistenceCommonDescriptor;
import org.jboss.shrinkwrap.descriptor.api.persistence.PersistenceUnitCommon;

/**
* Created by vineet on 3/25/14.
* A wizard step to perform creation of REST resources.
* It re-uses services from the Java EE addon to create JAX-RS based REST resources.
*/
public class JSONRestResourceFromEntityCommand extends AbstractJavaEECommand implements PrerequisiteCommandsProvider,
UIWizardStep
public class JSONRestResourceFromEntityCommand implements UIWizardStep
{

@Inject
Expand All @@ -81,14 +75,22 @@ public class JSONRestResourceFromEntityCommand extends AbstractJavaEECommand imp
@Inject
private Inflector inflector;

@Inject
private ProjectFactory projectFactory;

private List<JavaClassSource> targets;

@Override
public UICommandMetadata getMetadata(UIContext context)
{
return Metadata.from(super.getMetadata(context), getClass()).name("REST: Generate Endpoints From Entities")
.description("Generate REST endpoints from JPA entities")
.category(Categories.create(super.getMetadata(context).getCategory(), "JAX-RS"));
return Metadata.forCommand(getClass()).name("REST: Generate Endpoints From Entities")
.description("Generate REST endpoints from JPA entities");
}

@Override
public boolean isEnabled(UIContext context)
{
return true;
}

@SuppressWarnings({ "rawtypes", "unchecked" })
Expand Down Expand Up @@ -184,12 +186,6 @@ private Set<JavaClassSource> generateEndpoints(RestGenerationContextImpl generat
return classes;
}

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

private RestGenerationContextImpl createContextFor(final UIContext context)
{
RestGenerationContextImpl generationContext = new RestGenerationContextImpl();
Expand All @@ -202,31 +198,19 @@ private RestGenerationContextImpl createContextFor(final UIContext context)
}

@Override
public NavigationResult getPrerequisiteCommands(UIContext context)
public NavigationResult next(UINavigationContext context) throws Exception
{
NavigationResultBuilder builder = NavigationResultBuilder.create();
Project project = getSelectedProject(context);
if (project != null)
{
if (!project.hasFacet(RestFacet.class))
{
builder.add(RestSetupWizard.class);
}
if (!project.hasFacet(JPAFacet.class))
{
builder.add(JPASetupWizard.class);
}
if (!project.hasFacet(EJBFacet.class))
{
builder.add(EJBSetupWizard.class);
}
}
return builder.build();
return null;
}

@Override
public NavigationResult next(UINavigationContext context) throws Exception
public void validate(UIValidationContext context)
{
return null;
// Do nothing
}

private Project getSelectedProject(UIContext context)
{
return Projects.getSelectedProject(projectFactory, context);
}
}

0 comments on commit af0ebb4

Please sign in to comment.