package jas.spawner.refactor.entities;
import jas.spawner.refactor.configsloader.ConfigLoader;
import jas.spawner.refactor.configsloader.LivingSettingsLoader;
import jas.spawner.refactor.entities.Group.Groups;
import jas.spawner.refactor.entities.LivingGroupBuilder.LivingGroup;
import java.util.Collection;
import java.util.List;
import java.util.TreeMap;
import com.google.common.collect.ImmutableMap;
public class LivingAttributes implements Groups {
private ImmutableMap<String, LivingGroup> iDToAttribute;
@Override
public String key() {
return "A.";
}
@Override
public ImmutableMap<String, LivingGroup> iDToGroup() {
return iDToAttribute;
}
public LivingAttributes(ConfigLoader loader, Mappings mappings) {
loadFromConfig(loader, mappings);
}
private void loadFromConfig(ConfigLoader loader, Mappings mappings) {
LivingSettingsLoader savedStats = loader.livingGroupLoader.saveObject;
ImmutableMapGroupsBuilder<LivingGroupBuilder> attributeGroups = new ImmutableMapGroupsBuilder<LivingGroupBuilder>(
key());
if (savedStats.configNameToAttributeGroups.isPresent()) {
Collection<TreeMap<String, LivingGroupBuilder>> mapOfGroups = savedStats.configNameToAttributeGroups.get()
.values();
for (TreeMap<String, LivingGroupBuilder> treeMap : mapOfGroups) {
for (LivingGroupBuilder attributeGroup : treeMap.values()) {
if (!"".equals(attributeGroup.groupID)) {
attributeGroups.addGroup(attributeGroup);
}
}
}
}
List<LivingGroupBuilder> sortedAttributes = ListContentGroup.Sorter.getSortedGroups(attributeGroups);
ImmutableMapGroupsBuilder<LivingGroup> iDToAttributeBuilder = new ImmutableMapGroupsBuilder("A|");
for (LivingGroupBuilder livingGroup : sortedAttributes) {
LivingGroup group = livingGroup.build(mappings, iDToAttributeBuilder);
iDToAttributeBuilder.addGroup(group);
}
this.iDToAttribute = iDToAttributeBuilder.build();
}
}