package net.onrc.onos.core.topology; import static com.google.common.base.Preconditions.checkNotNull; import java.util.Collection; import net.floodlightcontroller.util.MACAddress; import net.onrc.onos.core.util.Dpid; import net.onrc.onos.core.util.OnosInstanceId; import net.onrc.onos.core.util.PortNumber; import net.onrc.onos.core.util.SwitchPort; /** * Wrapper to access {@link ImmutableTopology} as {@link MutableTopology}. */ public final class ImmutableTopologyWrapper implements MutableTopology { private final ImmutableTopology wrapped; /** * Constructor. * * @param toWrap {@link ImmutableTopology} to wrap */ public ImmutableTopologyWrapper(ImmutableTopology toWrap) { this.wrapped = checkNotNull(toWrap); } @Override public void acquireReadLock() { // no-op } @Override public void releaseReadLock() { // no-op } @Override public Switch getSwitch(Dpid dpid) { return wrapped.getSwitch(dpid); } @Override public Iterable<Switch> getSwitches() { return wrapped.getSwitches(); } @Override public Port getPort(Dpid dpid, PortNumber portNumber) { return wrapped.getPort(dpid, portNumber); } @Override public Port getPort(SwitchPort port) { return wrapped.getPort(port); } @Override public Collection<Port> getPorts(Dpid dpid) { return wrapped.getPorts(dpid); } @Override public Link getOutgoingLink(Dpid dpid, PortNumber portNumber) { return wrapped.getOutgoingLink(dpid, portNumber); } @Override public Link getOutgoingLink(Dpid dpid, PortNumber portNumber, String type) { return wrapped.getOutgoingLink(dpid, portNumber, type); } @Override public Link getOutgoingLink(SwitchPort port) { return wrapped.getOutgoingLink(port); } @Override public Link getOutgoingLink(SwitchPort port, String type) { return wrapped.getOutgoingLink(port, type); } @Override public Collection<Link> getOutgoingLinks(SwitchPort port) { return wrapped.getOutgoingLinks(port); } @Override public Link getIncomingLink(Dpid dpid, PortNumber portNumber) { return wrapped.getIncomingLink(dpid, portNumber); } @Override public Link getIncomingLink(Dpid dpid, PortNumber portNumber, String type) { return wrapped.getIncomingLink(dpid, portNumber, type); } @Override public Link getIncomingLink(SwitchPort port) { return wrapped.getIncomingLink(port); } @Override public Link getIncomingLink(SwitchPort port, String type) { return wrapped.getIncomingLink(port, type); } @Override public Collection<Link> getIncomingLinks(SwitchPort port) { return wrapped.getIncomingLinks(port); } @Override public Link getLink(Dpid srcDpid, PortNumber srcPortNumber, Dpid dstDpid, PortNumber dstPortNumber) { return wrapped.getLink(srcDpid, srcPortNumber, dstDpid, dstPortNumber); } @Override public Link getLink(Dpid srcDpid, PortNumber srcPortNumber, Dpid dstDpid, PortNumber dstPortNumber, String type) { return wrapped.getLink(srcDpid, srcPortNumber, dstDpid, dstPortNumber, type); } @Override public Iterable<Link> getLinks() { return wrapped.getLinks(); } @Override public Host getHostByMac(MACAddress address) { return wrapped.getHostByMac(address); } @Override public Iterable<Host> getHosts() { return wrapped.getHosts(); } @Override public Collection<Host> getHosts(SwitchPort port) { return wrapped.getHosts(port); } @Override public OnosInstanceId getSwitchMaster(Dpid dpid) { return wrapped.getSwitchMaster(dpid); } }