class PdfDeveloperExtension {

    /**
     * An instance of this class for Adobe 1.7 Extension level 3.
     */
    public static final PdfDeveloperExtension ADOBE_1_7_EXTENSIONLEVEL3 =
            new PdfDeveloperExtension(PdfName.ADBE, PdfWriter.PDF_VERSION_1_7, 3);

    /**
     * The prefix used in the Extensions dictionary added to the Catalog.
     */
    protected PdfName prefix;
    /**
     * The base version.
     */
    protected PdfName baseversion;
    /**
     * The extension level within the baseversion.
     */
    protected int extensionLevel;

    /**
     * Creates a PdfDeveloperExtension object.
     *
     * @param prefix         the prefix referring to the developer
     * @param baseversion    the number of the base version
     * @param extensionLevel the extension level within the baseverion.
     */
    public PdfDeveloperExtension(PdfName prefix, PdfName baseversion, int extensionLevel) {
        this.prefix = prefix;
        this.baseversion = baseversion;
        this.extensionLevel = extensionLevel;
    }

    /**
     * Gets the prefix name.
     *
     * @return a PdfName
     */
    public PdfName getPrefix() {
        return prefix;
    }

    /**
     * Gets the baseversion name.
     *
     * @return a PdfName
     */
    public PdfName getBaseversion() {
        return baseversion;
    }

    /**
     * Gets the extension level within the baseversion.
     *
     * @return an integer
     */
    public int getExtensionLevel() {
        return extensionLevel;
    }

    /**
     * Generations the developer extension dictionary corresponding with the prefix.
     *
     * @return a PdfDictionary
     */
    public PdfDictionary getDeveloperExtensions() {<FILL_FUNCTION_BODY>}
}

        PdfDictionary developerextensions = new PdfDictionary();
        developerextensions.put(PdfName.BASEVERSION, baseversion);
        developerextensions.put(PdfName.EXTENSIONLEVEL, new PdfNumber(extensionLevel));
        return developerextensions;
    
<no_super_class>