package org.jboss.windup.rules.apps.xml.condition; import java.util.HashMap; import java.util.Map; public class XmlFileParameterMatchCache { private Map<Integer, Map<String, String>> vars = new HashMap<>(); public void addFrame(int frameID) { if (vars.containsKey(frameID)) { vars.get(frameID).clear(); } else { vars.put(frameID, new HashMap<String, String>()); } } public boolean checkVariable(int frameID, String key, String value) { for (int i = frameID; i >= 0; i--) { Map<String, String> frameVariables = vars.get(i); if(frameVariables == null) { continue; } String existingValue = frameVariables.get(key); if (existingValue != null && !existingValue.equals(value)) { return false; } } return true; } public void addVariable(int frameID, String key, String value) { vars.get(frameID).put(key, value); } public Map<String, String> getVariables() { Map<String, String> result = new HashMap<>(); for (int i : vars.keySet()) { Map<String, String> existingVars = vars.get(i); for (Map.Entry<String, String> existingVar : existingVars.entrySet()) { result.put(existingVar.getKey(), existingVar.getValue()); } } return result; } }