1: // @author Frank M. Carrano, Timothy M. Henry
2: // @version 5.0
4: protected final Node getFirstNode()
5: {
6: return firstNode;
7: } // end getFirstNode
9: /** Adds a node to the beginning of a chain. */
10: protected final void addFirstNode(Node theNode)
11: {
12: // Assertion: theNode != null
13: theNode.setNextNode(firstNode);
14: firstNode = theNode;
15: numberOfEntries++;
16: } // end addFirstNode
18: /** Adds a node to a chain after a given node. */
19: protected final void addAfterNode(Node nodeBefore, Node theNode)
21: /** Removes a chain’s first node. */
22: protected final T removeFirstNode()
24: /** Removes the node after a given one. */
25: protected final T removeAfterNode(Node nodeBefore)
27: public T remove(int givenPosition)
28: {
29: T result = null;
31: if ((givenPosition >= 1) && (givenPosition <= getLength()))
32: {
33: // Assertion: The list is not empty
34: if (givenPosition == 1) // Case 1: Remove first entry
35: result = removeFirstNode();
36: else // Case 2: givenPosition > 1
37: {
38: Node nodeBefore = getNodeAt(givenPosition - 1);
39: result = removeAfterNode(nodeBefore);
40: } // end if
41: return result; // Return removed entry
42: }
43: else
44: throw new IndexOutOfBoundsException("Illegal position given to remove operation.");
45: } // end remove