FastXmlBlockOfNodes getBlock(int nodeNum, boolean create) { if (nodeNum < 0) return null; // Find the right array FastXmlBlockOfNodes block = this; while (nodeNum >= SIZE) { if (block.next == null) { if (!create) return null; // Extend the list of arrays block.next = new FastXmlBlockOfNodes(this.firstNodeNum + SIZE); } // Look in the next list block = block.next; nodeNum -= SIZE; } return block; }