package com.l7tech.server.sla;

import com.ca.apim.gateway.extension.sharedstate.counter.CounterFieldOfInterest;
import com.ca.apim.gateway.extension.sharedstate.counter.SharedCounterState;
import com.l7tech.util.CollectionUtils.MapBuilder;
import java.io.Serializable;
import java.util.Date;
import java.util.EnumMap;
import java.util.Map;

public final class CounterInfo implements Serializable, SharedCounterState {
   private final String name;
   private final Map<CounterFieldOfInterest, Long> counterState;
   private final Date lastUpdate;
   static final long serialVersionUID = 2194195060524348463L;

   @Deprecated
   public CounterInfo(String var1, long var2, long var4, long var6, long var8, long var10, Date var12) {
      this(
         var1,
         new EnumMap<>(
            MapBuilder.builder()
               .put(CounterFieldOfInterest.SEC, var2)
               .put(CounterFieldOfInterest.MIN, var4)
               .put(CounterFieldOfInterest.HOUR, var6)
               .put(CounterFieldOfInterest.DAY, var8)
               .put(CounterFieldOfInterest.MONTH, var10)
               .unmodifiableMap()
         ),
         var12
      );
   }

   public CounterInfo(String var1, Map<CounterFieldOfInterest, Long> var2, Date var3) {
      this.name = var1;
      this.counterState = var2;
      this.lastUpdate = var3;
   }

   public String getName() {
      return this.name;
   }

   public long getCount(CounterFieldOfInterest var1) {
      return this.counterState.get(var1);
   }

   public Date getLastUpdate() {
      return this.lastUpdate;
   }
}
