Class AbstractFilenameGenerator<T>

  • All Implemented Interfaces:
    FilenameGenerator<T>
    Direct Known Subclasses:
    SuggestedFilenameGenerator

    public abstract class AbstractFilenameGenerator<T>
    extends Object
    implements FilenameGenerator<T>
    Abstract superclass for file names generator implementions that will help with ensuring that a generator creates unique file names. Subclasses may simply call makeUnique(String) to ensure that no duplicate file names are generated.
    Version:
    2.15
    Author:
    Nicklas
    Last modified
    $Date: 2010-01-12 14:21:49 +0100 (ti, 12 jan 2010) $
    • Field Detail

      • generatedFiles

        private Set<String> generatedFiles
    • Constructor Detail

      • AbstractFilenameGenerator

        protected AbstractFilenameGenerator()
    • Method Detail

      • isUnique

        protected boolean isUnique​(String filename)
        Checks if the suggested file name has already been generated by this file name generator or not.
        Parameters:
        filename - The filename to check
        Returns:
        TRUE if the name is unique or FALSE if it has already been used
      • addFilename

        protected boolean addFilename​(String filename)
        Add the file name to the list of already generated file names.
        Parameters:
        filename - The file name to add
        Returns:
        TRUE if the file name has not been used before, FALSE otherwise
      • makeUnique

        protected String makeUnique​(String filename)
        Make sure that a file name is unique. If the suggested file name is already unique the input parameter is returned. Otherwise a new filename is generated by appending a counter value to it until a unique name is found. The counter value is added before any extension. Eg. example.txt, example-2.txt, example-3.txt would be generated if this method was called with "example.txt" as a parameter three times. The returned filename is automatically added to the list of known generated file names.
        Parameters:
        filename - The file name to check
        Returns:
        A file name that is sure to be unique