A {@link VarExploder} is invoked when an explode modifier "*" is encountered withina variable name within a URI expression expression and the replacement value is a complex type, such a some type of POJO or other data type. For most use cases, the {@link DefaultVarExploder} will be sufficient. Please refer to the {@link DefaultVarExploder} JavaDocfor more details on how it works.
Should the {@link DefaultVarExploder} not be suitable for your needs, custom {@link VarExploder}implementations can be added by rolling your own implementation. A custom {@link VarExploder} implementation can be registered in one of two ways. By wrapping your object in your {@link VarExploder}:
UriTemplate.fromExpression("/mapper{?address*}").set("address", new MyCustomVarExploder(address)).expand();
Note: {@link VarExploder} implementations are ONLY invoked when the explode modifier "*" is declared in the URI Template expression. If the variable declaration does not specify the explode modifier, a {@link VariableExpansionException} will be raised.
Please see the unit test on example usage of a custom {@link VarExploder}.
@author
Ryan J. McDonough
@version $Revision: 1.1 $
@since 1.0