001 package edu.rice.cs.cunit.util;
002
003 /**
004 * Mutable reference.
005 * @author Mathias Ricken
006 */
007 public class Ref<O> {
008 private O _o;
009
010 public Ref() {
011 }
012
013 public Ref(O o) {
014 _o = o;
015 }
016
017 public O get() {
018 return _o;
019 }
020
021 public void set(O o) {
022 _o = o;
023 }
024
025 public boolean equals(Object o) {
026 if (this == o) {
027 return true;
028 }
029 if (o == null || getClass() != o.getClass()) {
030 return false;
031 }
032
033 Ref ref = (Ref)o;
034
035 if (_o != null ? !_o.equals(ref._o) : ref._o != null) {
036 return false;
037 }
038
039 return true;
040 }
041
042 public int hashCode() {
043 return (_o != null ? _o.hashCode() : 0);
044 }
045 }