Files
alfresco-community-repo/source/java/org/alfresco/opencmis/CMISDispatcherRegistryImpl.java
Raluca Munteanu 386a4aca06 Merged 5.1.N (5.1.2) to 5.2.N (5.2.1)
125605 rmunteanu: Merged 5.1.1 (5.1.1) to 5.1.N (5.1.2)
      125498 slanglois: MNT-16155 Update source headers - remove svn:eol-style property on Java and JSP source files


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@125783 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2016-04-26 13:03:25 +00:00

59 lines
1.4 KiB
Java

package org.alfresco.opencmis;
import java.util.HashMap;
import java.util.Map;
import org.springframework.extensions.webscripts.Match;
import org.springframework.extensions.webscripts.WebScriptRequest;
/**
* A registry of OpenCMIS bindings to dispatchers.
*
* @author steveglover
*
*/
public class CMISDispatcherRegistryImpl implements CMISDispatcherRegistry
{
private Map<Endpoint, CMISDispatcher> registry = new HashMap<Endpoint, CMISDispatcher>();
@Override
public void registerDispatcher(Endpoint endpoint, CMISDispatcher dispatcher)
{
registry.put(endpoint, dispatcher);
}
@Override
public CMISDispatcher getDispatcher(WebScriptRequest req)
{
CMISDispatcher dispatcher = null;
Match match = req.getServiceMatch();
Map<String, String> templateVars = match.getTemplateVars();
String bindingStr = templateVars.get("binding");
String apiVersion = templateVars.get("apiVersion");
if(bindingStr != null && apiVersion != null)
{
Binding binding = null;
try
{
binding = Binding.valueOf(bindingStr);
}
catch(IllegalArgumentException e)
{
// nothing to do, binding remains null
}
if(binding != null)
{
Endpoint endpoint = new Endpoint(binding, apiVersion);
dispatcher = registry.get(endpoint);
}
else
{
// TODO
}
}
return dispatcher;
}
}