/*
* (c) Copyright Reserved EVRYTHNG Limited 2016. All rights reserved.
* Use of this material is subject to license.
* Copying and unauthorised use of this material strictly prohibited.
*/
package com.evrythng.commons;
/**
* Class that holds a value. Useful for passing arguments by reference.
*
* @author Michel Yerly (my)
**/
public final class Ref<T> {
private T obj = null;
/**
* Creates an instance that holds the null value.
*/
public Ref() {
}
/**
* Creates an instance that holds the specified value.
*/
public Ref(final T obj) {
this.obj = obj;
}
/**
* Gets the value held.
*/
public final T get() {
return obj;
}
/**
* Sets the value to hold.
*/
public final void set(final T obj) {
this.obj = obj;
}
/**
* Null-safe setter.
*/
public static <T> void set(Ref<T> ref, T obj) {
if (ref != null) {
ref.set(obj);
}
}
}