org.apache.abdera.protocol.server.impl
Class RegexTargetResolver

java.lang.Object
  extended by 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"));
 


Nested Class Summary
static class RegexTargetResolver.RegexTarget
           
 
Field Summary
protected  Map<Pattern,String[]> fields
           
protected  Map<Pattern,TargetType> patterns
           
 
Constructor Summary
RegexTargetResolver()
           
RegexTargetResolver(Map<String,TargetType> patterns)
           
 
Method Summary
 boolean equals(Object obj)
           
protected  Target getTarget(TargetType type, RequestContext request, Matcher matcher, String[] fields)
           
 int hashCode()
           
 Target resolve(Request request)
           
 RegexTargetResolver setPattern(String pattern, TargetType type)
           
 RegexTargetResolver setPattern(String pattern, TargetType type, String... fields)
           
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

patterns

protected final Map<Pattern,TargetType> patterns

fields

protected final Map<Pattern,String[]> fields
Constructor Detail

RegexTargetResolver

public RegexTargetResolver()

RegexTargetResolver

public RegexTargetResolver(Map<String,TargetType> patterns)
Method Detail

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.