Class SetTiledWmsProcessor

All Implemented Interfaces:
ConfigurationObject, Processor<SetTiledWmsProcessor.Input,Void>

public class SetTiledWmsProcessor extends AbstractProcessor<SetTiledWmsProcessor.Input,Void>
Processor that transforms WMS layers that are too big into tiled WMS layers.

This processor will reduce the given max tile size to best match the dimensions of the map. This is to reduce the amount of extra data that is fetched from the WMS server.

  • Field Details

    • matchers

      protected final UriMatchers matchers
      The matchers that chooses if the processor is applied or not.
  • Constructor Details

    • SetTiledWmsProcessor

      protected SetTiledWmsProcessor()
      Constructor.
  • Method Details

    • createInputParameter

      public final SetTiledWmsProcessor.Input createInputParameter()
      Description copied from interface: Processor
      Returns a new/clean instance of a parameter object. This instance's will be inspected using reflection to find its public fields and the properties will be set from the Values object.

      The way the properties will be looked up is to

      1. take the bean property name
      2. map it using the input mapper, (if the input mapper does not have a mapping for the property then the unmapped property name is used)
      3. Look up the property value in the Values object using the mapped property name
      4. set the value on the instance created by this method. If the value is null an exception will be thrown UNLESS the HasDefaultValue annotation is on the field for the property.
      The populated instance will be passed to the execute method. It is imperative that a new instance is created each time because they will be used in a multi-threaded environment and thus the same processor instance may be ran in multiple threads with different instances of the parameter object.

      It is important to realize that super classes will also be analyzed, so care must be had with inheritance.

    • execute

      public final Void execute(SetTiledWmsProcessor.Input values, Processor.ExecutionContext context) throws Exception
      Description copied from interface: Processor
      Perform the process on the input attributes.
      Parameters:
      values - A Java object whose public fields are populated from the Values object (which is used for transferring properties between processors).
      context - The execution context for a print task.
      Returns:
      A Java object whose public fields will be put into the Values object. The key in the Values object is the name of the field or if there is a mapping in the Processor.getOutputMapperBiMap() map, the mapped name. The key is determined in a similar way as for the input object.
      Throws:
      Exception
    • extraValidation

      protected final void extraValidation(List<Throwable> validationErrors, Configuration configuration)
      Description copied from class: AbstractProcessor
      Perform any extra validation a subclass may need to perform.
      Specified by:
      extraValidation in class AbstractProcessor<SetTiledWmsProcessor.Input,Void>
      Parameters:
      validationErrors - a list to add errors to so that all validation errors are reported as one.
      configuration - the containing configuration
    • setMaxWidth

      public void setMaxWidth(int maxWidth)
      Set the maximum width in pixels.
      Parameters:
      maxWidth - the value
    • setMaxHeight

      public void setMaxHeight(int maxHeight)
      Set the maximum height in pixels.
      Parameters:
      maxHeight - the value
    • setMatchers

      public final void setMatchers(List<? extends URIMatcher> matchers)
      The matchers used to select the WMS urls that are going to be modified by the processor. For example:
      
       - !restrictUris
         matchers:
           - !dnsMatch
             host: labs.metacarta.com
             port: 80
       
      Parameters:
      matchers - the list of matcher to use to check if a url is permitted
    • setTileBufferWidth

      public void setTileBufferWidth(int tileBufferWidth)
      Set the left and right buffer for fetching tiles in pixels.
      Parameters:
      tileBufferWidth - the tileBufferWidth to set
    • setTileBufferHeight

      public void setTileBufferHeight(int tileBufferHeight)
      Set the top and bottom buffer for fetching tiles in pixels.
      Parameters:
      tileBufferHeight - the tileBufferHeight to set