package org.opennms.netmgt.config; import java.net.InetAddress; import java.util.HashMap; import java.util.Map; import org.opennms.netmgt.snmp.SnmpAgentAddress; public class SnmpAgentConfigProxyMapper { private static SnmpAgentConfigProxyMapper m_instance; private Map<InetAddress,SnmpAgentAddress> m_addressToProxyAddress = new HashMap<InetAddress,SnmpAgentAddress>(); protected SnmpAgentConfigProxyMapper() { } public static SnmpAgentConfigProxyMapper getInstance() { if (m_instance == null) { m_instance = new SnmpAgentConfigProxyMapper(); } return m_instance; } public static void setInstance(final SnmpAgentConfigProxyMapper mapper) { m_instance = mapper; } /** * Returns the proxied {@link SnmpAgentAddress} that the provided host address. * is mapped to. * @param address a "real" SNMP agent address * @return the monitored host address */ public SnmpAgentAddress getAddress(final InetAddress address) { return m_addressToProxyAddress.get(address); } /** * Sets the proxied {@link SnmpAgentAddress} for a given {@link SnmpAgentAddress} * @param hostAddress the "real" SNMP agent address * @param proxyAgentAddress the SNMP agent address it is mapped to */ public void addProxy(final InetAddress hostAddress, final SnmpAgentAddress proxyAgentAddress) { m_addressToProxyAddress.put(hostAddress, proxyAgentAddress); } /** * Whether or not the given address is in use in the proxy mapper. */ public boolean contains(final SnmpAgentAddress listenAddress) { return (m_addressToProxyAddress.values().contains(listenAddress)); } }