package configurationslicing.maven;
import hudson.Extension;
import hudson.maven.MavenModuleSet;
import hudson.model.Hudson;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import configurationslicing.UnorderedStringSlicer;
@Extension
public class MavenOptsSlicer extends UnorderedStringSlicer<MavenModuleSet> {
public MavenOptsSlicer() {
super(new MavenOptsSlicerSpec());
}
public static class MavenOptsSlicerSpec implements UnorderedStringSlicerSpec<MavenModuleSet> {
public String getName() {
return "MAVEN_OPTS per Maven project";
}
public String getName(MavenModuleSet item) {
return item.getName();
}
public String getUrl() {
return "mavenopts";
}
public List<String> getValues(MavenModuleSet item) {
List<String> ret = new ArrayList<String>();
String mavenOpts = item.getMavenOpts();
ret.add(mavenOpts);
return ret;
}
public List<MavenModuleSet> getWorkDomain() {
return (List)Hudson.getInstance().getItems(MavenModuleSet.class);
}
public boolean setValues(MavenModuleSet item, Set<String> set) {
if(set.isEmpty()) return false;
String value = set.iterator().next();
if(value.equals(MavenModuleSet.DESCRIPTOR.getGlobalMavenOpts())) {
item.setMavenOpts(null);
} else {
item.setMavenOpts(value);
}
try {
item.save();
} catch (IOException e) {
return false;
}
return true;
}
}
}