Package org.lightview.business.pool.entity

Source Code of org.lightview.business.pool.entity.PoolStatistics

/*
*
*/
package org.lightview.business.pool.entity;

import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javax.json.JsonObject;

/**
*
* @author adam-bien.com
*/
public class PoolStatistics {

    private JsonObject statistics;

    private final String THREADS_STATISTICS = "numthreadswaiting";

    private final IntegerProperty currentThreadsWaiting = new SimpleIntegerProperty();
    private final IntegerProperty totalBeansCreated = new SimpleIntegerProperty();
    private final IntegerProperty totalBeansDestroyed = new SimpleIntegerProperty();
    private IntegerProperty NOT_AVAILABLE = new SimpleIntegerProperty(-1);

    public PoolStatistics(JsonObject statistics) {
        this.statistics = statistics;
    }

    public IntegerProperty currentThreadsWaitingProperty() {
        final JsonObject threadsStatistics = getThreadsStatistics();
        if (threadsStatistics == null) {
            return NOT_AVAILABLE;
        }
        int value = threadsStatistics.getInt("current");
        currentThreadsWaiting.set(value);
        return this.currentThreadsWaiting;
    }

    public int getCurrentThreadsWaiting() {
        return currentThreadsWaitingProperty().get();
    }

    public IntegerProperty threadsWaitingHighwatermarkProperty() {
        final JsonObject threadsStatistics = getThreadsStatistics();
        if (threadsStatistics == null) {
            return NOT_AVAILABLE;
        }
        int value = threadsStatistics.getInt("highwatermark");
        currentThreadsWaiting.set(value);
        return this.currentThreadsWaiting;
    }

    public int getThreadsWaitingHighwatermark() {
        return threadsWaitingHighwatermarkProperty().get();
    }

    public IntegerProperty totalBeansCreatedProperty() {
        if (statistics == null) {
            return NOT_AVAILABLE;
        }
        final JsonObject jsonObject = statistics.getJsonObject("totalbeanscreated");
        int value = jsonObject.getInt("count");
        totalBeansCreated.set(value);
        return totalBeansCreated;
    }

    public int getTotalBeansCreated() {
        return this.totalBeansCreatedProperty().get();
    }

    public IntegerProperty totalBeansDestroyedProperty() {
        if (statistics == null) {
            return NOT_AVAILABLE;
        }
        final JsonObject jsonObject = statistics.getJsonObject("totalbeansdestroyed");
        int value = jsonObject.getInt("count");
        totalBeansDestroyed.set(value);
        return totalBeansDestroyed;
    }

    public int getTotalBeansDestroyed() {
        return this.totalBeansCreatedProperty().get();
    }

    JsonObject getThreadsStatistics() {
        if (statistics == null) {
            return null;
        }
        return statistics.getJsonObject(THREADS_STATISTICS);
    }

    public boolean isValid(){
        return this.getTotalBeansCreated() != -1 && this.getTotalBeansDestroyed() != -1;
    }

}
TOP

Related Classes of org.lightview.business.pool.entity.PoolStatistics

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.