All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.squirrelframework.foundation.fsm.StateMachinePerformanceModel Maven / Gradle / Ivy

package org.squirrelframework.foundation.fsm;

import java.util.Collections;
import java.util.Map;

import org.apache.commons.lang3.StringUtils;

import com.google.common.collect.Maps;

public class StateMachinePerformanceModel {
    
    private String name;

    private long totalTransitionInvokedTimes = 0;
    private long totalTransitionFailedTimes = 0;
    private long totalTransitionDeclinedTimes = 0;
    private float averageTranstionConsumedTime = 0.0f;
    private final Map transitionInvokeTimes = Maps.newHashMap();
    private final Map averTransitionConsumedTime = Maps.newHashMap();
    private final Map maxTransitionConsumedTime = Maps.newHashMap();
    private final Map minTransitionConsumedTime = Maps.newHashMap();
    
    private long totalActionInvokedTimes = 0;
    private long totalActionFailedTimes = 0;
    private float averageActionConsumedTime = 0.0f;
    private final Map actionInvokeTimes = Maps.newHashMap();
    private final Map averActionConsumedTime = Maps.newHashMap();
    private final Map maxActionConsumedTime = Maps.newHashMap();
    private final Map minActionConsumedTime = Maps.newHashMap();
    
    public String getName() {
        return name;
    }
    
    void setName(String name) {
        this.name = name;
    }
    
    public long getTotalTransitionInvokedTimes() {
        return totalTransitionInvokedTimes;
    }
    
    void setTotalTransitionInvokedTimes(long totalTransitionInvokedTimes) {
        this.totalTransitionInvokedTimes = totalTransitionInvokedTimes;
    }
    
    public long getTotalTransitionFailedTimes() {
        return totalTransitionFailedTimes;
    }
    
    void setTotalTransitionFailedTimes(long totalTransitionFailedTimes) {
        this.totalTransitionFailedTimes = totalTransitionFailedTimes;
    }
    
    public long getTotalTransitionDeclinedTimes() {
        return totalTransitionDeclinedTimes;
    }
    
    void setTotalTransitionDeclinedTimes(long totalTransitionDeclinedTimes) {
        this.totalTransitionDeclinedTimes = totalTransitionDeclinedTimes;
    }
    
    public float getAverageTranstionConsumedTime() {
        return averageTranstionConsumedTime;
    }
    
    void setAverageTranstionConsumedTime(float averageTranstionConsumedTime) {
        this.averageTranstionConsumedTime = averageTranstionConsumedTime;
    }
    
    public long getTotalActionInvokedTimes() {
        return totalActionInvokedTimes;
    }
    
    void setTotalActionInvokedTimes(long totalActionInvokedTimes) {
        this.totalActionInvokedTimes = totalActionInvokedTimes;
    }
    
    public long getTotalActionFailedTimes() {
        return totalActionFailedTimes;
    }
    
    void setTotalActionFailedTimes(long totalActionFailedTimes) {
        this.totalActionFailedTimes = totalActionFailedTimes;
    }
    
    public float getAverageActionConsumedTime() {
        return averageActionConsumedTime;
    }
    
    void setAverageActionConsumedTime(float averageActionConsumedTime) {
        this.averageActionConsumedTime = averageActionConsumedTime;
    }
    
    public Map getTransitionInvokeTimes() {
        return Collections.unmodifiableMap(transitionInvokeTimes);
    }
    
    void addTransitionInvokeTime(String key, Long value) {
        transitionInvokeTimes.put(key, value);
    }
    
    public Map getAverTransitionConsumedTime() {
        return Collections.unmodifiableMap(averTransitionConsumedTime);
    }
    
    void addAverTransitionConsumedTime(String key, float value) {
        averTransitionConsumedTime.put(key, value);
    }
    
    public Map getMaxTransitionConsumedTime() {
        return Collections.unmodifiableMap(maxTransitionConsumedTime);
    }
    
    void addMaxTransitionConsumedTime(String key, Long value) {
        maxTransitionConsumedTime.put(key, value);
    }
    
    public Map getMinTransitionConsumedTime() {
        return Collections.unmodifiableMap(minTransitionConsumedTime);
    }
    
    void addMinTransitionConsumedTime(String key, Long value) {
        minTransitionConsumedTime.put(key, value);
    }
    
    public Map getActionInvokeTimes() {
        return Collections.unmodifiableMap(actionInvokeTimes);
    }
    
    void addActionInvokeTime(String key, Long value) {
        actionInvokeTimes.put(key, value);
    }
    
    public Map getAverActionConsumedTime() {
        return Collections.unmodifiableMap(averActionConsumedTime);
    }
    
    void addAverActionConsumedTime(String key, float value) {
        averActionConsumedTime.put(key, value);
    }
    
    public Map getMaxActionConsumedTime() {
        return Collections.unmodifiableMap(maxActionConsumedTime);
    }
    
    void addMaxActionConsumedTime(String key, Long value) {
        maxActionConsumedTime.put(key, value);
    }
    
    public Map getMinActionConsumedTime() {
        return Collections.unmodifiableMap(minActionConsumedTime);
    }
    
    void addMinActionConsumedTime(String key, Long value) {
        minActionConsumedTime.put(key, value);
    }
    
    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("========================== ");
        builder.append(name);
        builder.append(" ==========================\n");
        
        builder.append("Total Transition Invoked: ").append(totalTransitionInvokedTimes).append("\n");
        builder.append("Total Transition Failed: ").append(totalTransitionFailedTimes).append("\n");
        builder.append("Total Transition Declained: ").append(totalTransitionDeclinedTimes).append("\n");
        builder.append("Average Transition Comsumed: ").append(String.format("%.4fms", averageTranstionConsumedTime)).append("\n");
        
        builder.append("\t").append("Transition Key").append("\t\tInvoked Times\tAverage Time\t\tMax Time\tMin Time\n");
        for(String tKey : transitionInvokeTimes.keySet()) {
            builder.append("\t").append(StringUtils.abbreviateMiddle(tKey, "...", 15)).append("\t\t").
                append(transitionInvokeTimes.get(tKey)).append("\t\t").
                append(String.format("%.4fms", averTransitionConsumedTime.get(tKey))).append("\t\t").
                append(maxTransitionConsumedTime.get(tKey)).append("ms\t\t").
                append(minTransitionConsumedTime.get(tKey)).append("ms\t\t");
            builder.append("\n");
        }
        builder.append("\n");
        
        builder.append("Total Action Invoked: ").append(totalActionInvokedTimes).append("\n");
        builder.append("Total Action Failed: ").append(totalActionFailedTimes).append("\n");
        builder.append("Average Action Execution Comsumed: ").append(String.format("%.4fms", averageActionConsumedTime)).append("\n");
        
        builder.append("\t").append("Action Key").append("\t\tInvoked Times\tAverage Time\t\tMax Time\tMin Time\n");
        for(String aKey : actionInvokeTimes.keySet()) {
            builder.append("\t").append(StringUtils.abbreviateMiddle(aKey, "...", 15)).append("\t\t").
                append(actionInvokeTimes.get(aKey)).append("\t\t").
                append(String.format("%.4fms", averActionConsumedTime.get(aKey))).append("\t\t").
                append(maxActionConsumedTime.get(aKey)).append("ms\t\t").
                append(minActionConsumedTime.get(aKey)).append("ms\t\t");
            builder.append("\n");
        }
        
        builder.append("========================== ");
        builder.append(name);
        builder.append(" ==========================").append("\n");
        return builder.toString();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy