class UserParamInputParametersProvider extends AbstractInputParametersProvider<Map<String, Object>> {

    @Override
    public InputParameter getInputParameter(final Map<String, Object> userParams) {
        if (userParams != null) {
            final InputParameter inputParameter = new InputParameter();
            final Object additionalParams = userParams.get(ADDITIONAL_PARAMS);

            if (additionalParams instanceof String) {
                inputParameter.setAdditionalParams(parseAdditionalParameters(additionalParams.toString()));
            }

            final Object extVirtualLinks = userParams.get(EXT_VIRTUAL_LINKS);
            if (extVirtualLinks instanceof String) {
                inputParameter.setExtVirtualLinks(parseExternalVirtualLinks(extVirtualLinks.toString()));
            }
            LOGGER.info("InputParameter found in userParams : {}", inputParameter);
            return inputParameter;
        }
        LOGGER.warn("No input parameters found ...");
        return NullInputParameter.NULL_INSTANCE;
    }

}