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

java.lang.Object
  extended by org.apache.abdera.protocol.server.impl.AbstractProvider
All Implemented Interfaces:
Provider
Direct Known Subclasses:
AbstractWorkspaceProvider, DefaultProvider

public abstract class AbstractProvider
extends Object
implements Provider

Base Provider implementation that provides the core implementation details for all Providers. This class provides the basic request routing logic.


Field Summary
protected  Abdera abdera
           
protected  List<Filter> filters
           
protected  Map<String,String> properties
           
protected  Map<TargetType,RequestProcessor> requestProcessors
           
 
Constructor Summary
protected AbstractProvider()
           
 
Method Summary
 void addFilter(Filter... filters)
           
 void addRequestProcessors(Map<TargetType,RequestProcessor> requestProcessors)
          Add a map of RequestProcessors to register on this provider, without overriding already registered ones.
��
protected  ResponseContext createErrorResponse(RequestContext request, Throwable e)
          Subclass to customize the kind of error response to return
 Abdera getAbdera()
          Retrieve the Abdera instance associated with this provider
 Filter[] getFilters(RequestContext request)
          Return the listing of filters for this request
 String getProperty(String name)
          Get the specified property
 String[] getPropertyNames()
          Return a listing of all available properties
 Map<TargetType,RequestProcessor> getRequestProcessors()
          Return a map of registered RequestProcessors with related TargetType.
protected  Service getServiceElement(RequestContext request)
           
protected  Resolver<Subject> getSubjectResolver(RequestContext request)
           
protected abstract  TargetBuilder getTargetBuilder(RequestContext request)
           
protected abstract  Resolver<Target> getTargetResolver(RequestContext request)
           
protected abstract  WorkspaceManager getWorkspaceManager(RequestContext request)
           
 void init(Abdera abdera, Map<String,String> properties)
          Initialize the Provider.
 ResponseContext process(RequestContext request)
          Process the request
protected  ResponseContext processExtensionRequest(RequestContext context, CollectionAdapter adapter)
           
 Subject resolveSubject(RequestContext request)
          Resolve the subject using the Provider's Subject Resolver
 Target resolveTarget(RequestContext request)
          Resolve the target using the Provider's Target Resolver
 void setFilters(List<Filter> filters)
           
 void setRequestProcessors(Map<TargetType,RequestProcessor> requestProcessors)
          Set a map of RequestProcessors to register on this provider, overriding already registered ones.
protected  void transactionCompensate(Transactional transactional, RequestContext request, Throwable e)
           
protected  void transactionEnd(Transactional transactional, RequestContext request, ResponseContext response)
           
protected  void transactionStart(Transactional transactional, RequestContext request)
           
 String urlFor(RequestContext request, Object key, Object param)
          Construct a URL using to Provider's Target Builder
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

abdera

protected Abdera abdera

properties

protected Map<String,String> properties

filters

protected List<Filter> filters

requestProcessors

protected Map<TargetType,RequestProcessor> requestProcessors
Constructor Detail

AbstractProvider

protected AbstractProvider()
Method Detail

init

public void init(Abdera abdera,
                 Map<String,String> properties)
Description copied from interface: Provider
Initialize the Provider.

Specified by:
init in interface Provider

getProperty

public String getProperty(String name)
Description copied from interface: Provider
Get the specified property

Specified by:
getProperty in interface Provider

getPropertyNames

public String[] getPropertyNames()
Description copied from interface: Provider
Return a listing of all available properties

Specified by:
getPropertyNames in interface Provider

getAbdera

public Abdera getAbdera()
Description copied from interface: Provider
Retrieve the Abdera instance associated with this provider

Specified by:
getAbdera in interface Provider

resolveSubject

public Subject resolveSubject(RequestContext request)
Description copied from interface: Provider
Resolve the subject using the Provider's Subject Resolver

Specified by:
resolveSubject in interface Provider

resolveTarget

public Target resolveTarget(RequestContext request)
Description copied from interface: Provider
Resolve the target using the Provider's Target Resolver

Specified by:
resolveTarget in interface Provider

urlFor

public String urlFor(RequestContext request,
                     Object key,
                     Object param)
Description copied from interface: Provider
Construct a URL using to Provider's Target Builder

Specified by:
urlFor in interface Provider

getSubjectResolver

protected Resolver<Subject> getSubjectResolver(RequestContext request)

getTargetBuilder

protected abstract TargetBuilder getTargetBuilder(RequestContext request)

getTargetResolver

protected abstract Resolver<Target> getTargetResolver(RequestContext request)

process

public ResponseContext process(RequestContext request)
Description copied from interface: Provider
Process the request

Specified by:
process in interface Provider

createErrorResponse

protected ResponseContext createErrorResponse(RequestContext request,
                                              Throwable e)
Subclass to customize the kind of error response to return


transactionCompensate

protected void transactionCompensate(Transactional transactional,
                                     RequestContext request,
                                     Throwable e)

transactionEnd

protected void transactionEnd(Transactional transactional,
                              RequestContext request,
                              ResponseContext response)

transactionStart

protected void transactionStart(Transactional transactional,
                                RequestContext request)
                         throws ResponseContextException
Throws:
ResponseContextException

processExtensionRequest

protected ResponseContext processExtensionRequest(RequestContext context,
                                                  CollectionAdapter adapter)

getWorkspaceManager

protected abstract WorkspaceManager getWorkspaceManager(RequestContext request)

getServiceElement

protected Service getServiceElement(RequestContext request)

setFilters

public void setFilters(List<Filter> filters)

getFilters

public Filter[] getFilters(RequestContext request)
Description copied from interface: Provider
Return the listing of filters for this request

Specified by:
getFilters in interface Provider

addFilter

public void addFilter(Filter... filters)

setRequestProcessors

public void setRequestProcessors(Map<TargetType,RequestProcessor> requestProcessors)
Description copied from interface: Provider
Set a map of RequestProcessors to register on this provider, overriding already registered ones.

Specified by:
setRequestProcessors in interface Provider

addRequestProcessors

public void addRequestProcessors(Map<TargetType,RequestProcessor> requestProcessors)
Description copied from interface: Provider
Add a map of RequestProcessors to register on this provider, without overriding already registered ones.
��

Specified by:
addRequestProcessors in interface Provider

getRequestProcessors

public Map<TargetType,RequestProcessor> getRequestProcessors()
Description copied from interface: Provider
Return a map of registered RequestProcessors with related TargetType.

Specified by:
getRequestProcessors in interface Provider


Copyright © 2006-2012 Apache Software Foundation. All Rights Reserved.