SnmpDispatchNode.java

package eu.linuxengineering.snmp;

import java.util.Map.Entry;
import java.util.TreeMap;

import net.sf.snmpadaptor4j.api.AttributeAccessor;

public class SnmpDispatchNode implements SnmpNode
{
	protected TreeMap<Integer, SnmpNode> subNodes = new TreeMap<>();
	
	@Override
	public boolean hasSubNodes()
	{
		return true;
	}

	@Override
	public Entry<Integer, SnmpNode> getSubNodeGte(SnmpPathDispatch index)
	{
		if(null == index || !index.hasNexOidPath())
		{
			return subNodes.firstEntry();
		}
		
		Integer id = index.getCurrentPathIdAndGoNext();
		return subNodes.ceilingEntry(id);
	}

	@Override
	public AttributeAccessor getAccessor()
	{
		return null;
	}
	
	public void addEntry(Integer id, SnmpNode node)
	{
		subNodes.put(id, node);
	}
}