Initial implementation of Meter Service (needs testing)

Change-Id: Ie07bd3e2bd7c67a6499c965d8926eb361ad16462

store impl started

Change-Id: Ib8b474f40dcecff335a421c12ad149fe9830c427

full implementation

Change-Id: Ie59fd61d02972bd04d887bdcca9745793b880681
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/meter/DefaultMeter.java b/incubator/api/src/main/java/org/onosproject/incubator/net/meter/DefaultMeter.java
index 953feb2..138bb18 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/meter/DefaultMeter.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/meter/DefaultMeter.java
@@ -28,7 +28,7 @@
 /**
  * A default implementation of a meter.
  */
-public final class DefaultMeter implements Meter {
+public final class DefaultMeter implements Meter, MeterEntry  {
 
 
     private final MeterId id;
@@ -39,6 +39,12 @@
     private final DeviceId deviceId;
     private final Optional<MeterContext> context;
 
+    private MeterState state;
+    private long life;
+    private long refCount;
+    private long packets;
+    private long bytes;
+
     private DefaultMeter(DeviceId deviceId, MeterId id, ApplicationId appId,
                         Unit unit, boolean burst,
                         Collection<Band> bands, Optional<MeterContext> context) {
@@ -86,10 +92,60 @@
         return null;
     }
 
+    @Override
+    public MeterState state() {
+        return state;
+    }
+
+    @Override
+    public long life() {
+        return life;
+    }
+
+    @Override
+    public long referenceCount() {
+        return refCount;
+    }
+
+    @Override
+    public long packetsSeen() {
+        return packets;
+    }
+
+    @Override
+    public long bytesSeen() {
+        return bytes;
+    }
+
     public static Builder builder() {
         return new Builder();
     }
 
+    @Override
+    public void setState(MeterState state) {
+        this.state = state;
+    }
+
+    @Override
+    public void setLife(long life) {
+        this.life = life;
+    }
+
+    @Override
+    public void setReferenceCount(long count) {
+        this.refCount = count;
+    }
+
+    @Override
+    public void setProcessedPackets(long packets) {
+        this.packets = packets;
+    }
+
+    @Override
+    public void setProcessedBytes(long bytes) {
+        this.bytes = bytes;
+    }
+
     public static final class Builder implements Meter.Builder {
 
         private MeterId id;
@@ -108,7 +164,7 @@
         }
 
         @Override
-        public Meter.Builder withId(int id) {
+        public Meter.Builder withId(long id) {
             this.id = MeterId.meterId(id);
             return this;
         }
@@ -144,7 +200,7 @@
         }
 
         @Override
-        public Meter build() {
+        public DefaultMeter build() {
             checkNotNull(deviceId, "Must specify a device");
             checkNotNull(bands, "Must have bands.");
             checkArgument(bands.size() > 0, "Must have at least one band.");