Skip to content

Commit

Permalink
Partially implement GradleModel (not supported - setting properties,
Browse files Browse the repository at this point in the history
archiveName and packaging)
  • Loading branch information
adam-wyluda committed Aug 5, 2013
1 parent 23bda23 commit 6f1e18f
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ public interface GradleModel
*/
void applyPlugin(String name);

void createGradleRepository(GradleRepositoryBuilder builder);
void createRepository(GradleRepositoryBuilder builder);

void removeDependency(GradleDependencyBuilder builder) throws UnremovableElementException;

Expand All @@ -111,5 +111,5 @@ public interface GradleModel

void removeAppliedPlugin(String name) throws UnremovableElementException;

void removeGradleRepository(GradleRepositoryBuilder builder) throws UnremovableElementException;
void removeRepository(GradleRepositoryBuilder builder) throws UnremovableElementException;
}
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ public GradleModel getModel()
public void setModel(GradleModel model)
{
// TODO Update script contents
// TODO Also update profile contents (and create if necessary)
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ public static String removePlugin(String source, String clazz)

public static String insertRepository(String source, String name, String url)
{
// TODO Repository name?
String repoString = String.format("url '%s'", url);
source = SourceUtil.insertIntoInvocationAtPath(source, repoString, "repositories", "maven");
return source;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,25 @@ public class GradleModelImpl implements GradleModel
private List<GradleRepository> repositories;
private List<GradleSourceSet> sourceSets;

/**
* Creates empty Gradle model.
*/
public GradleModelImpl()
{
this.script = "";
this.name = "";
this.version = "";
this.packaging = "";
this.archivePath = "";
this.tasks = Lists.newArrayList();
this.dependencies = Lists.newArrayList();
this.managedDependencies = Lists.newArrayList();
this.profiles = Lists.newArrayList();
this.plugins = Lists.newArrayList();
this.repositories = Lists.newArrayList();
this.sourceSets = Lists.newArrayList();
}

public GradleModelImpl(String script, String projectName, String version,
String packaging, String archivePath, List<GradleTask> tasks,
List<GradleDependency> dependencies, List<GradleDependency> managedDependencies,
Expand All @@ -51,9 +70,9 @@ public GradleModelImpl(String script, String projectName, String version,
this.repositories = repositories;
this.sourceSets = sourceSets;
}

/**
* Performs copy of the given instance.
* Performs copy of the given instance.
*/
public GradleModelImpl(GradleModel original)
{
Expand All @@ -78,7 +97,7 @@ public GradleModelImpl(GradleModel original)
this.repositories = Lists.newArrayList(original.getRepositories());
this.sourceSets = Lists.newArrayList(original.getSourceSets());
}

@Override
public String getScript()
{
Expand Down Expand Up @@ -238,39 +257,42 @@ public boolean hasRepository(String url)
@Override
public void setGroup(String group) throws UnremovableElementException
{

// TODO Set properties by GradleSourceUtil
}

@Override
public void setName(String name) throws UnremovableElementException
{
// TODO Auto-generated method stub
// TODO Set properties by GradleSourceUtil

// For this case we also need to add Gradle project path to forgeOutput
// and path to settings.gradle file
// (this is necessary to modify project name in Gradle)
}

@Override
public void setVersion(String version) throws UnremovableElementException
{
// TODO Auto-generated method stub
// TODO Set properties by GradleSourceUtil
}

@Override
public void setPackaging(String packaging)
{
// TODO Auto-generated method stub

// TODO Add packaging info to GradlePluginType to figure out which plugin must be applied to set given packaging
}

@Override
public void setArchiveName(String archiveName)
{
// TODO Auto-generated method stub

// TODO Set archive name by GradleSourceUtil
}

@Override
public void createTask(GradleTaskBuilder builder)
{
// TODO Auto-generated method stub
script = GradleSourceUtil.insertTask(script,
builder.getName(), builder.getDependsOn(), builder.getType(), builder.getCode());
}

@Override
Expand All @@ -283,54 +305,66 @@ public void createDependency(GradleDependencyBuilder builder)
@Override
public void createManagedDependency(GradleDependencyBuilder builder)
{
// TODO Auto-generated method stub
script = GradleSourceUtil.insertManagedDependency(script,
builder.getGroup(), builder.getName(), builder.getVersion(), builder.getConfiguration());
}

@Override
public void createProfile(String name)
{
// TODO Auto-generated method stub
profiles.add(new GradleProfileImpl(name, new GradleModelImpl()));
}

@Override
public void applyPlugin(String name)
{
// TODO Auto-generated method stub
script = GradleSourceUtil.insertPlugin(script, name);
}

@Override
public void createGradleRepository(GradleRepositoryBuilder builder)
public void createRepository(GradleRepositoryBuilder builder)
{
// TODO Auto-generated method stub
script = GradleSourceUtil.insertRepository(script, builder.getName(), builder.getUrl());
}

@Override
public void removeDependency(GradleDependencyBuilder builder) throws UnremovableElementException
{
// TODO Auto-generated method stub
script = GradleSourceUtil.removeDependency(script,
builder.getGroup(), builder.getName(), builder.getVersion(), builder.getConfiguration());
}

@Override
public void removeManagedDependency(GradleDependencyBuilder builder) throws UnremovableElementException
{
// TODO Auto-generated method stub
script = GradleSourceUtil.removeManagedDependency(script,
builder.getGroup(), builder.getName(), builder.getVersion(), builder.getConfiguration());
}

@Override
public void removeProfile(String name)
{
// TODO Auto-generated method stub
for (GradleProfile profile : profiles)
{
if (profile.getName().equals(name))
{
profiles.remove(profile);
return;
}
}

throw new RuntimeException("Can't remove profile non existing profile named " + name);
}

@Override
public void removeAppliedPlugin(String name) throws UnremovableElementException
{
// TODO Auto-generated method stub
script = GradleSourceUtil.removePlugin(script, name);
}

@Override
public void removeGradleRepository(GradleRepositoryBuilder builder) throws UnremovableElementException
public void removeRepository(GradleRepositoryBuilder builder) throws UnremovableElementException
{
// TODO Auto-generated method stub
script = GradleSourceUtil.removeRepository(script, builder.getName(), builder.getUrl());
}
}

0 comments on commit 6f1e18f

Please sign in to comment.