/* * Copyright 2016 Red Hat, Inc. and/or its affiliates. * * Licensed under the Eclipse Public License version 1.0, available at * http://www.eclipse.org/legal/epl-v10.html */ package org.jboss.forge.addon.thorntail.ui; import org.jboss.forge.addon.facets.constraints.FacetConstraint; import org.jboss.forge.addon.maven.projects.MavenFacet; import org.jboss.forge.addon.projects.facets.PackagingFacet; import org.jboss.forge.addon.thorntail.facet.ThorntailFacet; import org.jboss.forge.addon.ui.UIProvider; import org.jboss.forge.addon.ui.context.UIContext; import org.jboss.forge.addon.ui.context.UIExecutionContext; import org.jboss.forge.addon.ui.metadata.UICommandMetadata; import org.jboss.forge.addon.ui.output.UIOutput; import org.jboss.forge.addon.ui.result.Result; 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.wildfly.swarm.fractions.FractionDescriptor; import java.io.PrintStream; /** * @author <a href="mailto:[email protected]">George Gastaldi</a> */ @FacetConstraint({ThorntailFacet.class, MavenFacet.class, PackagingFacet.class}) public class ListFractionsCommand extends AbstractThorntailCommand { @Override public UICommandMetadata getMetadata(UIContext context) { return Metadata.from(super.getMetadata(context), getClass()).name("Thorntail: List Fractions") .description("List all the available fractions") .category(Categories.create("Thorntail")); } @Override public Result execute(UIExecutionContext executionContext) { UIProvider provider = executionContext.getUIContext().getProvider(); UIOutput output = provider.getOutput(); PrintStream out = output.out(); for (FractionDescriptor fraction : ThorntailFacet.getAllFractionDescriptors()) { if (!fraction.isInternal()) { String msg = String.format("%s: %s (%s)", fraction.getArtifactId(), fraction.getName(), fraction.getDescription()); out.println(msg); } } return Results.success(); } @Override protected boolean isProjectRequired() { return false; } }