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    }