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