1: // Doubles the size of the array queue if it is full. 2: // Precondition: checkIntegrity has been called. 3: // @author Frank M. Carrano, Timothy M. Henry 4: // @version 5.0 5: private void ensureCapacity() 6: { 7: if (frontIndex == ((backIndex + 2) % queue.length)) // If array is full, 8: { // double size of array 9: T[] oldQueue = queue; 10: int oldSize = oldQueue.length; 11: int newSize = 2 * oldSize; 12: checkCapacity(newSize); 13: integrityOK = false; 15: // The cast is safe because the new array contains null entries 16: @SuppressWarnings("unchecked") 17: T[] tempQueue = (T[]) new Object[newSize]; 18: queue = tempQueue; 19: for (int index = 0; index < oldSize - 1; index++) 20: { 21: queue[index] = oldQueue[frontIndex]; 22: frontIndex = (frontIndex + 1) % oldSize; 23: } // end for 24: 25: frontIndex = 0; 26: backIndex = oldSize - 2; 27: integrityOK = true; 28: } // end if 29: } // end ensureCapacity