AbstractFormDefinitionImportService

public abstract class AbstractFormDefinitionImportService implements FormDefinitionImportService

Parent class for all FormDefinitionImportService implementations. Contains the template and hook methods for importing form definitions.

Fields

FORM_LIST_PATH

protected static final String FORM_LIST_PATH

Constructors

AbstractFormDefinitionImportService

public AbstractFormDefinitionImportService(HttpClientBuilderFactory httpClientBuilderFactory, TasksService tasksService, FormDefinitionService formDefinitionService)

Methods

generateBasicAuthHeader

protected Header generateBasicAuthHeader(HttpUriRequest request, Configuration configuration)

getClient

protected HttpClient getClient()

getFormUrls

protected List<String> getFormUrls(Configuration configuration)

Hook method that may be overridden by an implementing subclass. Makes an HTTP request to the external application and returns a list of URLs for the form definitions.

Parameters:
Throws:
Returns:

A list of strings containing the URLs for each form definition.

getXmlFormDefinitions

protected List<String> getXmlFormDefinitions(List<String> formUrls, Configuration configuration)

Hook method that may be overriden by an implementing subclass. For each URL in the list of URLs, this makes an HTTP request to the external application to fetch an XML form definition. This returns a list of XML form definitions.

Parameters:
  • formUrls – A list of URLs for each form definition.
  • configurationConfiguration
Throws:
  • IOException – If any of the HTTP requests fail.
Returns:

A list of XML form definitions represented as a list of strings.

importForms

public ImportStatus importForms(Configuration config)

Template method for importing form definitions.

Parameters:
Returns:

ImportStatus

modifyFormDefinitionForImplementation

protected abstract void modifyFormDefinitionForImplementation(List<FormDefinition> formDefinitions)

Hook method that must be overridden by an implementing subclass. Modifies the form definition based on application specific details

Parameters:
  • formDefinitions – A list of form definitions associated with a configuration.

parseToUrlList

protected abstract List<String> parseToUrlList(String responseBody)

Hook method that must be overridden by an implementing subclass. Parses the response from the application and returns a list of strings representing the URLs for each form definition.

Parameters:
  • responseBody
Throws:

parseXmlFormDefinitions

protected List<FormDefinition> parseXmlFormDefinitions(List<String> xmlFormDefinitions, Configuration configuration)

Hook method that may be overridden by an implementing subclass. Parses a list of XML form definitions and returns a list of FormDefinition

Parameters:
  • xmlFormDefinitions – a List of XML form definitions
  • configuration – The Configuration associated with the form defintions
Throws:
Returns:

A list of FormDefinition