Skip to content

Commit

Permalink
Split GradleModel into GradleDirect/EffectiveModel
Browse files Browse the repository at this point in the history
  • Loading branch information
adam-wyluda committed Sep 8, 2013
1 parent d8da373 commit 8f78ad0
Show file tree
Hide file tree
Showing 15 changed files with 134 additions and 99 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
*/
package org.jboss.forge.addon.gradle.projects;

import org.jboss.forge.addon.gradle.projects.model.GradleModel;
import org.jboss.forge.addon.gradle.projects.model.GradleEffectiveModel;
import org.jboss.forge.addon.gradle.projects.model.GradleProfile;
import org.jboss.forge.addon.projects.ProjectFacet;
import org.jboss.forge.addon.resource.FileResource;
Expand Down Expand Up @@ -34,9 +34,9 @@ public interface GradleFacet extends ProjectFacet
*/
boolean executeTask(String task, String profile, String... arguments);

GradleModel getModel();
GradleEffectiveModel getModel();

void setModel(GradleModel model);
void setModel(GradleEffectiveModel model);

FileResource<?> getBuildScriptResource();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,20 +14,8 @@
/**
* @author Adam Wyłuda
*/
public interface GradleModel
public interface GradleDirectModel
{
// ---------- Script

String getScript();

void setScript(String script);

// ---------- Project paths

String getProjectPath();

String getRootProjectPath();

// ---------- Group

String getGroup();
Expand All @@ -51,43 +39,33 @@ public interface GradleModel
String getPackaging();

void setPackaging(String packaging);

// ---------- Archive path/name

String getArchivePath();

// ----------- Archive name

String getArchiveName();

void setArchiveName(String archiveName);

// ---------- Tasks

List<GradleTask> getTasks();

boolean hasTask(String name);

void addTask(GradleTaskBuilder builder);

// ---------- Dependencies

List<GradleDependency> getEffectiveDependencies();

boolean hasEffectiveDependency(GradleDependencyBuilder builder);
// ---------- Dependencies

void addDependency(GradleDependencyBuilder builder);

void removeDependency(GradleDependencyBuilder builder) throws UnremovableElementException;

// ---------- Managed dependencies

List<GradleDependency> getEffectiveManagedDependencies();

boolean hasEffectiveManagedDependency(GradleDependencyBuilder builder);
// ---------- Managed dependencies

void addManagedDependency(GradleDependencyBuilder builder);

void removeManagedDependency(GradleDependencyBuilder builder) throws UnremovableElementException;

// ---------- Profiles

List<GradleProfile> getProfiles();
Expand All @@ -97,7 +75,7 @@ public interface GradleModel
void addProfile(String name);

void removeProfile(String name);

// ---------- Plugins

List<GradlePlugin> getPlugins();
Expand All @@ -107,7 +85,7 @@ public interface GradleModel
void addPlugin(String name);

void removePlugin(String name) throws UnremovableElementException;

// ---------- Repositories

List<GradleRepository> getRepositories();
Expand All @@ -117,13 +95,9 @@ public interface GradleModel
void addRepository(String url);

void removeRepository(String url) throws UnremovableElementException;

// --------- Source sets

List<GradleSourceSet> getSourceSets();

// ---------- Properties

Map<String, String> getProperties();

boolean hasProperty(String key);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
/*
* Copyright 2013 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.gradle.projects.model;

import java.util.List;

/**
* @author Adam Wyłuda
*/
public interface GradleEffectiveModel extends GradleDirectModel
{
// ---------- Script

String getScript();

void setScript(String script);

// ---------- Project paths

String getProjectPath();

String getRootProjectPath();

String getArchivePath();

// ---------- Dependencies

List<GradleDependency> getEffectiveDependencies();

boolean hasEffectiveDependency(GradleDependencyBuilder builder);

// ---------- Managed dependencies

List<GradleDependency> getEffectiveManagedDependencies();

boolean hasEffectiveManagedDependency(GradleDependencyBuilder builder);

// ---------- Profiles

// TODO Effective profiles

// ---------- Plugins

// TODO Effective plugins

// ---------- Repositories

// TODO Effective repositories

// --------- Source sets

List<GradleSourceSet> getEffectiveSourceSets();

// ---------- Properties

// TODO Effective properties
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ public interface GradleProfile
{
String getName();

GradleModel getModel();
GradleEffectiveModel getModel();

void setModel(GradleModel model);
void setModel(GradleEffectiveModel model);

FileResource<?> getProfileScriptResource();

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

import org.jboss.forge.addon.facets.AbstractFacet;
import org.jboss.forge.addon.gradle.parser.GradleSourceUtil;
import org.jboss.forge.addon.gradle.projects.model.GradleModel;
import org.jboss.forge.addon.gradle.projects.model.GradleEffectiveModel;
import org.jboss.forge.addon.gradle.projects.model.GradleModelImpl;
import org.jboss.forge.addon.gradle.projects.model.GradleModelLoader;
import org.jboss.forge.addon.gradle.projects.model.GradleProfile;
Expand All @@ -39,7 +39,7 @@ public class GradleFacetImpl extends AbstractFacet<Project> implements GradleFac
@Inject
private ResourceFactory resourceFactory;

private GradleModel model;
private GradleEffectiveModel model;

@Override
public boolean install()
Expand Down Expand Up @@ -78,7 +78,7 @@ public boolean executeTask(String task, String profile, String... arguments)
}

@Override
public GradleModel getModel()
public GradleEffectiveModel getModel()
{
if (this.model != null)
{
Expand All @@ -90,7 +90,7 @@ public GradleModel getModel()
}

@Override
public void setModel(GradleModel newModel)
public void setModel(GradleEffectiveModel newModel)
{
getBuildScriptResource().setContents(newModel.getScript());

Expand Down Expand Up @@ -177,7 +177,7 @@ private void loadModel()

forgeOutputfile.delete();

GradleModel loadedModel = GradleModelLoader.fromXML(forgeOutput);
GradleEffectiveModel loadedModel = GradleModelLoader.fromXML(forgeOutput);
loadedModel.setScript(getBuildScriptResource().getContents());

// Set resources for profiles
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
import org.jboss.forge.addon.gradle.projects.model.GradleDependency;
import org.jboss.forge.addon.gradle.projects.model.GradleDependencyBuilder;
import org.jboss.forge.addon.gradle.projects.model.GradleDependencyConfiguration;
import org.jboss.forge.addon.gradle.projects.model.GradleModel;
import org.jboss.forge.addon.gradle.projects.model.GradleEffectiveModel;
import org.jboss.forge.addon.gradle.projects.model.GradleRepository;
import org.jboss.forge.addon.projects.Project;
import org.jboss.forge.addon.projects.facets.DependencyFacet;
Expand Down Expand Up @@ -64,7 +64,7 @@ public boolean isInstalled()
@Override
public void addDirectDependency(Dependency dep)
{
GradleModel model = getGradleFacet().getModel();
GradleEffectiveModel model = getGradleFacet().getModel();
model.addDependency(forgeDepToGradleDepBuilder(dep));
getGradleFacet().setModel(model);
}
Expand All @@ -81,15 +81,15 @@ public void addManagedDependency(Dependency dep)
@Override
public void addDirectManagedDependency(Dependency dep)
{
GradleModel model = getGradleFacet().getModel();
GradleEffectiveModel model = getGradleFacet().getModel();
model.addManagedDependency(forgeDepToGradleDepBuilder(dep));
getGradleFacet().setModel(model);
}

@Override
public void addRepository(String name, String url)
{
GradleModel model = getGradleFacet().getModel();
GradleEffectiveModel model = getGradleFacet().getModel();
model.addRepository(url);
getGradleFacet().setModel(model);
}
Expand Down Expand Up @@ -210,7 +210,7 @@ public void removeDependency(Dependency dependency)
{
try
{
GradleModel model = getGradleFacet().getModel();
GradleEffectiveModel model = getGradleFacet().getModel();
model.removeDependency(forgeDepToGradleDepBuilder(dependency));
getGradleFacet().setModel(model);
}
Expand All @@ -226,7 +226,7 @@ public void removeManagedDependency(Dependency managedDependency)
{
try
{
GradleModel model = getGradleFacet().getModel();
GradleEffectiveModel model = getGradleFacet().getModel();
model.removeManagedDependency(forgeDepToGradleDepBuilder(managedDependency));
getGradleFacet().setModel(model);
}
Expand All @@ -243,7 +243,7 @@ public DependencyRepository removeRepository(String url)
DependencyRepository repo = null;
try
{
GradleModel model = getGradleFacet().getModel();
GradleEffectiveModel model = getGradleFacet().getModel();
repo = findRepositoryByUrl(getRepositories(), url);
model.removeRepository(url);
getGradleFacet().setModel(model);
Expand Down Expand Up @@ -285,7 +285,7 @@ public List<Coordinate> resolveAvailableVersions(DependencyQuery query)
@Override
public Dependency resolveProperties(Dependency dependency)
{
GradleModel model = getGradleFacet().getModel();
GradleEffectiveModel model = getGradleFacet().getModel();
Map<String, String> props = model.getProperties();
DependencyBuilder builder = DependencyBuilder.create(dependency);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import org.jboss.forge.addon.facets.constraints.FacetConstraint;
import org.jboss.forge.addon.facets.constraints.FacetConstraints;
import org.jboss.forge.addon.gradle.projects.GradleFacet;
import org.jboss.forge.addon.gradle.projects.model.GradleModel;
import org.jboss.forge.addon.gradle.projects.model.GradleEffectiveModel;
import org.jboss.forge.addon.gradle.projects.model.GradlePluginType;
import org.jboss.forge.addon.gradle.projects.model.GradleSourceDirectory;
import org.jboss.forge.addon.gradle.projects.model.GradleSourceSet;
Expand Down Expand Up @@ -48,7 +48,7 @@ public boolean install()
folder.mkdirs();
}

GradleModel model = getFaceted().getFacet(GradleFacet.class).getModel();
GradleEffectiveModel model = getFaceted().getFacet(GradleFacet.class).getModel();
if (!model.hasPlugin(GradlePluginType.JAVA.getClazz()))
{
model.addPlugin(GradlePluginType.JAVA.getShortName());
Expand Down Expand Up @@ -111,9 +111,9 @@ public List<DirectoryResource> getSourceFolders()
{
List<DirectoryResource> resources = Lists.newArrayList();
GradleFacet gradleFacet = getFaceted().getFacet(GradleFacet.class);
GradleModel model = gradleFacet.getModel();
GradleEffectiveModel model = gradleFacet.getModel();

for (GradleSourceSet sourceSet : model.getSourceSets())
for (GradleSourceSet sourceSet : model.getEffectiveSourceSets())
{
for (GradleSourceDirectory sourceDir : sourceSet.getJavaDirectories())
{
Expand All @@ -127,17 +127,17 @@ public List<DirectoryResource> getSourceFolders()
@Override
public DirectoryResource getSourceFolder()
{
GradleModel model = getFaceted().getFacet(GradleFacet.class).getModel();
GradleSourceDirectory dir = GradleResourceUtil.findSourceSetNamed(model.getSourceSets(), "main")
GradleEffectiveModel model = getFaceted().getFacet(GradleFacet.class).getModel();
GradleSourceDirectory dir = GradleResourceUtil.findSourceSetNamed(model.getEffectiveSourceSets(), "main")
.getJavaDirectories().get(0);
return directoryResourceFromRelativePath(dir.getPath());
}

@Override
public DirectoryResource getTestSourceFolder()
{
GradleModel model = getFaceted().getFacet(GradleFacet.class).getModel();
GradleSourceDirectory dir = GradleResourceUtil.findSourceSetNamed(model.getSourceSets(), "test")
GradleEffectiveModel model = getFaceted().getFacet(GradleFacet.class).getModel();
GradleSourceDirectory dir = GradleResourceUtil.findSourceSetNamed(model.getEffectiveSourceSets(), "test")
.getJavaDirectories().get(0);
return directoryResourceFromRelativePath(dir.getPath());
}
Expand Down Expand Up @@ -237,10 +237,10 @@ private List<DirectoryResource> getJavaSourcesFromSourceSet(String sourceSetName
{
List<DirectoryResource> resources = Lists.newArrayList();
GradleFacet gradleFacet = getFaceted().getFacet(GradleFacet.class);
GradleModel model = gradleFacet.getModel();
GradleEffectiveModel model = gradleFacet.getModel();

for (GradleSourceDirectory sourceDir : GradleResourceUtil
.findSourceSetNamed(model.getSourceSets(), sourceSetName)
.findSourceSetNamed(model.getEffectiveSourceSets(), sourceSetName)
.getJavaDirectories())
{
resources.add(directoryResourceFromRelativePath(sourceDir.getPath()));
Expand Down
Loading

0 comments on commit 8f78ad0

Please sign in to comment.