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

org.jsoftware.utils.Holder Maven / Gradle / Ivy

The newest version!
package org.jsoftware.utils;

import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

/**
 * Holds an Object
 * @author m-szalik
 */
public final class Holder {
    private final Lock writeLock = new ReentrantLock();
    private volatile T object;

    public Holder() {
    }

    public Holder(T object) {
        this();
        this.object = object;
    }

    public T get() {
        return this.object;
    }

    public T set(T object) {
        writeLock.lock();
        T old = this.object;
        this.object = object;
        writeLock.unlock();
        return old;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy