Skip to content

Commit

Permalink
FORGE-2316: Refactoring value choice filtering
Browse files Browse the repository at this point in the history
  • Loading branch information
gastaldi committed Jan 12, 2016
1 parent 927851c commit ddd209c
Show file tree
Hide file tree
Showing 15 changed files with 77 additions and 89 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@

package org.jboss.forge.addon.javaee.cdi.ui;

import java.util.List;
import java.util.Set;

import javax.inject.Inject;

import org.jboss.forge.addon.facets.FacetFactory;
Expand All @@ -19,7 +16,6 @@
import org.jboss.forge.addon.projects.Project;
import org.jboss.forge.addon.projects.facets.DependencyFacet;
import org.jboss.forge.addon.projects.facets.ResourcesFacet;
import org.jboss.forge.addon.projects.stacks.StackFacet;
import org.jboss.forge.addon.projects.stacks.annotations.StackConstraint;
import org.jboss.forge.addon.ui.context.UIBuilder;
import org.jboss.forge.addon.ui.context.UIContext;
Expand All @@ -30,7 +26,6 @@
import org.jboss.forge.addon.ui.result.Results;
import org.jboss.forge.addon.ui.util.Categories;
import org.jboss.forge.addon.ui.util.Metadata;
import org.jboss.forge.furnace.util.Lists;

/**
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
Expand All @@ -55,28 +50,11 @@ public Metadata getMetadata(UIContext context)
@WithAttributes(required = true, label = "CDI Version", defaultValue = "1.0")
private UISelectOne<CDIFacet<?>> cdiVersion;

@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public void initializeUI(UIBuilder builder) throws Exception
{
Project project = getSelectedProject(builder);
if (project.hasFacet(StackFacet.class))
{
// Remove facets that do not belong to the current stack
StackFacet facet = project.getFacet(StackFacet.class);
Iterable valueChoices = cdiVersion.getValueChoices();
Set newChoices = facet.getStack().filter(CDIFacet.class, valueChoices);
cdiVersion.setValueChoices(newChoices);
cdiVersion.setDefaultValue((CDIFacet<?>) null);
}
// Filtering only supported facets
List<CDIFacet<?>> valueChoices = Lists.toList(cdiVersion.getValueChoices());
int size = valueChoices.size();
if (size == 1)
{
cdiVersion.setDefaultValue(valueChoices.get(0));
}
else if (size > 1)
if (filterValueChoicesFromStack(project, cdiVersion))
{
builder.add(cdiVersion);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,14 @@
import javax.ejb.TransactionAttributeType;
import javax.inject.Inject;

import org.jboss.forge.addon.javaee.ejb.EJBFacet;
import org.jboss.forge.addon.javaee.ejb.EJBOperations;
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.parser.java.resources.JavaResourceVisitor;
import org.jboss.forge.addon.projects.Project;
import org.jboss.forge.addon.projects.stacks.annotations.StackConstraint;
import org.jboss.forge.addon.resource.FileResource;
import org.jboss.forge.addon.resource.visit.VisitContext;
import org.jboss.forge.addon.ui.context.UIBuilder;
Expand All @@ -39,6 +41,7 @@
import org.jboss.forge.roaster.model.source.AnnotationSource;
import org.jboss.forge.roaster.model.source.JavaClassSource;

@StackConstraint(EJBFacet.class)
public class EJBSetClassTransactionAttributeCommand extends AbstractJavaEECommand
{
@Inject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,15 @@
import javax.inject.Inject;

import org.jboss.forge.addon.convert.Converter;
import org.jboss.forge.addon.javaee.ejb.EJBFacet;
import org.jboss.forge.addon.javaee.ejb.EJBOperations;
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.JavaMethodResource;
import org.jboss.forge.addon.parser.java.resources.JavaResource;
import org.jboss.forge.addon.parser.java.resources.JavaResourceVisitor;
import org.jboss.forge.addon.projects.Project;
import org.jboss.forge.addon.projects.stacks.annotations.StackConstraint;
import org.jboss.forge.addon.resource.FileResource;
import org.jboss.forge.addon.resource.Resource;
import org.jboss.forge.addon.resource.visit.VisitContext;
Expand All @@ -47,6 +49,7 @@
import org.jboss.forge.roaster.model.source.JavaSource;
import org.jboss.forge.roaster.model.source.MethodSource;

@StackConstraint(EJBFacet.class)
public class EJBSetMethodTransactionAttributeCommand extends AbstractJavaEECommand
{
@Inject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,11 @@ public Metadata getMetadata(UIContext context)
@Override
public void initializeUI(UIBuilder builder) throws Exception
{
builder.add(ejbVersion);
Project project = getSelectedProject(builder);
if (filterValueChoicesFromStack(project, ejbVersion))
{
builder.add(ejbVersion);
}
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
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.stacks.annotations.StackConstraint;
import org.jboss.forge.addon.resource.DirectoryResource;
import org.jboss.forge.addon.resource.FileResource;
import org.jboss.forge.addon.ui.context.UIBuilder;
Expand All @@ -42,6 +43,7 @@
/**
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*/
@StackConstraint(EJBFacet.class)
public class NewEJBCommand extends AbstractJavaEECommand implements UIWizard
{
@Inject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,14 @@
import javax.inject.Inject;

import org.jboss.forge.addon.facets.FacetFactory;
import org.jboss.forge.addon.javaee.ejb.EJBFacet;
import org.jboss.forge.addon.javaee.ejb.EJBOperations;
import org.jboss.forge.addon.javaee.ejb.JMSDestinationType;
import org.jboss.forge.addon.javaee.jms.JMSFacet;
import org.jboss.forge.addon.javaee.ui.AbstractJavaEECommand;
import org.jboss.forge.addon.parser.java.resources.JavaResource;
import org.jboss.forge.addon.projects.Project;
import org.jboss.forge.addon.projects.stacks.annotations.StackConstraint;
import org.jboss.forge.addon.ui.context.UIBuilder;
import org.jboss.forge.addon.ui.context.UIContext;
import org.jboss.forge.addon.ui.context.UIExecutionContext;
Expand All @@ -39,6 +41,7 @@
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*
*/
@StackConstraint(EJBFacet.class)
public class NewMDBSetupStep extends AbstractJavaEECommand implements UIWizardStep
{

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import org.jboss.forge.addon.parser.java.ui.AbstractJavaSourceCommand;
import org.jboss.forge.addon.projects.Project;
import org.jboss.forge.addon.projects.ProjectFactory;
import org.jboss.forge.addon.projects.stacks.annotations.StackConstraint;
import org.jboss.forge.addon.ui.command.PrerequisiteCommandsProvider;
import org.jboss.forge.addon.ui.context.UIContext;
import org.jboss.forge.addon.ui.result.NavigationResult;
Expand All @@ -29,6 +30,7 @@
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*
*/
@StackConstraint(FacesFacet.class)
public abstract class AbstractFacesCommand<T extends JavaSource<?>> extends AbstractJavaSourceCommand<T>
implements PrerequisiteCommandsProvider
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import org.jboss.forge.addon.javaee.ui.AbstractJavaEECommand;
import org.jboss.forge.addon.parser.java.resources.JavaResource;
import org.jboss.forge.addon.projects.Project;
import org.jboss.forge.addon.projects.stacks.annotations.StackConstraint;
import org.jboss.forge.addon.ui.command.PrerequisiteCommandsProvider;
import org.jboss.forge.addon.ui.context.UIBuilder;
import org.jboss.forge.addon.ui.context.UIContext;
Expand All @@ -37,6 +38,7 @@
/**
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*/
@StackConstraint(FacesFacet.class)
public class FacesNewValidatorMethodCommand extends AbstractJavaEECommand implements PrerequisiteCommandsProvider
{

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import org.jboss.forge.addon.javaee.servlet.ServletFacet;
import org.jboss.forge.addon.javaee.ui.AbstractJavaEECommand;
import org.jboss.forge.addon.projects.Project;
import org.jboss.forge.addon.projects.stacks.annotations.StackConstraint;
import org.jboss.forge.addon.ui.command.PrerequisiteCommandsProvider;
import org.jboss.forge.addon.ui.context.UIBuilder;
import org.jboss.forge.addon.ui.context.UIContext;
Expand All @@ -32,6 +33,7 @@
*
* @author <a href="ggastald@redhat.com">George Gastaldi</a>
*/
@StackConstraint(FacesFacet.class)
public class FacesSetProjectStageCommand extends AbstractJavaEECommand implements PrerequisiteCommandsProvider
{

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import org.jboss.forge.addon.parser.java.facets.JavaSourceFacet;
import org.jboss.forge.addon.projects.Project;
import org.jboss.forge.addon.projects.facets.DependencyFacet;
import org.jboss.forge.addon.projects.stacks.annotations.StackConstraint;
import org.jboss.forge.addon.ui.context.UIBuilder;
import org.jboss.forge.addon.ui.context.UIContext;
import org.jboss.forge.addon.ui.context.UIExecutionContext;
Expand All @@ -34,6 +35,7 @@
*/
@SuppressWarnings("rawtypes")
@FacetConstraint({ DependencyFacet.class, JavaSourceFacet.class })
@StackConstraint(FacesFacet.class)
public class FacesSetupWizardImpl extends AbstractJavaEECommand implements FacesSetupWizard
{

Expand All @@ -55,7 +57,11 @@ public Metadata getMetadata(UIContext context)
@Override
public void initializeUI(UIBuilder builder) throws Exception
{
builder.add(facesVersion);
Project project = getSelectedProject(builder);
if (filterValueChoicesFromStack(project, facesVersion))
{
builder.add(facesVersion);
}
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
package org.jboss.forge.addon.javaee.jpa.ui.setup;

import java.util.Map;
import java.util.Set;
import java.util.TreeSet;

import javax.inject.Inject;
Expand All @@ -24,8 +23,6 @@
import org.jboss.forge.addon.javaee.ui.AbstractJavaEECommand;
import org.jboss.forge.addon.parser.java.facets.JavaSourceFacet;
import org.jboss.forge.addon.projects.Project;
import org.jboss.forge.addon.projects.stacks.Stack;
import org.jboss.forge.addon.projects.stacks.StackFacet;
import org.jboss.forge.addon.projects.stacks.annotations.StackConstraint;
import org.jboss.forge.addon.ui.context.UIBuilder;
import org.jboss.forge.addon.ui.context.UIContext;
Expand Down Expand Up @@ -95,7 +92,6 @@ public void initializeUI(UIBuilder builder) throws Exception
builder.add(container).add(provider).add(configureMetadata);
}

@SuppressWarnings({ "rawtypes", "unchecked" })
private boolean initJpaVersion(UIContext context)
{
final Project project = getSelectedProject(context);
Expand All @@ -107,25 +103,7 @@ private boolean initJpaVersion(UIContext context)
}
else
{
// Filtering only supported facets
if (project.hasFacet(StackFacet.class))
{
StackFacet stackFacet = project.getFacet(StackFacet.class);
Stack stack = stackFacet.getStack();
Iterable valueChoices = jpaVersion.getValueChoices();
Set filter = stack.filter(JPAFacet.class, valueChoices);
jpaVersion.setValueChoices(filter);
if (filter.size() == 1)
{
jpaVersion.setDefaultValue((JPAFacet<?>) filter.iterator().next());
return false;
}
else
{
jpaVersion.setDefaultValue((JPAFacet<?>) null);
}
}
return true;
return filterValueChoicesFromStack(project, jpaVersion);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,20 @@

package org.jboss.forge.addon.javaee.rest.ui.setup;

import java.util.List;
import java.util.Set;
import java.util.concurrent.Callable;

import javax.inject.Inject;

import org.jboss.forge.addon.convert.Converter;
import org.jboss.forge.addon.facets.FacetFactory;
import org.jboss.forge.addon.facets.constraints.FacetConstraint;
import org.jboss.forge.addon.javaee.cdi.CDIFacet;
import org.jboss.forge.addon.javaee.rest.RestFacet;
import org.jboss.forge.addon.javaee.rest.config.RestConfigurationStrategy;
import org.jboss.forge.addon.javaee.rest.config.RestConfigurationStrategyFactory;
import org.jboss.forge.addon.javaee.rest.ui.RestSetupWizard;
import org.jboss.forge.addon.javaee.ui.AbstractJavaEECommand;
import org.jboss.forge.addon.parser.java.facets.JavaSourceFacet;
import org.jboss.forge.addon.projects.Project;
import org.jboss.forge.addon.projects.stacks.StackFacet;
import org.jboss.forge.addon.projects.stacks.annotations.StackConstraint;
import org.jboss.forge.addon.ui.context.UIBuilder;
import org.jboss.forge.addon.ui.context.UIContext;
Expand All @@ -37,7 +33,6 @@
import org.jboss.forge.addon.ui.result.Results;
import org.jboss.forge.addon.ui.util.Categories;
import org.jboss.forge.addon.ui.util.Metadata;
import org.jboss.forge.furnace.util.Lists;
import org.jboss.forge.roaster.Roaster;
import org.jboss.forge.roaster.model.source.JavaClassSource;

Expand Down Expand Up @@ -81,28 +76,11 @@ public Metadata getMetadata(UIContext context)
@WithAttributes(label = "Class Name", defaultValue = "RestApplication")
private UIInput<String> className;

@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public void initializeUI(UIBuilder builder) throws Exception
{
Project project = getSelectedProject(builder);
if (project.hasFacet(StackFacet.class))
{
// Remove facets that do not belong to the current stack
StackFacet facet = project.getFacet(StackFacet.class);
Iterable valueChoices = jaxrsVersion.getValueChoices();
Set newChoices = facet.getStack().filter(CDIFacet.class, valueChoices);
jaxrsVersion.setValueChoices(newChoices);
jaxrsVersion.setDefaultValue((RestFacet) null);
}
// Filtering only supported facets
List<RestFacet> valueChoices = Lists.toList(jaxrsVersion.getValueChoices());
int size = valueChoices.size();
if (size == 1)
{
jaxrsVersion.setDefaultValue(valueChoices.get(0));
}
else if (size > 1)
if (filterValueChoicesFromStack(project, jaxrsVersion))
{
builder.add(jaxrsVersion);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,11 @@ public Metadata getMetadata(UIContext context)
@Override
public void initializeUI(UIBuilder builder) throws Exception
{
builder.add(servletVersion);
Project project = getSelectedProject(builder);
if (filterValueChoicesFromStack(project, servletVersion))
{
builder.add(servletVersion);
}
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

import javax.inject.Inject;

import org.jboss.forge.addon.convert.Converter;
import org.jboss.forge.addon.javaee.ui.AbstractJavaEECommand;
import org.jboss.forge.addon.javaee.validation.ValidationFacet;
import org.jboss.forge.addon.javaee.validation.ValidationOperations;
Expand Down Expand Up @@ -85,14 +84,7 @@ public void initializeUI(UIBuilder builder) throws Exception
constraintValidatorFactory.addValidator(new ClassInputValidator(constraintValidatorFactory));

providedScope.setDefaultValue(true);
Callable<Boolean> dependencyNotProvided = new Callable<Boolean>()
{
@Override
public Boolean call() throws Exception
{
return !providedScope.getValue();
}
};
Callable<Boolean> dependencyNotProvided = () -> !providedScope.getValue();

messageInterpolator.setEnabled(dependencyNotProvided);
traversableResolver.setEnabled(dependencyNotProvided);
Expand Down Expand Up @@ -122,14 +114,7 @@ public Result execute(UIExecutionContext context) throws Exception

private void initProviders()
{
providers.setItemLabelConverter(new Converter<ValidationProvider, String>()
{
@Override
public String convert(ValidationProvider source)
{
return source != null ? source.getName() : null;
}
});
providers.setItemLabelConverter((source) -> source.getName());
providers.setDefaultValue(defaultProvider);
}

Expand Down

0 comments on commit ddd209c

Please sign in to comment.