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