Class ServletMapPrinterFactory

java.lang.Object
org.mapfish.print.servlet.ServletMapPrinterFactory
All Implemented Interfaces:
MapPrinterFactory

public class ServletMapPrinterFactory extends Object implements MapPrinterFactory
A MapPrinterFactory that reads configuration from files and uses servlet's methods for resolving the paths to the files.
  • Field Details

    • DEFAULT_CONFIGURATION_FILE_KEY

      @Nonnull public static final String DEFAULT_CONFIGURATION_FILE_KEY
      The name of the default app. This is always required to be one of the apps that are registered.
      See Also:
  • Constructor Details

    • ServletMapPrinterFactory

      public ServletMapPrinterFactory()
  • Method Details

    • create

      public final MapPrinter create(@Nullable String app) throws NoSuchAppException
      Description copied from interface: MapPrinterFactory
      Creates the appropriate map printer.
      Specified by:
      create in interface MapPrinterFactory
      Parameters:
      app - an identifier that controls which configuration to use.
      Throws:
      NoSuchAppException
    • getAppIds

      public final Set<String> getAppIds()
      Description copied from interface: MapPrinterFactory
      Return the set of app ids that are available.
      Specified by:
      getAppIds in interface MapPrinterFactory
    • setConfigurationFiles

      public final void setConfigurationFiles(Map<String,String> configurationFiles) throws URISyntaxException
      The setter for setting configuration file. It will convert the value to a URI.
      Parameters:
      configurationFiles - the configuration file map.
      Throws:
      URISyntaxException
    • setAppsRootDirectory

      public final void setAppsRootDirectory(String directory) throws URISyntaxException, IOException
      Set a single directory that contains one or more subdirectories, each one that contains a config.yaml file will be considered a print app.

      This can be called multiple times and each directory will add to the apps found in the other directories. However the appId is based on the directory names so if there are 2 directories with the same name the second will overwrite the first encounter.

      Parameters:
      directory - the root directory containing the sub-app-directories. This must resolve to a file with the
      Throws:
      URISyntaxException
      IOException