package net.onrc.onos.ofcontroller.bgproute;

import org.restlet.Context;
import org.restlet.Restlet;
import org.restlet.routing.Router;

import net.floodlightcontroller.restserver.RestletRoutable;

public class BgpRouteWebRoutable implements RestletRoutable {
	@Override
	public Restlet getRestlet(Context context) {
		Router router = new Router(context);
		router.attach("/json", BgpRouteResource.class);
		router.attach("/rib/{dest}", BgpRouteResource.class);
		router.attach("/{routerid}/{prefix}/{mask}/{nexthop}", BgpRouteResource.class);		
		router.attach("/{routerid}/{prefix}/{mask}/{nexthop}/synch", BgpRouteResourceSynch.class);
		router.attach("/{routerid}/{capability}", BgpRouteResource.class);
		return router;
	}
	
	@Override
	public String basePath() {
		return "/wm/bgp";
	}
}
