Vorrei capire a cosa serve il seguente codice(che è parte di un programma)....dei commenti dettagliati mi sarebbero molto utili.

Grazie


codice:
    private class CustomFileFilter extends FileFilter {

        /**

         * Add a new file extension to the filter

         * @param extension a string representing the new file extension

         */

        public void addExtension(String extension) {

            if (extension.startsWith("."))

                extension = "." + extension;



            extensions.add(extension.toLowerCase());

        }



        /**

         * Add a list of new file extensions to the filter

         * @param extensions an array list of strings representing the new file extensions

         */

        public void addExtension(String[] extensions) {

            ArrayList newExtensions = new ArrayList(extensions.length);




            for (int i = 0; i < extensions.length; i++) {

                if (extensions[i].startsWith(".")) {

                    newExtensions.add(i, extensions[i].toLowerCase());

                    continue;

                }



                newExtensions.add(i, "." + extensions[i].toLowerCase());

            }



            this.extensions.addAll(newExtensions);

        }