package org.stagemonitor.tracing; import org.stagemonitor.core.util.ClassUtils; import org.stagemonitor.util.StringUtils; /** * Determines how a business transaction should be named */ public enum BusinessTransactionNamingStrategy { METHOD_NAME_SPLIT_CAMEL_CASE { @Override public String getBusinessTransationName(String fullClassName, String methodName) { return StringUtils.capitalize(StringUtils.splitCamelCase(methodName)); } }, CLASS_NAME_HASH_METHOD_NAME { @Override public String getBusinessTransationName(String fullClassName, String methodName) { return ClassUtils.shorten(fullClassName) + "#" + methodName; } }, CLASS_NAME_DOT_METHOD_NAME { @Override public String getBusinessTransationName(String fullClassName, String methodName) { return ClassUtils.shorten(fullClassName) + "." + methodName; } }; public abstract String getBusinessTransationName(String fullClassName, String methodName); }