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