com.pulsarang.infra.monitoring.access.AccessMonitorContext.java Source code

Java tutorial

Introduction

Here is the source code for com.pulsarang.infra.monitoring.access.AccessMonitorContext.java

Source

/*
 * TPSMonitorContext.java $version 2010. 10. 15
 * 
 * Copyright 2010 NHN Corp. All rights Reserved.
 * NHN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
package com.pulsarang.infra.monitoring.access;

import org.apache.commons.lang.StringUtils;

import com.pulsarang.core.util.NanoStopWatch;

/**
 * 
 * @author pulsarang
 */
public class AccessMonitorContext {
    private static final ThreadLocal<AccessMonitorContext> CONTEXT_HOLDER = new ThreadLocal<AccessMonitorContext>() {
        @Override
        protected AccessMonitorContext initialValue() {
            return new AccessMonitorContext();
        }
    };

    private boolean initialized = false;
    private Boolean success;
    private String queryString;
    private final NanoStopWatch stopWatch = new NanoStopWatch();

    public static AccessMonitorContext getContext() {
        return CONTEXT_HOLDER.get();
    }

    public void init() {
        success = null;
        queryString = StringUtils.EMPTY;
        // ??   ???? filter interceptor ? ? ??  ?? .  
        initialized = true;
    }

    public void destroy() {
        CONTEXT_HOLDER.remove();
    }

    public void addParameter(String key, String value) {
        if (!initialized) {
            //  ? ? ?? ??   queryString?    .
            return;
        }

        if (!queryString.isEmpty()) {
            queryString += "&";
        }

        queryString += key + "=" + value;
    }

    public String getQueryString() {
        return queryString;
    }

    public Boolean isSuccess() {
        return success;
    }

    public void setSuccess(Boolean success) {
        this.success = success;
    }

    public NanoStopWatch getStopWatch() {
        return stopWatch;
    }
}