package com.l7tech.server.cassandra;

import com.codahale.metrics.jmx.JmxReporter;
import com.datastax.oss.driver.api.core.CqlSession;
import com.datastax.oss.driver.api.core.cql.PreparedStatement;
import com.l7tech.gateway.common.cassandra.CassandraConnection;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicLong;

public class CassandraConnectionHolderImpl implements CassandraConnectionHolder {
   private final CassandraConnection a;
   private final CqlSession b;
   private final Optional<JmxReporter> c;
   private final Map<String, PreparedStatement> d = new ConcurrentHashMap<>();
   private final long e = System.currentTimeMillis();
   private final AtomicLong f = new AtomicLong(this.e);

   public CassandraConnectionHolderImpl(CassandraConnection var1, CqlSession var2, Optional<JmxReporter> var3) {
      this.a = var1;
      this.c = var3;
      this.b = var2;
   }

   @Override
   public CassandraConnection getCassandraConnectionEntity() {
      return this.a;
   }

   @Override
   public CqlSession getSession() {
      return this.b;
   }

   @Override
   public Optional<JmxReporter> getJmxReporter() {
      return this.c;
   }

   @Override
   public Map<String, PreparedStatement> getPreparedStatementMap() {
      return this.d;
   }

   @Override
   public long getCreatedTime() {
      return this.e;
   }

   @Override
   public AtomicLong getLastAccessTime() {
      return this.f;
   }
}
