Package org.opensaml.saml.metadata.resolver.impl

# Class TemplateRequestURLBuilder

java.lang.Object
org.opensaml.saml.metadata.resolver.impl.TemplateRequestURLBuilder

All Implemented Interfaces:
  `Function<CriteriaSet,String>`

public class TemplateRequestURLBuilder extends Object implements Function<CriteriaSet,String>
Function which produces a URL by substituting an entity ID value from criteria into a Velocity template string.

The entity ID will be replaced in the template string according to the template variable `entityID`, e.g. "https://metadataservice.com/entity/${entityID}".

The value of the `encodingStyle` parameter determines whether and how the entity ID will be encoded prior to substitution, and accepts an enum value from `TemplateRequestURLBuilder.EncodingStyle`. Legacy deprecated constructors accept an `encoded` parameter, where `true` means `TemplateRequestURLBuilder.EncodingStyle.form` and `false` means `TemplateRequestURLBuilder.EncodingStyle.none`.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static enum`
`TemplateRequestURLBuilder.EncodingStyle`
EntityID Encoding style.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`CONTEXT_KEY_ENTITY_ID`
The Velocity context variable name for the entity ID.
`private TemplateRequestURLBuilder.EncodingStyle`
`entityIDEncodingStyle`
Enum value indicating whether and how to encode the entity ID value before substitution.
`private final org.slf4j.Logger`
`log`
Logger.
`private Template`
`template`
Velocity template instance used to render the request URL.
`private String`
`templateText`
The template text, for logging purposes.
`private Function<String,String>`
`transformer`
Function which transforms the entityID prior to substitution into the template.

## Constructor Summary

Constructors
Constructor
Description
`TemplateRequestURLBuilder(org.apache.velocity.app.VelocityEngine engine, String templateString, TemplateRequestURLBuilder.EncodingStyle encodingStyle)`
Constructor.
`TemplateRequestURLBuilder(org.apache.velocity.app.VelocityEngine engine, String templateString, TemplateRequestURLBuilder.EncodingStyle encodingStyle, Function<String,String> transform)`
Constructor.
`TemplateRequestURLBuilder(org.apache.velocity.app.VelocityEngine engine, String templateString, TemplateRequestURLBuilder.EncodingStyle encodingStyle, Function<String,String> transform, Charset charSet)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`String`
`apply(CriteriaSet criteria)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface java.util.function.Function

`andThen, compose`

## Field Details

### CONTEXT_KEY_ENTITY_ID

@Nonnull @NotEmpty public static final String CONTEXT_KEY_ENTITY_ID
The Velocity context variable name for the entity ID.

See Also:
  - Constant Field Values

### log

@Nonnull private final org.slf4j.Logger log
Logger.

### template

@Nonnull private Template template
Velocity template instance used to render the request URL.

### templateText

@Nonnull private String templateText
The template text, for logging purposes.

### transformer

@Nullable private Function<String,String> transformer
Function which transforms the entityID prior to substitution into the template.

### entityIDEncodingStyle

private TemplateRequestURLBuilder.EncodingStyle entityIDEncodingStyle
Enum value indicating whether and how to encode the entity ID value before substitution.

## Constructor Details

### TemplateRequestURLBuilder

public TemplateRequestURLBuilder(@Nonnull org.apache.velocity.app.VelocityEngine engine, @Nonnull @NotEmpty String templateString, @Nullable TemplateRequestURLBuilder.EncodingStyle encodingStyle)
Constructor.

The template character set will be US ASCII.

Parameters:
  `engine` - the `VelocityEngine` instance to use
  `templateString` - the Velocity template string
  `encodingStyle` - the style for encoding the entity ID prior to substitution, null means `TemplateRequestURLBuilder.EncodingStyle.none`

### TemplateRequestURLBuilder

public TemplateRequestURLBuilder(@Nonnull org.apache.velocity.app.VelocityEngine engine, @Nonnull @NotEmpty String templateString, @Nullable TemplateRequestURLBuilder.EncodingStyle encodingStyle, @Nullable Function<String,String> transform)
Constructor.

The template character set will be US ASCII.

Parameters:
  `engine` - the `VelocityEngine` instance to use
  `templateString` - the Velocity template string
  `transform` - function which transforms the entityID prior to substitution, may be null
  `encodingStyle` - the style for encoding the entity ID prior to substitution, null means `TemplateRequestURLBuilder.EncodingStyle.none`

### TemplateRequestURLBuilder

public TemplateRequestURLBuilder(@Nonnull org.apache.velocity.app.VelocityEngine engine, @Nonnull @NotEmpty String templateString, TemplateRequestURLBuilder.EncodingStyle encodingStyle, @Nullable Function<String,String> transform, @Nullable Charset charSet)
Constructor.

Parameters:
  `engine` - the `VelocityEngine` instance to use
  `templateString` - the Velocity template string
  `encodingStyle` - the style for encoding the entity ID prior to substitution, null means `TemplateRequestURLBuilder.EncodingStyle.none`
  `transform` - function which transforms the entityID prior to substitution, may be null
  `charSet` - character set of the template, may be null

## Method Details

### apply

@Nullable public String apply(@Nullable CriteriaSet criteria)

Specified by:
  `apply` in interface `Function<CriteriaSet,String>`