
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