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