package net.ttddyy.dsproxy.proxy; import java.util.LinkedHashMap; import java.util.Map; /** * @author Tadaya Tsuyukubo * @since 1.4 */ public class ParameterKeyUtils { public static <T> Map<ParameterKey, T> filterBy(Map<ParameterKey, T> map, ParameterKey.ParameterKeyType type) { Map<ParameterKey, T> result = new LinkedHashMap<ParameterKey, T>(); for (Map.Entry<ParameterKey, T> entry : map.entrySet()) { ParameterKey key = entry.getKey(); if (key.getType() == type) { result.put(key, entry.getValue()); } } return result; } public static <T> Map<String, T> toNameMap(Map<ParameterKey, T> map) { Map<ParameterKey, T> filtered = filterBy(map, ParameterKey.ParameterKeyType.BY_NAME); Map<String, T> result = new LinkedHashMap<String, T>(); for (Map.Entry<ParameterKey, T> entry : filtered.entrySet()) { result.put(entry.getKey().getName(), entry.getValue()); } return result; } public static <T> Map<Integer, T> toIndexMap(Map<ParameterKey, T> map) { Map<ParameterKey, T> filtered = filterBy(map, ParameterKey.ParameterKeyType.BY_INDEX); Map<Integer, T> result = new LinkedHashMap<Integer, T>(); for (Map.Entry<ParameterKey, T> entry : filtered.entrySet()) { result.put(entry.getKey().getIndex(), entry.getValue()); } return result; } }