/* * Copyright 2015 Workday, Inc. * * This software is available under the MIT license. * Please see the LICENSE.txt file in this project. */ package com.workday.autoparse.xml.parser; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.Set; /** * @author nathan.taylor * @since 2015-03-02 */ public class CompositeParserMap implements ParserMap { private final Collection<ParserMap> components; public CompositeParserMap(Collection<ParserMap> components) { this.components = Collections.unmodifiableCollection(new ArrayList<>(components)); } @Override public XmlElementParser<?> get(String name) { for (ParserMap parserMap : components) { XmlElementParser<?> parser = parserMap.get(name); if (parser != null) { return parser; } } return null; } @Override public Set<String> keySet() { Set<String> keySet = new HashSet<>(); for (ParserMap component : components) { keySet.addAll(component.keySet()); } return keySet; } }