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 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)
.setPattern("/atom/([^/#?]+)",ResourceType.COLLECTION)
.setPattern("/atom/([^/#?]+)/([^/#?]+)",ResourceType.ENTRY)
.setPattern("/atom/([^/#?]+)/([^/#?]+)\\?edit",ResourceType.ENTRY_EDIT)
.setPattern("/atom/([^/#?]+)/([^/#?]+)\\?media",ResourceType.MEDIA)
.setPattern("/atom/([^/#?]+)/([^/#?]+)\\?edit-media",ResourceType.MEDIA_EDIT);
Target target = tr.resolve(request);
System.out.println(target.getType());
System.out.println(targer.getParameter("foo"));
patterns
protected final Map<Pattern,TargetType> patterns
fields
protected final Map<Pattern,String[]> fields
RegexTargetResolver
public RegexTargetResolver()
RegexTargetResolver
public RegexTargetResolver(Map<String,TargetType> patterns)
setPattern
public RegexTargetResolver setPattern(String pattern,
TargetType type)
setPattern
public RegexTargetResolver setPattern(String pattern,
TargetType type,
String... fields)
resolve
public Target resolve(Request request)
- Specified by:
resolve
in interface Resolver<Target>
getTarget
protected Target getTarget(TargetType type,
RequestContext request,
Matcher matcher,
String[] fields)
toString
public String toString()
- Overrides:
toString
in class Object
hashCode
public int hashCode()
- Overrides:
hashCode
in class Object
equals
public boolean equals(Object obj)
- Overrides:
equals
in class Object
Copyright © 2006-2012 Apache Software Foundation. All Rights Reserved.