Multiple meter support added and meter action added for OF1.5
MeterFeaturesFlag added for OF1.5

Change-Id: I84d2785f37ea51b08244de9c54effe5224af9531
diff --git a/core/api/src/main/java/org/onosproject/net/meter/DefaultMeterFeatures.java b/core/api/src/main/java/org/onosproject/net/meter/DefaultMeterFeatures.java
index 1835872..bd5d998 100644
--- a/core/api/src/main/java/org/onosproject/net/meter/DefaultMeterFeatures.java
+++ b/core/api/src/main/java/org/onosproject/net/meter/DefaultMeterFeatures.java
@@ -16,6 +16,7 @@
 package org.onosproject.net.meter;
 
 import com.google.common.base.MoreObjects;
+import com.google.common.collect.Sets;
 import org.onosproject.net.DeviceId;
 
 import java.util.HashSet;
@@ -35,11 +36,12 @@
     private boolean stats;
     private short maxBands;
     private short maxColor;
+    private Set<MeterFeaturesFlag> features;
 
     private DefaultMeterFeatures(DeviceId did, long maxMeter,
                                  Set<Band.Type> bandTypes, Set<Meter.Unit> units,
                                  boolean burst, boolean stats,
-                                 short maxBands, short maxColor) {
+                                 short maxBands, short maxColor, Set<MeterFeaturesFlag> flag) {
         this.deviceId = did;
         this.maxMeter = maxMeter;
         this.bandTypes = bandTypes;
@@ -48,6 +50,7 @@
         this.units = units;
         this.maxBands = maxBands;
         this.maxColor = maxColor;
+        this.features = flag;
     }
 
     @Override
@@ -90,6 +93,11 @@
         return maxColor;
     }
 
+    @Override
+    public Set<MeterFeaturesFlag> features() {
+        return features;
+    }
+
     public static Builder builder() {
         return new Builder();
     }
@@ -125,6 +133,7 @@
         private Set<Meter.Unit> units1 = new HashSet<>();
         private boolean burst = false;
         private boolean stats = false;
+        private Set<MeterFeaturesFlag> features = Sets.newHashSet();
 
         @Override
         public MeterFeatures.Builder forDevice(DeviceId deviceId) {
@@ -175,9 +184,15 @@
         }
 
         @Override
+        public MeterFeatures.Builder withFeatures(Set<MeterFeaturesFlag> featureFlags) {
+            features = featureFlags;
+            return this;
+        }
+
+        @Override
         public MeterFeatures build() {
             checkNotNull(did, "Must specify a device");
-            return new DefaultMeterFeatures(did, mmeter, bandTypes, units1, burst, stats, mbands, mcolors);
+            return new DefaultMeterFeatures(did, mmeter, bandTypes, units1, burst, stats, mbands, mcolors, features);
         }
     }
 }