Source of J9.15.java


  1: // @author Frank M. Carrano, Timothy M. Henry
  2: // @version 5.0

  4: public Object clone()
  5: {
  6:    LList<T> theCopy = null;
  7:    try
  8:    {
  9:       @SuppressWarnings("unchecked")
 10:       LList<T> temp = (LList<T>)super.clone();
 11:       theCopy = temp;
 12:    }
 13:    catch (CloneNotSupportedException e)
 14:    {
 15:       throw new Error(e.toString());
 16:    }
 17:    // Copy underlying chain of nodes
 18:    if (firstNode == null) // If chain is empty
 19:    {
 20:       theCopy.firstNode = null;
 21:    }
 22:    else
 23:    {
 24:       // Make a copy of the first node
 25:       @SuppressWarnings("unchecked")
 26:       Node temp = (Node)firstNode.clone();
 27:       theCopy.firstNode = temp;

 29:       // Make a copy of the rest of chain
 30:       Node newRef = theCopy.firstNode;
 31:       Node oldRef = firstNode.getNextNode();
 32:       for (int count = 2; count <= numberOfEntries; count++)
 33:       {
 34:          // Clone node and its data; link clone to new chain
 35:          @SuppressWarnings("unchecked")
 36:          Node temp2 = (Node)oldRef.clone();
 37:          newRef.setNextNode(temp2);
 38:          newRef = newRef.getNextNode();
 39:          oldRef = oldRef.getNextNode();
 40:       } // end for
 41:    } // end if

 43:    return theCopy;
 44: } // end clone