package org.infosec.ismp.trapd;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.infosec.ismp.util.ThreadCategory;
import org.springframework.stereotype.Component;
@Component
public class TrapNodeManager {
private Map<String, TrapNode> m_trapNodes = Collections
.synchronizedMap(new HashMap<String, TrapNode>());
public void addTrapNode(TrapNode node) {
if (node.getNodeid() != null) {
m_trapNodes.put(node.getNodeid(), node);
log().debug("添加一个新的Trap源节点: " + node);
} else {
log().warn("无法添加Trap源,因为Nodeid 是null,请检查 :" + node);
}
}
public void removeTrapNode(String nodeid) {
synchronized (m_trapNodes) {
if (m_trapNodes.containsKey(nodeid)) {
m_trapNodes.remove(nodeid);
log().debug("删除一个Trap源节点,节点nodeid是 :" + nodeid);
} else {
log().debug("该Trap源不存在,无法删除,请检查nodeid :" + nodeid);
}
}
}
public List<TrapNode> getAllTrapNodes() {
List<TrapNode> nodeList = new ArrayList<TrapNode>(m_trapNodes.size());
Collection<TrapNode> nodeCollection = m_trapNodes.values();
for (TrapNode node : nodeCollection) {
nodeList.add(node);
}
return nodeList;
}
ThreadCategory log() {
return ThreadCategory.getInstance(getClass());
}
}