From 53936c7ee6654a525075b03e1b4c8ddbfbcd4ef5 Mon Sep 17 00:00:00 2001 From: Gerald Barker Date: Fri, 2 Sep 2011 23:19:51 +0100 Subject: First commit of Apache Commons String & Date functions and required, and refactor of code to use them. --- .../commons/lang3/mutable/MutableObject.java | 126 +++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 src/org/apache/commons/lang3/mutable/MutableObject.java (limited to 'src/org/apache/commons/lang3/mutable/MutableObject.java') diff --git a/src/org/apache/commons/lang3/mutable/MutableObject.java b/src/org/apache/commons/lang3/mutable/MutableObject.java new file mode 100644 index 0000000..74c4f35 --- /dev/null +++ b/src/org/apache/commons/lang3/mutable/MutableObject.java @@ -0,0 +1,126 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.commons.lang3.mutable; + +import java.io.Serializable; + +/** + * A mutable Object wrapper. + * + * @since 2.1 + * @version $Id: MutableObject.java 1088899 2011-04-05 05:31:27Z bayard $ + */ +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(); + } + +} -- cgit v1.1