1: // @author Frank M. Carrano, Timothy M. Henry 2: // @version 5.0 3: public void add(int givenPosition, T newEntry) 4: { 5: if ((givenPosition >= 1) && (givenPosition <= numberOfEntries + 1)) 6: { 7: Node newNode = new Node(newEntry); 8: if (givenPosition == 1) // Case 1 9: { 10: newNode.setNextNode(firstNode); 11: firstNode = newNode; 12: } 13: else // Case 2: list is not empty 14: { // and givenPosition > 1 15: Node nodeBefore = getNodeAt(givenPosition - 1); 16: Node nodeAfter = nodeBefore.getNextNode(); 17: newNode.setNextNode(nodeAfter); 18: nodeBefore.setNextNode(newNode); 19: } // end if 20: numberOfEntries++; 21: } 22: else 23: throw new IndexOutOfBoundsException( 24: "Illegal position given to add operation."); 25: } // end add