package jas.spawner.refactor.biome;
import jas.spawner.refactor.entities.Group.MutableContentGroup;
import java.util.HashSet;
import java.util.Set;
import com.google.common.collect.ImmutableSet;
public class BiomeGroupBuilder implements MutableContentGroup<String> {
private String groupID;
private String configName;
private transient Set<String> pckgNames = new HashSet<String>();
/** String Used to Build Group Content Names i.e. {desert,A|Forest,glacier} */
private String expression;
public BiomeGroupBuilder() {
this.groupID = "";
this.configName = "";
this.expression = "";
}
public BiomeGroupBuilder(String groupID) {
this.groupID = groupID;
String[] parts = groupID.split("\\.");
if (parts.length > 1) {
this.configName = parts[0];
} else {
this.configName = "";
}
this.expression = "";
}
public BiomeGroupBuilder(String groupID, String configName, String expression) {
this.groupID = groupID;
this.configName = configName;
this.expression = expression;
}
public BiomeGroupBuilder(BiomeGroup biomeGroup) {
this.groupID = biomeGroup.groupID;
this.configName = biomeGroup.configName;
this.expression = biomeGroup.expression;
this.pckgNames = biomeGroup.pckgNames;
}
public BiomeGroup build() {
return new BiomeGroup(this);
}
public String getGroupID() {
return groupID;
}
public void setGroupID(String groupID) {
this.groupID = groupID;
}
public String getConfigName() {
return configName;
}
public void setConfigName(String configName) {
this.configName = configName;
}
public static class BiomeGroup implements ContentGroup<String> {
public final String groupID;
public final String configName;
private final ImmutableSet<String> pckgNames;
/** String Used to Build Group Content Names i.e. {desert,A|Forest,glacier} */
private final String expression;
private BiomeGroup(BiomeGroupBuilder builder) {
this.groupID = builder.getGroupID();
this.configName = builder.getConfigName();
this.pckgNames = ImmutableSet.<String> builder().addAll(builder.pckgNames).build();
this.expression = builder.expression;
}
@Override
public String iD() {
return groupID;
}
@Override
public Set<String> results() {
return pckgNames;
}
@Override
public String content() {
return expression;
}
}
@Override
public String iD() {
return groupID;
}
@Override
public Set<String> results() {
return pckgNames;
}
@Override
public String content() {
return expression;
}
@Override
public void setResults(Set<String> results) {
this.pckgNames = results;
}
@Override
public void setContents(String expression) {
this.expression = expression;
}
}