Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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);

In this method, you perform any processing or parameter injection that you need. The following is an example that adds an extra parameter and lowercases another parameter:

Code Block
titleSampleAdapter.java
borderStylesolid


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;
	}
}



Note

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

Code Block

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