Package org.jboss.forge.maven.projects.facets

Source Code of org.jboss.forge.maven.projects.facets.MavenMetadataFacet

/*
* Copyright 2012 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.maven.projects.facets;

import javax.enterprise.context.Dependent;

import org.apache.maven.model.Model;
import org.apache.maven.model.Parent;
import org.jboss.forge.dependencies.Dependency;
import org.jboss.forge.dependencies.builder.DependencyBuilder;
import org.jboss.forge.facets.AbstractFacet;
import org.jboss.forge.maven.projects.MavenFacet;
import org.jboss.forge.maven.projects.MavenFacetImpl;
import org.jboss.forge.projects.Project;
import org.jboss.forge.projects.facets.MetadataFacet;

/**
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
*/
@Dependent
public class MavenMetadataFacet extends AbstractFacet<Project> implements MetadataFacet
{
   @Override
   public String getProjectName()
   {
      return ((MavenFacetImpl) getOrigin().getFacet(MavenFacet.class)).getPartialProjectBuildingResult().getProject()
               .getArtifactId();
   }

   @Override
   public String getProjectVersion()
   {
      return ((MavenFacetImpl) getOrigin().getFacet(MavenFacet.class)).getPartialProjectBuildingResult().getProject()
               .getVersion();
   }

   @Override
   public void setOrigin(final Project project)
   {
      super.setOrigin(project);
   }

   @Override
   public boolean install()
   {
      return true;
   }

   @Override
   public boolean isInstalled()
   {
      return getOrigin().hasFacet(MavenFacet.class);
   }

   @Override
   public void setProjectName(final String name)
   {
      MavenFacet mvn = getOrigin().getFacet(MavenFacet.class);
      Model pom = mvn.getPOM();
      pom.setArtifactId(name);
      mvn.setPOM(pom);
   }

   @Override
   public void setTopLevelPackage(final String groupId)
   {
      MavenFacet mvn = getOrigin().getFacet(MavenFacet.class);
      Model pom = mvn.getPOM();
      pom.setGroupId(groupId);
      mvn.setPOM(pom);
   }

   @Override
   public String getTopLevelPackage()
   {
      String groupId = getOrigin().getFacet(MavenFacet.class).getPOM().getGroupId();

      // If groupId is null, try to grab the parent's groupId
      if (groupId == null)
      {
         Parent parent = getOrigin().getFacet(MavenFacet.class).getPOM().getParent();
         if (parent != null)
         {
            groupId = parent.getGroupId();
         }
      }
      return groupId;
   }

   @Override
   public Dependency getOutputDependency()
   {
      return DependencyBuilder.create().setGroupId(getTopLevelPackage()).setArtifactId(getProjectName())
               .setVersion(getProjectVersion());
   }
}
TOP

Related Classes of org.jboss.forge.maven.projects.facets.MavenMetadataFacet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.