Basic LTI Portlet - Creating a new adapter

Creating a new adapter

Adapters are trivial to create, however you will need to modify the portlet source to do so. We made this as straightforward as possible.

Create a class that extends au.edu.anu.portal.portlets.basiclti.adapters.AbstractAdapter

You then need to provide an implementation for a single method:

public Map<String,String> processLaunchData(Map<String,String> params);

This method is passed the raw Map of launch data that contains user information as well as the launch data that you setup when configuring the portlet.

In this method, you perform any additional processing or parameter injection that you need. You then add in the default set of parameters by making a call to the superclass. The following is an example that conditionally adds an extra parameter based on some data already in the launch data map, lowercases another parameter, adds the default set of parameters and returns:

SampleAdapter.java
public class SampleAdapter extends AbstractAdapter {

	@Override
	public Map<String, String> processLaunchData(Map<String, String> params) {

		log.debug("SampleAdapter.processLaunchData() called");

		//lowercase a parameter
		params.put("user_id", StringUtils.lowerCase(params.get("user_id")));

		//conditionally add new parameter
		if(Boolean.parseBoolean(params.get("some_boolean_param"))) {
			params.put("my_param", "My Special Parameter");
		}

		//add defaults
		params.putAll(super.getDefaultParameters());

		return params;
	}
}



You must include the following at the end of any logic you perform:

params.putAll(super.getDefaultParameters());