package tc.oc.pgm.itemkeep; import java.util.Set; import com.google.common.collect.Sets; import org.jdom2.Element; import tc.oc.pgm.filters.matcher.block.MaterialFilter; import tc.oc.pgm.filters.operator.AnyFilter; import tc.oc.pgm.utils.XMLUtils; import tc.oc.pgm.xml.InvalidXMLException; import tc.oc.pgm.xml.Node; import tc.oc.pgm.xml.parser.ElementParser; public class ItemKeepParser implements ElementParser<ItemKeepRules> { @Override public ItemKeepRules parseElement(Element element) throws InvalidXMLException { final Set<MaterialFilter> itemFilters = Sets.newHashSet(); for(Node elItemKeep : Node.fromChildren(element, "item-keep", "itemkeep")) { for(Node elItem : Node.fromChildren(elItemKeep.asElement(), "item")) { itemFilters.add(new MaterialFilter(XMLUtils.parseMaterialPattern(elItem))); } } final Set<MaterialFilter> armorFilters = Sets.newHashSet(); for(Node elArmorKeep : Node.fromChildren(element, "armor-keep", "armorkeep")) { for(Node elItem : Node.fromChildren(elArmorKeep.asElement(), "item")) { armorFilters.add(new MaterialFilter(XMLUtils.parseMaterialPattern(elItem))); } } return new ItemKeepRules(AnyFilter.of(itemFilters), AnyFilter.of(armorFilters)); } }