public void add(int newPosition, T newEntry)
{
   if ((newPosition >= 1) && (newPosition <= numberOfEntries + 1))
   {
      Node newNode = new Node(newEntry);
      if (isEmpty())
      {
         firstNode = newNode;
         lastNode = newNode;
      }
      else if (newPosition == 1)
      {
         newNode.setNextNode(firstNode);
         firstNode = newNode;
      }
      else if (newPosition == numberOfEntries + 1)
      {
         lastNode.setNextNode(newNode);
         lastNode = newNode;
      }
      else
      {
         Node nodeBefore = getNodeAt(newPosition - 1);
         Node nodeAfter = nodeBefore.getNextNode();
         newNode.setNextNode(nodeAfter);
         nodeBefore.setNextNode(newNode);
      } // end if
      numberOfEntries++;
   }
   else
      throw new IndexOutOfBoundsException(
                "Illegal position given to add operation.");
} // end add
// Version 4.0
