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

com.truward.brikar.common.executor.StandardThreadParametersBinder Maven / Gradle / Ivy

The newest version!
package com.truward.brikar.common.executor;

import com.truward.brikar.common.log.LogUtil;
import com.truward.brikar.common.log.metric.MetricsCollection;
import org.slf4j.MDC;

/**
 * Standard values for thread parameters binder.
 *
 * @author Alexander Shabanov
 */
public enum StandardThreadParametersBinder implements ThreadParametersBinder {

  REQUEST_VECTOR {
    @Override
    public Object getLocalObject() {
      return MDC.get(LogUtil.REQUEST_VECTOR);
    }

    @Override
    public void setLocalObject(Object tag) {
      if (tag == null) {
        return;
      }

      MDC.put(LogUtil.REQUEST_VECTOR, tag.toString());
    }

    @Override
    public void unsetLocalObject(Object tag) {
      if (tag == null) {
        return;
      }

      MDC.remove(LogUtil.REQUEST_VECTOR);
    }
  },

  METRICS_COLLECTION {
    @Override
    public Object getLocalObject() {
      return LogUtil.getLocalMetricsCollection();
    }

    @Override
    public void setLocalObject(Object tag) {
      if (tag == null) {
        return;
      }

      LogUtil.setLocalMetricsCollection((MetricsCollection) tag);
    }

    @Override
    public void unsetLocalObject(Object tag) {
      if (tag == null) {
        return;
      }

      LogUtil.setLocalMetricsCollection(null);
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy