Expose optical properties

Change-Id: I30714563a6a02e5c4c777b759968251625ec4969
diff --git a/core/api/src/main/java/org/onosproject/net/device/DefaultPortStatistics.java b/core/api/src/main/java/org/onosproject/net/device/DefaultPortStatistics.java
index 6e0ab42..e46def2 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DefaultPortStatistics.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DefaultPortStatistics.java
@@ -15,13 +15,15 @@
  */
 package org.onosproject.net.device;
 
+import org.onosproject.net.AbstractAnnotated;
+import org.onosproject.net.Annotations;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.PortNumber;
 
 /**
  * Default implementation of immutable port statistics.
  */
-public final class DefaultPortStatistics implements PortStatistics {
+public final class DefaultPortStatistics extends AbstractAnnotated implements PortStatistics {
 
     private final DeviceId deviceId;
     private final PortNumber portNumber;
@@ -47,7 +49,9 @@
                                   long packetsRxErrors,
                                   long packetsTxErrors,
                                   long durationSec,
-                                  long durationNano) {
+                                  long durationNano,
+                                  Annotations annotations) {
+        super(annotations);
         this.deviceId = deviceId;
         this.portNumber = portNumber;
         this.packetsReceived = packetsReceived;
@@ -168,7 +172,8 @@
                 "pktRxErr: " + this.packetsRxErrors + ", " +
                 "pktTxErr: " + this.packetsTxErrors + ", " +
                 "pktRxDrp: " + this.packetsRxDropped + ", " +
-                "pktTxDrp: " + this.packetsTxDropped;
+                "pktTxDrp: " + this.packetsTxDropped + ", " +
+                "annotations: " + annotations();
     }
 
     public static final class Builder {
@@ -185,6 +190,7 @@
         long packetsTxErrors;
         long durationSec;
         long durationNano;
+        Annotations annotations;
 
         private Builder() {
 
@@ -349,6 +355,18 @@
         }
 
         /**
+         * Sets the annotations.
+         *
+         * @param anns annotations
+         * @return builder object
+         */
+        public Builder setAnnotations(Annotations anns) {
+            annotations = anns;
+
+            return this;
+        }
+
+        /**
          * Creates a PortStatistics object.
          *
          * @return DefaultPortStatistics object
@@ -366,7 +384,8 @@
                     packetsRxErrors,
                     packetsTxErrors,
                     durationSec,
-                    durationNano);
+                    durationNano,
+                    annotations);
         }
 
     }