OSPF-API refactored based on review comments, ONOS-2738,
Change-Id: I05d39f7f0d6b3a2d0cc51a256feec220f1d0e06a
diff --git a/protocols/ospf/api/src/main/java/org/onosproject/ospf/controller/OspfRouter.java b/protocols/ospf/api/src/main/java/org/onosproject/ospf/controller/OspfRouter.java
new file mode 100755
index 0000000..1eebd87
--- /dev/null
+++ b/protocols/ospf/api/src/main/java/org/onosproject/ospf/controller/OspfRouter.java
@@ -0,0 +1,123 @@
+/*
+ * Copyright 2016 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.ospf.controller;
+
+import org.onlab.packet.Ip4Address;
+
+/**
+ * Abstraction of an OSPF Router.
+ */
+public interface OspfRouter {
+
+ /**
+ * Gets IP address of the router.
+ *
+ * @return IP address of the router
+ */
+ Ip4Address routerIp();
+
+ /**
+ * Gets the area id for this device.
+ *
+ * @return the area id for this device
+ */
+ Ip4Address areaIdOfInterface();
+
+ /**
+ * Gets IP address of the interface.
+ *
+ * @return IP address of the interface
+ */
+ Ip4Address interfaceId();
+
+ /**
+ * Gets list of device TED.
+ *
+ * @return list of device TED.
+ */
+ OspfDeviceTed deviceTed();
+
+ /**
+ * Sets IP address of the Router.
+ *
+ * @param routerIp IP address of the router
+ */
+ void setRouterIp(Ip4Address routerIp);
+
+ /**
+ * Sets area id in which this device belongs to.
+ *
+ * @param areaIdOfInterface area id in which this device belongs to
+ */
+ void setAreaIdOfInterface(Ip4Address areaIdOfInterface);
+
+ /**
+ * Sets IP address of the interface.
+ *
+ * @param interfaceId IP address of the interface
+ */
+ void setInterfaceId(Ip4Address interfaceId);
+
+ /**
+ * Sets the device TED information.
+ *
+ * @param deviceTed device TED instance
+ */
+ void setDeviceTed(OspfDeviceTed deviceTed);
+
+ /**
+ * Gets if router is opaque enabled.
+ *
+ * @return true if router is opaque enabled else false.
+ */
+ boolean isOpaque();
+
+ /**
+ * Sets true if device is opaque enable if not sets false.
+ *
+ * @param opaque true if device is opaque enable if not sets false
+ */
+ void setOpaque(boolean opaque);
+
+ /**
+ * Gets IP address of the advertising router.
+ *
+ * @return IP address of the advertising router
+ */
+ Ip4Address neighborRouterId();
+
+ /**
+ * Sets IP address of the advertising router.
+ *
+ * @param advertisingRouterId IP address of the advertising router
+ */
+ void setNeighborRouterId(Ip4Address advertisingRouterId);
+
+
+ /**
+ * Gets if the router id DR or not.
+ *
+ * @return true if the router is DR else false
+ */
+ boolean isDr();
+
+ /**
+ * Sets if the router id DR or not.
+ *
+ * @param dr true if the router is DR else false
+ */
+ void setDr(boolean dr);
+}
\ No newline at end of file