ONOS-4082:ISIS protocol API changes

Change-Id: I4cdd4a4811ec0ab0aba51d7d8085a3eac9b34b2c
diff --git a/protocols/isis/api/src/main/java/org/onosproject/isis/controller/LspWrapper.java b/protocols/isis/api/src/main/java/org/onosproject/isis/controller/LspWrapper.java
new file mode 100644
index 0000000..a4615f7
--- /dev/null
+++ b/protocols/isis/api/src/main/java/org/onosproject/isis/controller/LspWrapper.java
@@ -0,0 +1,127 @@
+/*
+ * Copyright 2016-present 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.isis.controller;
+
+/**
+ * Representation of a LSP wrapper.
+ */
+public interface LspWrapper {
+
+    /**
+     * Returns bin number into which the LSP wrapper is put for aging process.
+     *
+     * @return bin number
+     */
+    int binNumber();
+
+    /**
+     * Sets bin number into which the LSP wrapper is put for aging process.
+     *
+     * @param binNumber bin number
+     */
+    void setBinNumber(int binNumber);
+
+    /**
+     * Checks the contained LSP is self originated or not.
+     *
+     * @return true if self originated else false
+     */
+    boolean isSelfOriginated();
+
+    /**
+     * Sets the contained LSP is self originated or not.
+     *
+     * @param selfOriginated true if self originated else false
+     */
+    void setSelfOriginated(boolean selfOriginated);
+
+    /**
+     * Returns the LSP type.
+     *
+     * @return LSP type
+     */
+    IsisPduType lspType();
+
+    /**
+     * Returns the LSPs remaining life time.
+     *
+     * @return LSPs remaining life time.
+     */
+    int remainingLifetime();
+
+    /**
+     * Returns the age counter value when LSP was received.
+     *
+     * @return age counter value when LSP was received
+     */
+    int ageCounterWhenReceived();
+
+    /**
+     * Returns the age counter roll over value when LSP was added to wrapper instance.
+     *
+     * @return age counter roll over value when LSP was added to wrapper instance
+     */
+    int ageCounterRollOverWhenAdded();
+
+    /**
+     * Returns the LSP instance stored in wrapper.
+     *
+     * @return LSP instance stored in wrapper
+     */
+    IsisMessage lsPdu();
+
+    /**
+     * Sets LSPs remaining life time.
+     *
+     * @param remainingLifetime LSPs remaining life time
+     */
+    void setRemainingLifetime(int remainingLifetime);
+
+    /**
+     * Returns the age of LSP when received.
+     *
+     * @return age of LSP when received
+     */
+    int lspAgeReceived();
+
+    /**
+     * Returns the LSP processing string.
+     *
+     * @return lsp processing value for switch case
+     */
+    String lspProcessing();
+
+    /**
+     * Returns ISIS interface instance.
+     *
+     * @return ISIS interface instance
+     */
+    IsisInterface isisInterface();
+
+    /**
+     * Returns the current LSP age.
+     *
+     * @return LSP age
+     */
+    int currentAge();
+
+    /**
+     * Sets the LSP processing string based on LSP to process.
+     *
+     * @param lspProcessing "refreshLsp" or "maxageLsp" based on LSP to process
+     */
+    void setLspProcessing(String lspProcessing);
+}