commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From scolebou...@apache.org
Subject cvs commit: jakarta-commons/lang/src/java/org/apache/commons/lang/mutable MutableObject.java
Date Thu, 08 Jul 2004 00:02:35 GMT
scolebourne    2004/07/07 17:02:35

  Modified:    lang/src/test/org/apache/commons/lang/mutable
                        MutableTestSuite.java
  Added:       lang/src/test/org/apache/commons/lang/mutable
                        MutableObjectTest.java
               lang/src/java/org/apache/commons/lang/mutable
                        MutableObject.java
  Log:
  Add MutableObject
  
  Revision  Changes    Path
  1.4       +2 -1      jakarta-commons/lang/src/test/org/apache/commons/lang/mutable/MutableTestSuite.java
  
  Index: MutableTestSuite.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/lang/src/test/org/apache/commons/lang/mutable/MutableTestSuite.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- MutableTestSuite.java	7 Jul 2004 23:50:28 -0000	1.3
  +++ MutableTestSuite.java	8 Jul 2004 00:02:35 -0000	1.4
  @@ -39,6 +39,7 @@
           suite.addTest(MutableLongTest.suite());
           suite.addTest(MutableFloatTest.suite());
           suite.addTest(MutableDoubleTest.suite());
  +        suite.addTest(MutableObjectTest.suite());
   
           return suite;
       }
  
  
  
  1.1                  jakarta-commons/lang/src/test/org/apache/commons/lang/mutable/MutableObjectTest.java
  
  Index: MutableObjectTest.java
  ===================================================================
  /*
   * Copyright 2002-2004 The Apache Software Foundation.
   * 
   * Licensed 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.lang.mutable;
  
  import junit.framework.Test;
  import junit.framework.TestCase;
  import junit.framework.TestSuite;
  import junit.textui.TestRunner;
  
  /**
   * JUnit tests.
   * 
   * @version $Id: MutableObjectTest.java,v 1.1 2004/07/08 00:02:35 scolebourne Exp $
   * @see MutableShort
   */
  public class MutableObjectTest extends TestCase {
  
      public MutableObjectTest(String testName) {
          super(testName);
      }
  
      public static void main(String[] args) {
          TestRunner.run(suite());
      }
  
      public static Test suite() {
          return new TestSuite(MutableObjectTest.class);
      }
  
      // ----------------------------------------------------------------
      public void testConstructors() {
          assertEquals(null, new MutableObject().getValue());
          
          Integer i = new Integer(6);
          assertSame(i, new MutableObject(i).getValue());
          assertSame("HI", new MutableObject("HI").getValue());
          assertSame(null, new MutableObject(null).getValue());
      }
  
      public void testGetSet() {
          final MutableObject mutNum = new MutableObject();
          assertEquals(null, new MutableObject().getValue());
          
          mutNum.setValue("HELLO");
          assertSame("HELLO", mutNum.getValue());
          
          mutNum.setValue(null);
          assertSame(null, mutNum.getValue());
      }
  
      public void testEquals() {
          final MutableObject mutNumA = new MutableObject("ALPHA");
          final MutableObject mutNumB = new MutableObject("ALPHA");
          final MutableObject mutNumC = new MutableObject("BETA");
          final MutableObject mutNumD = new MutableObject(null);
  
          assertEquals(true, mutNumA.equals(mutNumA));
          assertEquals(true, mutNumA.equals(mutNumB));
          assertEquals(true, mutNumB.equals(mutNumA));
          assertEquals(true, mutNumB.equals(mutNumB));
          assertEquals(false, mutNumA.equals(mutNumC));
          assertEquals(false, mutNumB.equals(mutNumC));
          assertEquals(true, mutNumC.equals(mutNumC));
          assertEquals(false, mutNumA.equals(mutNumD));
          assertEquals(true, mutNumD.equals(mutNumD));
          
          assertEquals(false, mutNumA.equals(null));
          assertEquals(false, mutNumA.equals(new Object()));
          assertEquals(false, mutNumA.equals("0"));
      }
  
      public void testHashCode() {
          final MutableObject mutNumA = new MutableObject("ALPHA");
          final MutableObject mutNumB = new MutableObject("ALPHA");
          final MutableObject mutNumC = new MutableObject("BETA");
          final MutableObject mutNumD = new MutableObject(null);
  
          assertEquals(true, mutNumA.hashCode() == mutNumA.hashCode());
          assertEquals(true, mutNumA.hashCode() == mutNumB.hashCode());
          assertEquals(false, mutNumA.hashCode() == mutNumC.hashCode());
          assertEquals(false, mutNumA.hashCode() == mutNumD.hashCode());
          assertEquals(true, mutNumA.hashCode() == "ALPHA".hashCode());
          assertEquals(0, mutNumD.hashCode());
      }
  
      public void testToString() {
          assertEquals("HI", new MutableObject("HI").toString());
          assertEquals("10.0", new MutableObject(new Double(10)).toString());
      }
  
  }
  
  
  
  1.1                  jakarta-commons/lang/src/java/org/apache/commons/lang/mutable/MutableObject.java
  
  Index: MutableObject.java
  ===================================================================
  /*
   * Copyright 2004 The Apache Software Foundation.
   * 
   * Licensed 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.lang.mutable;
  
  import java.io.Serializable;
  
  /**
   * A mutable <code>Object</code>.
   * 
   * @since 2.1
   * @version $Id: MutableObject.java,v 1.1 2004/07/08 00:02:35 scolebourne Exp $
   */
  public class MutableObject
          implements Mutable, Serializable {
  
      /** Serialization lock. */
      private static final long serialVersionUID = 86241875189L;
  
      /** The mutable value. */
      private Object value;
  
      /**
       * Constructs a new MutableObject with the default value of null.
       */
      public MutableObject() {
          super();
      }
  
      /**
       * Constructs a new MutableObject with the specified value.
       * 
       * @param value a value.
       */
      public MutableObject(Object value) {
          super();
          this.value = value;
      }
  
      //-----------------------------------------------------------------------
      /**
       * Gets the value.
       * 
       * @return the value
       */
      public Object getValue() {
          return this.value;
      }
  
      /**
       * Sets the value.
       * 
       * @param value  the value to set
       */
      public void setValue(Object value) {
          this.value = value;;
      }
  
      //-----------------------------------------------------------------------
      /**
       * Checks if this object equals the specified object.
       * <p>
       * The object must be a MutableObject with an equal value to be equal.
       *
       * @param obj  the object to compare to
       * @return true if equal
       */
      public boolean equals(Object obj) {
          if (obj instanceof MutableObject) {
              Object other = ((MutableObject) obj).value;
              return (value == other || (value != null && value.equals(other)));
          }
          return false;
      }
  
      /**
       * Returns a suitable hashcode for this mutable.
       *
       * @return a suitable hashcode
       */
      public int hashCode() {
          return (value == null ? 0 : value.hashCode());
      }
  
      /**
       * Returns the String value of this mutable.
       *
       * @return the mutable value as a string
       */
      public String toString() {
          return (value == null ? "null" : value.toString());
      }
  
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message