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

panda.lang.mutable.MutableObject Maven / Gradle / Ivy

Go to download

Panda Core is the core module of Panda Framework, it contains commonly used utility classes similar to apache-commons.

There is a newer version: 1.8.0
Show newest version
package panda.lang.mutable;

import java.io.Serializable;

/**
 * A mutable Object wrapper.
 * 
 * @param  the object type
 */
public class MutableObject implements Mutable, Serializable {

	/**
	 * Required for serialization support.
	 * 
	 * @see java.io.Serializable
	 */
	private static final long serialVersionUID = 86241875189L;

	/** The mutable value. */
	private T value;

	/**
	 * Constructs a new MutableObject with the default value of null.
	 */
	public MutableObject() {
		super();
	}

	/**
	 * Constructs a new MutableObject with the specified value.
	 * 
	 * @param value the initial value to store
	 */
	public MutableObject(T value) {
		super();
		this.value = value;
	}

	// -----------------------------------------------------------------------
	/**
	 * Gets the value.
	 * 
	 * @return the value, may be null
	 */
	public T getValue() {
		return this.value;
	}

	/**
	 * Sets the value.
	 * 
	 * @param value the value to set
	 */
	public void setValue(T value) {
		this.value = value;
	}

	// -----------------------------------------------------------------------
	/**
	 * 

* Compares this object against the specified object. The result is true if and * only if the argument is not null and is a MutableObject object that * contains the same T value as this object. *

* * @param obj the object to compare with, null returns false * @return true if the objects are the same; true if the objects have * equivalent value fields; false otherwise. */ @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (this == obj) { return true; } if (this.getClass() == obj.getClass()) { MutableObject that = (MutableObject)obj; return this.value.equals(that.value); } else { return false; } } /** * Returns the value's hash code or 0 if the value is null. * * @return the value's hash code or 0 if the value is null. */ @Override public int hashCode() { return value == null ? 0 : value.hashCode(); } // ----------------------------------------------------------------------- /** * Returns the String value of this mutable. * * @return the mutable value as a string */ @Override public String toString() { return value == null ? "null" : value.toString(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy