All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.walkmod.maven.providers.MavenModule Maven / Gradle / Ivy

Go to download

Walkmod plugin to resolve a maven user classpath and provide it to code transformations

The newest version!
package org.walkmod.maven.providers;

import java.io.File;

import org.apache.maven.model.Model;
import org.walkmod.conf.ConfigurationException;

public class MavenModule {

   private String name;
   private Model mavenModel;
   private File directory;
   private MavenProject loader;
   private boolean submodulesProcessed = false;

   public MavenModule(String name, Model mavenModel, File directory, MavenProject loader) {
      this.name = name;
      this.mavenModel = mavenModel;
      this.directory = directory;
      this.loader = loader;
   }

   public String getName() {
      return name;
   }

   public String getArtifactId() {
      return mavenModel.getArtifactId();
   }

   public String getGroupId() {
      if (mavenModel.getGroupId() == null) {
         return mavenModel.getParent().getGroupId();
      }
      return mavenModel.getGroupId();
   }

   public File getDirectory() {
      return directory;
   }

   public String name() {
      return name;
   }

   public void compile() throws Exception {
      if (!loader.isCompiled(this)) {
         loader.build();
         loader.markAsCompiled(this);
      }

   }

   public void loadSubmodules() throws ConfigurationException {
      if (!submodulesProcessed) {
         loader.lookUpSubmodules();
      }
      submodulesProcessed = true;
   }

   @Override
   public boolean equals(Object o) {
      if (o instanceof MavenModule) {

         return getGroupId().equals(((MavenModule) o).getGroupId())
               && getArtifactId().equals(((MavenModule) o).getArtifactId());
      }
      return false;
   }

   @Override
   public int hashCode() {

      return getArtifactId().hashCode()+getGroupId().hashCode();
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy