@Override
    public void setValue(String value) throws IOException
    {
        checkValue(value);
        
        // if there are export values/an Opt entry there is a different 
        // approach to setting the value
        if (!getExportValues().isEmpty())
        {
            updateByOption(value);
        }
        else
        {
            updateByValue(value);
        }
        
        applyChange();
    }
@Test
    void testRadioButtonWithOptions()
    {
        File file = new File(TARGET_PDF_DIR, "PDFBOX-3656.pdf");
        
        try (PDDocument pdfDocument = Loader.loadPDF(file))
        {   
            PDRadioButton radioButton = (PDRadioButton) pdfDocument.getDocumentCatalog().getAcroForm().getField("Checking/Savings");
            radioButton.setValue("Off");
            radioButton.getWidgets().forEach(widget ->
                assertEquals(COSName.Off, widget.getCOSObject().getItem(COSName.AS),
                        "The widget should be set to Off"));
        }
        catch (IOException e)
        {
            fail("Unexpected IOException " + e.getMessage());
        }
    }