package com.airlock.iam.servicecontainer.app.infrastructure.webapp.presenter;

import com.airlock.iam.servicecontainer.app.application.configuration.Server;
import com.airlock.iam.servicecontainer.app.infrastructure.server.ServerStatistics;
import com.airlock.iam.servicecontainer.app.infrastructure.webapp.model.ServiceContainerModel;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;

public class OverviewPresenter {
   private final ServiceContainerModel model;

   public String getServerUptime() {
      return ServerStatistics.getServerUptimeString(this.getServer());
   }

   public String getNumberOfLoadedServices() {
      return Integer.toString(this.getServer().getNumberOfLoadedServices());
   }

   public String getNumberOfRunningServices() {
      return Long.toString(this.getServer().getNumberOfRunningServices());
   }

   public String getTotalMemory() {
      return ServerStatistics.getTotalMemoryString();
   }

   public String getUsedMemory() {
      return ServerStatistics.getUsedMemoryString();
   }

   public String getFreeMemory() {
      return ServerStatistics.getFreeMemoryString();
   }

   public String getNumberOfThreads() {
      return Integer.toString(this.getServer().getNumberOfThreads());
   }

   public String getNumberOfWorkingThreads() {
      return Integer.toString(this.getServer().getNumberOfWorkingThreads());
   }

   public String getNumberOfSleepingThreads() {
      return Integer.toString(this.getServer().getNumberOfSleepingThreads());
   }

   private Server getServer() {
      return this.model.getServer();
   }

   @SuppressFBWarnings(justification = "generated code")
   public OverviewPresenter(ServiceContainerModel model) {
      this.model = model;
   }
}
