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 (isEmpty())
7: {
8: firstNode = newNode;
9: lastNode = newNode;
10: }
11: else if (newPosition == 1)
12: {
13: newNode.setNextNode(firstNode);
14: firstNode = newNode;
15: }
16: else if (newPosition == numberOfEntries + 1)
17: {
18: lastNode.setNextNode(newNode);
19: lastNode = newNode;
20: }
21: else
22: {
23: Node nodeBefore = getNodeAt(newPosition - 1);
24: Node nodeAfter = nodeBefore.getNextNode();
25: newNode.setNextNode(nodeAfter);
26: nodeBefore.setNextNode(newNode);
27: } // end if
28: numberOfEntries++;
29: }
30: else
31: throw new IndexOutOfBoundsException(
32: "Illegal position given to add operation.");
33: } // end add
34: // Version 4.0