Class FileGenerator

java.lang.Object
org.instancio.internal.generator.AbstractGenerator<File>
org.instancio.internal.generator.io.FileGenerator
All Implemented Interfaces:
AsStringGeneratorSpec<File>, Generator<File>, GeneratorSpec<File>, PathGeneratorSpec<File>

public class FileGenerator extends AbstractGenerator<File> implements PathGeneratorSpec<File>
  • Constructor Details

  • Method Details

    • apiMethod

      public String apiMethod()
      Description copied from class: AbstractGenerator
      Returns the public API method name of the generator spec. The returned name is used for reporting validation errors.
      Specified by:
      apiMethod in class AbstractGenerator<File>
      Returns:
      spec name if defined, or null otherwise
    • tmp

      public PathGeneratorSpec<File> tmp()
      Description copied from interface: PathGeneratorSpec
      Generate path with java.io.tmpdir as the parent directory.
      Specified by:
      tmp in interface PathGeneratorSpec<File>
      Returns:
      spec builder
    • prefix

      public PathGeneratorSpec<File> prefix(String prefix)
      Description copied from interface: PathGeneratorSpec
      File or directory name prefix. No prefix is added by default.
      Specified by:
      prefix in interface PathGeneratorSpec<File>
      Parameters:
      prefix - to add to the file or directory name
      Returns:
      spec builder
    • suffix

      public PathGeneratorSpec<File> suffix(String suffix)
      Description copied from interface: PathGeneratorSpec
      File or directory name suffix. No suffix is added by default.
      Specified by:
      suffix in interface PathGeneratorSpec<File>
      Parameters:
      suffix - to add to the file or directory name
      Returns:
      spec builder
    • name

      public PathGeneratorSpec<File> name(Generator<String> nameGenerator)
      Description copied from interface: PathGeneratorSpec
      Generator for the file or directory name.

      Generated path names are formed using the following elements:

           [prefix][name][suffix]
       
      • Prefix and suffix are optional and are null by default.
      • If no generator is supplied using this method, a random 16-character lowercase name will be generated.
      • The concatenation of prefix, name, and suffix must not be blank.

      Example:

      
       List<Path> paths = Instancio.ofList(Path.class)
               .generate(all(Path.class), gen -> gen.nio().path()
                       .prefix("queued_")
                       .name(random -> random.alphanumeric(8))
                       .suffix(".csv"))
               .create();
      
       // Sample paths: queued_t5LG4AUw.csv, queued_o0nBWkej.csv, etc
       
      Specified by:
      name in interface PathGeneratorSpec<File>
      Parameters:
      nameGenerator - for generating the name
      Returns:
      spec builder
    • createFile

      public PathGeneratorSpec<File> createFile(InputStream content)
      Description copied from interface: PathGeneratorSpec
      Terminal method to indicate that the generated path, including parent directories (if any), should be created as a file in the file system and content provided by the input stream written to the file.

      If the file already exists, then no action will be taken.

      Specified by:
      createFile in interface PathGeneratorSpec<File>
      Parameters:
      content - to write to the file
      Returns:
      completed spec with no further methods
      See Also:
    • createFile

      public GeneratorSpec<File> createFile()
      Description copied from interface: PathGeneratorSpec
      Terminal method to indicate that the generated path, including parent directories (if any), should be created as a file in the file system.

      If the file already exists, then no action will be taken.

      Specified by:
      createFile in interface PathGeneratorSpec<File>
      Returns:
      completed spec with no further methods
      See Also:
    • createDirectory

      public GeneratorSpec<File> createDirectory()
      Description copied from interface: PathGeneratorSpec
      Terminal method to indicate that the generated path, including parent directories (if any), should be created as a directory in the file system.

      If the directory already exists, then no action will be taken.

      Specified by:
      createDirectory in interface PathGeneratorSpec<File>
      Returns:
      completed spec with no further methods
      See Also:
    • generate

      public File generate(Random random)
      Description copied from interface: Generator
      Returns a generated value.

      If this method produces random data, the data needs to be generated using the provided Random instance. This ensures generated values are reproducible for a given seed value.

      Specified by:
      generate in interface Generator<File>
      Parameters:
      random - provider for generating random values
      Returns:
      generated value or null if value is nullable, could not be generated, or generation is delegated to the engine