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