class Module {

    public String getModuleName() {
        if (pom != null && pom.getName() != null) {
            return pom.getName();
        } else if (pom != null && pom.getGav() != null && pom.getGav().getArtifactId() != null && !pom.getGav().getArtifactId().trim().isEmpty()) {
            return pom.getGav().getArtifactId();
        } else {
            return getRootPath().getFileName();
        }
    }

    public  Module();
    public  Module(final Path rootPath,
                  final Path pomXMLPath,
                  final POM pom);
    public  Module(final Path rootPath,
                  final Path pomXMLPath,
                  final POM pom,
                  final Collection<String> modules);
    public  Module(Path rootPath,
                  Path pomXMLPath);

}