public Object getValue(Integer index) throws IOException
    {
        Map<Integer, COSObjectable> numbers = getNumbers();
        if (numbers != null)
        {
            return numbers.get(index);
        }
        Object retval = null;
        List<PDNumberTreeNode> kids = getKids();
        if (kids != null)
        {
            for (int i = 0; i < kids.size() && retval == null; i++)
            {
                PDNumberTreeNode childNode = kids.get(i);
                if (childNode.getLowerLimit().compareTo(index) <= 0 &&
                    childNode.getUpperLimit().compareTo(index) >= 0)
                {
                    retval = childNode.getValue(index);
                }
            }
        }
        else
        {
            LOG.warn("NumberTreeNode does not have \"nums\" nor \"kids\" objects.");
        }
        return retval;
    }
@Test
    void testGetValue() throws IOException
    {
        assertEquals(new PDTest( 51 ), this.node5.getValue( 4 ));
        assertEquals(new PDTest(70), this.node1.getValue( 9 ));
        
        this.node1.setKids( null );
        this.node1.setNumbers( null );
        assertNull( this.node1.getValue( 0 ) );
    }