org.apache.abdera.protocol.server.impl
Class RegexTargetResolver
java.lang.Object
org.apache.abdera.protocol.server.impl.RegexTargetResolver
- All Implemented Interfaces:
- Resolver<Target>
public class RegexTargetResolver
- extends java.lang.Object
- implements Resolver<Target>
Provides a utility class helpful for determining which type of resource
the client is requesting. Each resource type (e.g. service doc, collection,
entry, edit uri, media resource, etc) is assigned a regex pattern. Given
the request URI (path and querystring), this will determine which resource
was selected and return an appropriate TargetMatcher. TargetMatcher is
essentially just a simplified version of the java.util.regex.Matcher that
also specifies the Resource Type.
RequestContext request = ...
RegexTargetResolver tr = new RegexTargetResolver();
tr.setPattern("/atom",ResourceType.INTROSPECTION);
tr.setPattern("/atom/([^/#?]+)",ResourceType.COLLECTION);
tr.setPattern("/atom/([^/#?]+)/([^/#?]+)",ResourceType.ENTRY);
tr.setPattern("/atom/([^/#?]+)/([^/#?]+)\\?edit",ResourceType.ENTRY_EDIT);
tr.setPattern("/atom/([^/#?]+)/([^/#?]+)\\?media",ResourceType.MEDIA);
tr.setPattern("/atom/([^/#?]+)/([^/#?]+)\\?edit-media",ResourceType.MEDIA_EDIT);
Target target = tr.resolve(request);
System.out.println(target.getType());
System.out.println(targer.getParameter("foo"));
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
RegexTargetResolver
public RegexTargetResolver()
RegexTargetResolver
public RegexTargetResolver(java.util.Map<java.lang.String,TargetType> patterns)
setPattern
public void setPattern(java.lang.String pattern,
TargetType type)
resolve
public Target resolve(Request request)
- Specified by:
resolve
in interface Resolver<Target>
getTarget
protected Target getTarget(TargetType type,
RequestContext request,
java.util.regex.Matcher matcher)