ERXRouteController Class Reference

Inherits com::webobjects::appserver::WODirectAction.

Inherited by CarController, CompanyController, ManufacturerController, ERXGianduiaController, ERXDefaultRouteController, ERXMissingRouteController, ERXReadOnlyRouteController, and SEController.

Collaboration diagram for ERXRouteController:

Collaboration graph
[legend]

List of all members.

Public Member Functions

void _setContext (WOContext context)
void _setEntityName (String entityName)
void _setFormat (ERXRestFormat format)
void _setRequestContent (String requestContent)
void _setRequestContent (ERXRestFormat format, String requestContent)
void _setRequestHandler (ERXRouteRequestHandler requestHandler)
void _setRequestNode (ERXRestRequestNode requestNode)
void _setRoute (ERXRoute route)
void _setRouteKeys (NSDictionary< ERXRoute.Key, String > routeKeys)
void _setRouteObjects (NSDictionary< ERXRoute.Key, Object > objects)
boolean containsRouteKey (String key)
void dispose ()
EOEditingContext editingContext ()
WOActionResults errorResponse (String errorMessage, int status)
WOActionResults errorResponse (Throwable t, int status)
 ERXRouteController (WORequest request)
ERXRestFormat format ()
WOActionResults headAction ()
WOActionResults json (Object value, ERXKeyFilter filter)
WOActionResults json (EOClassDescription entity, NSArray<?> values, ERXKeyFilter filter)
WOActionResults json (EOEditingContext editingContext, String entityName, NSArray<?> values, ERXKeyFilter filter)
WOActionResults json (String entityName, NSArray<?> values, ERXKeyFilter filter)
NSKeyValueCoding options ()
WOActionResults optionsAction () throws Throwable
WOActionResults performActionNamed (String actionName, boolean throwExceptions) throws RuntimeException
WOActionResults performActionNamed (String actionName)
WOActionResults plist (Object value, ERXKeyFilter filter)
WOActionResults plist (EOClassDescription entity, NSArray<?> values, ERXKeyFilter filter)
WOActionResults plist (EOEditingContext editingContext, String entityName, NSArray<?> values, ERXKeyFilter filter)
WOActionResults plist (String entityName, NSArray<?> values, ERXKeyFilter filter)
ERXRouteRequestHandler requestHandler ()
ERXRestRequestNode requestNode ()
WOActionResults response (ERXRestFormat format, Object value, ERXKeyFilter filter)
WOActionResults response (Object value, ERXKeyFilter filter)
WOActionResults response (ERXRestFormat format, ERXRestRequestNode responseNode)
WOActionResults response (ERXRestFormat format, EOClassDescription entity, NSArray<?> values, ERXKeyFilter filter)
WOActionResults response (ERXRestFormat format, EOEditingContext editingContext, String entityName, NSArray<?> values, ERXKeyFilter filter)
WOActionResults response (ERXRestFormat format, String entityName, NSArray<?> values, ERXKeyFilter filter)
WOActionResults response (EOClassDescription entity, NSArray<?> values, ERXKeyFilter filter)
WOActionResults response (EOEditingContext editingContext, String entityName, NSArray<?> values, ERXKeyFilter filter)
WOActionResults response (String entityName, NSArray<?> values, ERXKeyFilter filter)
WOActionResults response (ERXRestFetchSpecification<?> fetchSpec, ERXKeyFilter filter)
String responseContentForActionNamed (String actionName)
ERXRestRequestNode responseNodeForActionNamed (String actionName)
ERXRoute route ()
NSDictionary< ERXRoute.Key,
String
routeKeys ()
NSDictionary< ERXRoute.Key,
Object > 
routeObjects (IERXRestDelegate delegate)
NSDictionary< ERXRoute.Key,
Object > 
routeObjects ()
String routeStringForKey (String key)
void setOptions (NSKeyValueCoding options)
WOResponse stringResponse (String str)
String toString ()
void update (Object obj, ERXKeyFilter filter, IERXRestDelegate delegate)
void update (Object obj, ERXKeyFilter filter)
WOActionResults xml (Object value, ERXKeyFilter filter)
WOActionResults xml (EOClassDescription entity, NSArray<?> values, ERXKeyFilter filter)
WOActionResults xml (EOEditingContext editingContext, String entityName, NSArray<?> values, ERXKeyFilter filter)
WOActionResults xml (String entityName, NSArray<?> values, ERXKeyFilter filter)

Static Public Member Functions

static NSMutableArray
< ERXRouteController
_controllersForRequest (WORequest request)
static void _disposeControllersForRequest (WORequest request)

Protected Member Functions

boolean _canSetHeaderForActionResults (WOActionResults results)
void _setHeaderForActionResults (String value, String key, WOActionResults results)
void _takeRouteParametersFromRequest (WOActionResults results)
String accessControlAllowOrigin ()
NSArray< StringaccessControlAllowRequestHeaders (NSArray< String > requestHeaders)
NSArray< StringaccessControlAllowRequestMethods (String requestMethod)
long accessControlMaxAage ()
boolean allowWindowNameCrossDomainTransport ()
void checkAccess () throws SecurityException
ERXRestFormat defaultFormat ()
IERXRestDelegate delegate ()
String entityName ()
ERXKeyFilter includeOptional (ERXKey<?> key, ERXKeyFilter filter)
boolean isAutomaticHtmlRoutingEnabled ()
boolean isKeyPathRequested (String keyPath)
boolean isKeyPathRequested (ERXKey<?> key)
boolean isSchemaRequest ()
EOEditingContext newEditingContext (EOObjectStore objectStore)
EOEditingContext newEditingContext ()
String pageNameForAction (String actionName)
WOActionResults performUnknownAction (String actionName) throws Throwable
WOActionResults schemaResponse (ERXKeyFilter filter)
WOActionResults schemaResponseForEntityNamed (String entityName, ERXKeyFilter filter)
boolean shouldFailOnMissingHtmlPage ()

Static Protected Member Functions

static void _registerControllerForRequest (ERXRouteController controller, WORequest request)

Static Protected Attributes

static Logger log = Logger.getLogger(ERXRouteController.class)

Package Functions

public< T extends
ERXRouteController > T 
controller (Class< T > controllerClass)
public< T extends
ERXRouteController > T 
controller (String entityName)
public< T > T create (String entityName, ERXKeyFilter filter, IERXRestDelegate delegate)
public< T > T create (ERXKeyFilter filter, IERXRestDelegate delegate)
public< T > T create (String entityName, ERXKeyFilter filter)
public< T > T create (ERXKeyFilter filter)
public< T > T object (String entityName, ERXKeyFilter filter, IERXRestDelegate delegate)
public< T > T object (ERXKeyFilter filter, IERXRestDelegate delegate)
public< T > T object (String entityName, ERXKeyFilter filter)
public< T > T object (ERXKeyFilter filter)
public< T extends WOComponent > T pageWithName (Class< T > componentClass)
public< T > T routeObjectForKey (String key)

Private Attributes

EOEditingContext _editingContext
String _entityName
ERXRestFormat _format
NSDictionary< ERXRoute.Key,
Object > 
_objects
NSKeyValueCoding _options
NSSet< String_prefetchingKeyPaths
ERXRouteRequestHandler _requestHandler
ERXRestRequestNode _requestNode
ERXRoute _route
NSDictionary< ERXRoute.Key,
String
_routeKeys
boolean _shouldDisposeEditingContext

Static Private Attributes

static final String REQUEST_CONTROLLERS_KEY = "ERRest.controllersForRequest"


Detailed Description

ERXRouteController is equivalent to a Rails controller class. It's actually a direct action, and has the same naming rules as a direct action, so your controller action methods must end in the name "Action". There are several utility methods for manipulating restful requests and responses (update(..), create(..), requestNode(), response(..), etc) , and it supports multiple formats for you.

Author:
mschrag

Constructor & Destructor Documentation

ERXRouteController ( WORequest  request  ) 

Constructs a new ERXRouteController.

Parameters:
request the request


Member Function Documentation

boolean _canSetHeaderForActionResults ( WOActionResults  results  )  [protected]

Returns whether or not headers can be added to the given action results.

Parameters:
results the results to test
Returns:
whether or not headers can be added to the given action results

static NSMutableArray<ERXRouteController> _controllersForRequest ( WORequest  request  )  [static]

Returns the controllers that have been used on the given request.

Parameters:
request the request

static void _disposeControllersForRequest ( WORequest  request  )  [static]

Disposes all of the controllers that were used on the given request.

Parameters:
request the request

static void _registerControllerForRequest ( ERXRouteController  controller,
WORequest  request 
) [static, protected]

Registers the given controller with the given request, so it can be later disposed. This can be a very useful performance optimization for apps that gets a large number of requests.

Parameters:
controller the controller to register
request the request to register with

void _setContext ( WOContext  context  ) 

WODirectAction doesn't expose API for setting the context, which can be useful for passing data between controller.

Parameters:
context the new context

void _setEntityName ( String  entityName  ) 

Sets the entity name for this controller.

Parameters:
entityName this controller's entity name

void _setFormat ( ERXRestFormat  format  ) 

Sets the format that will be used by this route controller.

Parameters:
format the format to be used by this route controller

void _setHeaderForActionResults ( String  value,
String  key,
WOActionResults  results 
) [protected]

Attempt to set the header for the given results object.

Parameters:
value the value
key the key
results the results object

void _setRequestContent ( String  requestContent  ) 

Sets the request content that this controller will use for processing -- this requires that a format() is specified.

Parameters:
requestContent the content of the incoming request

void _setRequestContent ( ERXRestFormat  format,
String  requestContent 
)

Sets the request content that this controller will use for processing.

Parameters:
format the requested format
requestContent the content of the incoming request

void _setRequestHandler ( ERXRouteRequestHandler  requestHandler  ) 

Sets the request handler that processed this route.

Parameters:
requestHandler the request handler that processed this route

void _setRequestNode ( ERXRestRequestNode  requestNode  ) 

Sets the request node that this controller will use for processing.

Parameters:
requestNode the node reprsenting the incoming request

void _setRoute ( ERXRoute  route  ) 

Sets the route that is associated with this request. This is typically only set by the request handler.

Parameters:
route the route that is associated with this controller

void _setRouteKeys ( NSDictionary< ERXRoute.Key, String routeKeys  ) 

Sets the unprocessed keys from the route.

Parameters:
routeKeys the parsed keys from the route

void _setRouteObjects ( NSDictionary< ERXRoute.Key, Object >  objects  ) 

Sets the processed objects for the current route. For instance, if your route specifies that you have a {person:Person}, this dictionary should contain a mapping from that route key to a person instance.

Parameters:
objects the route objects to override

void _takeRouteParametersFromRequest ( WOActionResults  results  )  [protected]

Enumerates the route keys, looks for annotated methods, and sets the value of the routeKey with the corresponding method if it exists.

Parameters:
results the results to apply route parameter to

String accessControlAllowOrigin (  )  [protected]

Returns the allowed origin for cross-site requests. Set the property ERXRest.accessControlAllowOrigin=* to enable all origins.

Returns:
the allowed origin for cross-site requests

NSArray<String> accessControlAllowRequestHeaders ( NSArray< String requestHeaders  )  [protected]

Returns the allowed request headers given the requested headers.Set the property ERXRest.accessControlAllowRequestHeaders to override the default of just returning the requested headers.

Parameters:
requestHeaders the requested headers
Returns:
the array of allowed request headers

NSArray<String> accessControlAllowRequestMethods ( String  requestMethod  )  [protected]

Returns the allowed request methods given the requested method. Set the property ERXRest.accessControlAllowRequestMethods to override the default of returning OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE,CONNECT.

Parameters:
requestMethod the requested method
Returns:
the array of allowed request methods

long accessControlMaxAage (  )  [protected]

Returns the maximum age in seconds for the preflight options cache.

Returns:
the maximum age for the preflight options cache

boolean allowWindowNameCrossDomainTransport (  )  [protected]

Returns whether or not the window.name cross-domain transport is allowed.

Returns:
whether or not the window.name cross-domain transport is allowed

void checkAccess (  )  throws SecurityException [protected]

Override to provide custom security checks. It is not necessary to call super on this method.

Exceptions:
SecurityException if the security check fails

boolean containsRouteKey ( String  key  ) 

Returns whether or not there is a route key with the given name.

Parameters:
key the key name to lookup
Returns:
whether or not there is a route key with the given name

public<T extends ERXRouteController> T controller ( Class< T >  controllerClass  )  [package]

Returns another controller, passing the required state on.

Parameters:
<T> the type of controller to return
controllerClass the controller class to lookup
Returns:
the created controller

public<T extends ERXRouteController> T controller ( String  entityName  )  [package]

Returns another controller, passing the required state on.

Parameters:
<T> the type of controller to return
entityName the entity name of the controller to lookup
Returns:
the created controller

public<T> T create ( String  entityName,
ERXKeyFilter  filter,
IERXRestDelegate  delegate 
) [package]

Creates a new object from the request data that is of the given entity name and is filtered with the given filter.

Parameters:
entityName the entity name of the object in the request
filter the filter to apply to the object for the purposes of updating (or null to just create a blank one)
delegate the delegate to use
Returns:
the object from the request data

public<T> T create ( ERXKeyFilter  filter,
IERXRestDelegate  delegate 
) [package]

Creates a new object from the request data that is of the routed entity name and is filtered with the given filter.

Parameters:
filter the filter to apply to the object for the purposes of updating (or null to just create a blank one)
delegate the delegate to use
Returns:
the object from the request data

public<T> T create ( String  entityName,
ERXKeyFilter  filter 
) [package]

Creates a new object from the request data that is of the given entity name and is filtered with the given filter. This will use the delegate returned from this controller's delegate() method.

Parameters:
entityName the entity name of the object in the request
filter the filter to apply to the object for the purposes of updating (or null to just create a blank one)
Returns:
the object from the request data

public<T> T create ( ERXKeyFilter  filter  )  [package]

Creates a new object from the request data that is of the routed entity name and is filtered with the given filter. This will use the delegate returned from this controller's delegate() method.

Parameters:
filter the filter to apply to the object for the purposes of updating (or null to just create a blank one)
Returns:
the object from the request data

ERXRestFormat defaultFormat (  )  [protected]

Returns the default format to use if no other format is found, or if the requested format is invalid.

Returns:
the default format to use if no other format is found, or if the requested format is invalid

Reimplemented in MoviesController.

IERXRestDelegate delegate (  )  [protected]

Returns the default rest delegate for this controller (an ERXRestRequestNode.EODelegate using the editing context returned from editingContext()). Override this method to provide a custom delegate implementation for this controller.

Returns:
a default rest delegate

void dispose (  ) 

Disposes any resources the route controller may be holding onto (like its editing context).

EOEditingContext editingContext (  ) 

The controller maintains an editing context for the duration of the request. The first time you call this method, you will get a new EOEditingContext. Subsequent calls will return the same instance. This makes it a little more convenient when you're using update, create, etc methods.

Returns:
an EOEditingContext

String entityName (  )  [protected]

Returns the name of the entity that this controller is currently handling. The default implementation retrieves the entity name from the ERXRoute.

Returns:
the entity name for the current route

Reimplemented in ERXMissingRouteController.

WOActionResults errorResponse ( String  errorMessage,
int  status 
)

Returns an error response with the given HTTP status.

Parameters:
errorMessage the error message
status the HTTP status code
Returns:
an error WOResponse

WOActionResults errorResponse ( Throwable  t,
int  status 
)

Returns an error response with the given HTTP status.

Parameters:
t the exception
status the HTTP status code
Returns:
an error WOResponse

ERXRestFormat format (  ) 

Returns the format that the user requested (usually based on the request file extension).

Returns:
the format that the user requested

WOActionResults headAction (  ) 

Returns the response from a HEAD call to this controller.

Returns:
a head response

ERXKeyFilter includeOptional ( ERXKey<?>  key,
ERXKeyFilter  filter 
) [protected]

Includes the key in the given filter if isKeyPathRequested returns true.

Parameters:
key the key to lookup
filter the filter to include into
Returns:
the nested filter (or null if the key was not requested)

boolean isAutomaticHtmlRoutingEnabled (  )  [protected]

If this method returns true, all HTML format requests will be automatically routed to the corresponding IERXRouteComponent implementation based on the name returned by pageNameForAction(String).

Returns:
true if HTML format requests should be automatically routed to the corresponding page component

Reimplemented in PersonController, and SEController.

boolean isKeyPathRequested ( String  keyPath  )  [protected]

Returns whether or not the prefetchingKeyPaths option includes the given keypath (meaning, the client requested to include the given keypath).

Parameters:
keyPath the keyPath to check on
Returns:
true if the keyPath is in the prefetchingKeyPaths option

boolean isKeyPathRequested ( ERXKey<?>  key  )  [protected]

Returns whether or not the prefetchingKeyPaths option includes the given keypath (meaning, the client requested to include the given keypath).

Parameters:
key the ERXKey to check on
Returns:
true if the keyPath is in the prefetchingKeyPaths option

boolean isSchemaRequest (  )  [protected]

Returns whether or not this request is for a schema.

Returns:
whether or not this request is for a schema

WOActionResults json ( Object  value,
ERXKeyFilter  filter 
)

Returns the given object as a JSON response.

Parameters:
value the value to return
filter the filter to apply
Returns:
a WOResponse in JSON format

WOActionResults json ( EOClassDescription  entity,
NSArray<?>  values,
ERXKeyFilter  filter 
)

Returns the given array as a JSON response.

Parameters:
entity the entity type of the array
values the values in the array
filter the filter to apply to the objects
Returns:
a JSON WOResponse

WOActionResults json ( EOEditingContext  editingContext,
String  entityName,
NSArray<?>  values,
ERXKeyFilter  filter 
)

Returns the given array as a JSON response.

Parameters:
editingContext the editing context to use
entityName the name of the entities in the array
values the values in the array
filter the filter to apply to the objects
Returns:
a JSON WOResponse

WOActionResults json ( String  entityName,
NSArray<?>  values,
ERXKeyFilter  filter 
)

Returns the given array as a JSON response. This uses the editing context returned by editingContext().

Parameters:
entityName the name of the entities in the array
values the values in the array
filter the filter to apply to the objects
Returns:
a JSON WOResponse

EOEditingContext newEditingContext ( EOObjectStore  objectStore  )  [protected]

Creates a new editing context with a parent object store.

Parameters:
objectStore the parent object store
Returns:
a new editing context

EOEditingContext newEditingContext (  )  [protected]

Creates a new editing context.

Returns:
a new editing context

public<T> T object ( String  entityName,
ERXKeyFilter  filter,
IERXRestDelegate  delegate 
) [package]

Returns the object from the request data that is of the given entity name and is filtered with the given filter.

Parameters:
entityName the entity name of the object in the request
filter the filter to apply to the object for the purposes of updating (or null to not update)
delegate the delegate to use
Returns:
the object from the request data

public<T> T object ( ERXKeyFilter  filter,
IERXRestDelegate  delegate 
) [package]

Returns the object from the request data that is of the routed entity name and is filtered with the given filter.

Parameters:
filter the filter to apply to the object for the purposes of updating (or null to not update)
delegate the delegate to use
Returns:
the object from the request data

public<T> T object ( String  entityName,
ERXKeyFilter  filter 
) [package]

Returns the object from the request data that is of the given entity name and is filtered with the given filter. This will use the delegate returned from this controller's delegate() method.

Parameters:
entityName the entity name of the object in the request
filter the filter to apply to the object for the purposes of updating (or null to not update)
Returns:
the object from the request data

public<T> T object ( ERXKeyFilter  filter  )  [package]

Returns the object from the request data that is of the routed entity name and is filtered with the given filter. This will use the delegate returned from this controller's delegate() method.

Parameters:
filter the filter to apply to the object for the purposes of updating (or null to not update)
Returns:
the object from the request data

NSKeyValueCoding options (  ) 

Returns the options for this controller. Options are an abstraction on request form values.

Returns:
the options for this controller (default to be ERXRequestFormValues)

WOActionResults optionsAction (  )  throws Throwable

A default options action that implements access control policy.

Returns:
the response

String pageNameForAction ( String  actionName  )  [protected]

Returns the name of the page component for this entity and the given action. The default implementation of this returns entityName + Action + Page ("PersonEditPage", "PersonViewPage", etc).

Parameters:
actionName the name of the action
Returns:
the name of the page component for this action

Reimplemented in SEController.

public<T extends WOComponent> T pageWithName ( Class< T >  componentClass  )  [package]

Calls pageWithName.

Parameters:
<T> the type of component to return
componentClass the component class to lookup
Returns:
the created component

WOActionResults performActionNamed ( String  actionName,
boolean  throwExceptions 
) throws RuntimeException

Performs the given action, optionally throwing exceptions instead of converting to http response codes.

Parameters:
actionName the name of the action to perform
throwExceptions whether or not to throw exceptions
Returns:
the action results
Exceptions:
RuntimeException if a failure occurs

WOActionResults performActionNamed ( String  actionName  ) 

WOActionResults performUnknownAction ( String  actionName  )  throws Throwable [protected]

Called when no standard action method can be found to handle the requested route. The default implementation just throws an exception.

Parameters:
actionName the unknown action name
Returns:
WOActionResults

WOActionResults plist ( Object  value,
ERXKeyFilter  filter 
)

Returns the given object as a PList response.

Parameters:
value the value to return
filter the filter to apply
Returns:
a WOResponse in PList format

WOActionResults plist ( EOClassDescription  entity,
NSArray<?>  values,
ERXKeyFilter  filter 
)

Returns the given array as a JSON response.

Parameters:
entity the entity type of the array
values the values in the array
filter the filter to apply to the objects
Returns:
a JSON WOResponse

WOActionResults plist ( EOEditingContext  editingContext,
String  entityName,
NSArray<?>  values,
ERXKeyFilter  filter 
)

Returns the given array as a JSON response.

Parameters:
editingContext the editing context to use
entityName the name of the entities in the array
values the values in the array
filter the filter to apply to the objects
Returns:
a JSON WOResponse

WOActionResults plist ( String  entityName,
NSArray<?>  values,
ERXKeyFilter  filter 
)

Returns the given array as a PList response. This uses the editing context returned by editingContext().

Parameters:
entityName the name of the entities in the array
values the values in the array
filter the filter to apply to the objects
Returns:
a PList WOResponse

ERXRouteRequestHandler requestHandler (  ) 

Returns the request handler that processed this route.

Returns:
the request handler that processed this route

ERXRestRequestNode requestNode (  ) 

Returns the request data in the form of an ERXRestRequestNode (which is a format-independent wrapper around hierarchical data).

Returns:
the request data as an ERXRestRequestNode

WOActionResults response ( ERXRestFormat  format,
Object  value,
ERXKeyFilter  filter 
)

Returns the given object as a WOResponse in the given format.

Parameters:
format the format to use
value the value to return
filter the filter to apply
Returns:
a WOResponse in the given format

WOActionResults response ( Object  value,
ERXKeyFilter  filter 
)

Returns the given object as a response in the format returned from the format() method.

Parameters:
value the value to return
filter the filter to apply
Returns:
a WOResponse in the format returned from the format() method.

WOActionResults response ( ERXRestFormat  format,
ERXRestRequestNode  responseNode 
)

Returns the given ERXRestRequestNode as a response in the given format.

Parameters:
format the format to use
responseNode the request node to render
Returns:
a WOResponse in the given format

WOActionResults response ( ERXRestFormat  format,
EOClassDescription  entity,
NSArray<?>  values,
ERXKeyFilter  filter 
)

Returns the given array as a response in the given format.

Parameters:
format the format to use
entity the entity type of the array
values the values in the array
filter the filter to apply to the objects
Returns:
a WOResponse in the given format

WOActionResults response ( ERXRestFormat  format,
EOEditingContext  editingContext,
String  entityName,
NSArray<?>  values,
ERXKeyFilter  filter 
)

Returns the given array as a response in the given format.

Parameters:
format the format to use
editingContext the editing context to use
entityName the name of the entities in the array
values the values in the array
filter the filter to apply to the objects
Returns:
a WOResponse in the given format

WOActionResults response ( ERXRestFormat  format,
String  entityName,
NSArray<?>  values,
ERXKeyFilter  filter 
)

Returns the given array as a response in the given format.

Parameters:
format the format to use
entityName the name of the entity type of the array
values the values in the array
filter the filter to apply to the objects
Returns:
a WOResponse in the given format

WOActionResults response ( EOClassDescription  entity,
NSArray<?>  values,
ERXKeyFilter  filter 
)

Returns the given array as an response in the format returned from the format() method.

Parameters:
entity the entity type of the array
values the values in the array
filter the filter to apply to the objects
Returns:
a WOResponse of the format returned from the format() method

WOActionResults response ( EOEditingContext  editingContext,
String  entityName,
NSArray<?>  values,
ERXKeyFilter  filter 
)

Returns the given array as an response in the format returned from the format() method.

Parameters:
editingContext the editing context to use
entityName the name of the entities in the array
values the values in the array
filter the filter to apply to the objects
Returns:
a WOResponse of the format returned from the format() method

WOActionResults response ( String  entityName,
NSArray<?>  values,
ERXKeyFilter  filter 
)

Returns the given array as an response in the format returned from the format() method. This uses the editing context returned by editingContext().

Parameters:
entityName the name of the entities in the array
values the values in the array
filter the filter to apply to the objects
Returns:
a WOResponse of the format returned from the format() method

WOActionResults response ( ERXRestFetchSpecification<?>  fetchSpec,
ERXKeyFilter  filter 
)

Returns the results of the rest fetch spec as an response in the format returned from the format() method. This uses the editing context returned by editingContext().

Parameters:
fetchSpec the rest fetch specification to execute
filter the filter to apply to the objects
Returns:
a WOResponse of the format returned from the format() method

String responseContentForActionNamed ( String  actionName  ) 

Returns the response content generated from performing the action with the given name.

Parameters:
actionName the name of the action to perform
Returns:
the response content

ERXRestRequestNode responseNodeForActionNamed ( String  actionName  ) 

Returns the response node generated from performing the action with the given name.

Parameters:
actionName the name of the action to perform
Returns:
the response node

ERXRoute route (  ) 

Returns the route associated with this request.

Returns:
the route associated with this request

NSDictionary<ERXRoute.Key, String> routeKeys (  ) 

Returns the unprocessed keys from the route (the values are the original value from the URL).

Returns:
the unprocessed keys from the route

public<T> T routeObjectForKey ( String  key  )  [package]

Returns the processed object from the route keys with the given name. For instance, if your route specifies that you have a {person:Person}, routeObjectForKey("person") will return a Person object.

Parameters:
key the key name to lookup
Returns:
the processed object from the route keys with the given name

NSDictionary<ERXRoute.Key, Object> routeObjects ( IERXRestDelegate  delegate  ) 

Returns all the processed objects from the route keys. For instance, if your route specifies that you have a {person:Person}, routeObjectForKey("person") will return a Person object. This method does NOT cache the results.

Parameters:
delegate the delegate to fetch with
Returns:
the processed objects from the route keys

NSDictionary<ERXRoute.Key, Object> routeObjects (  ) 

Returns all the processed objects from the route keys. For instance, if your route specifies that you have a {person:Person}, routeObjectForKey("person") will return a Person object.

Returns:
the processed objects from the route keys

String routeStringForKey ( String  key  ) 

Returns the unprocessed value from the route with the given key name.

Parameters:
key the key name to lookup
Returns:
the unprocessed value from the route with the given key name

WOActionResults schemaResponse ( ERXKeyFilter  filter  )  [protected]

Returns the schema response for the current entity with the given filter.

Parameters:
filter the filter to apply
Returns:
the schema response for the current entity with the given filter

WOActionResults schemaResponseForEntityNamed ( String  entityName,
ERXKeyFilter  filter 
) [protected]

Returns the schema response for the given entity with the given filter.

Parameters:
entityName the entity name
filter the filter to apply
Returns:
the schema response for the given entity with the given filter

void setOptions ( NSKeyValueCoding  options  ) 

Sets the options for this controller.

Parameters:
options options for this controller

boolean shouldFailOnMissingHtmlPage (  )  [protected]

If automatic html routing is enabled and there is no page component found that matches the current route, should that result in a 404?

Returns:
whether or not a missing page is a failure

WOResponse stringResponse ( String  str  ) 

Returns the given string wrapped in a WOResponse.

Parameters:
str the string to return
Returns:
a WOResponse

String toString (  ) 

void update ( Object  obj,
ERXKeyFilter  filter,
IERXRestDelegate  delegate 
)

Updates the given object from the request data with the given filter.

Parameters:
obj object to update
filter the filter to apply to the object for the purposes of updating (or null to not update)
delegate delegate to use

void update ( Object  obj,
ERXKeyFilter  filter 
)

Updates the given object from the request data with the given filter. This will use the delegate returned from this controller's delegate() method.

Parameters:
obj the object to update
filter the filter to apply to the object for the purposes of updating (or null to not update)

WOActionResults xml ( Object  value,
ERXKeyFilter  filter 
)

Returns the given object as an XML response.

Parameters:
value the value to return
filter the filter to apply
Returns:
a WOResponse in XML format

WOActionResults xml ( EOClassDescription  entity,
NSArray<?>  values,
ERXKeyFilter  filter 
)

Returns the given array as an XML response.

Parameters:
entity the entity type of the array
values the values in the array
filter the filter to apply to the objects
Returns:
an XML WOResponse

WOActionResults xml ( EOEditingContext  editingContext,
String  entityName,
NSArray<?>  values,
ERXKeyFilter  filter 
)

Returns the given array as an XML response.

Parameters:
editingContext the editing context to use
entityName the name of the entities in the array
values the values in the array
filter the filter to apply to the objects
Returns:
an XML WOResponse

WOActionResults xml ( String  entityName,
NSArray<?>  values,
ERXKeyFilter  filter 
)

Returns the given array as an XML response. This uses the editing context returned by editingContext().

Parameters:
entityName the name of the entities in the array
values the values in the array
filter the filter to apply to the objects
Returns:
an XML WOResponse


Member Data Documentation

EOEditingContext _editingContext [private]

String _entityName [private]

NSDictionary<ERXRoute.Key, Object> _objects [private]

NSKeyValueCoding _options [private]

NSSet<String> _prefetchingKeyPaths [private]

ERXRoute _route [private]

NSDictionary<ERXRoute.Key, String> _routeKeys [private]

boolean _shouldDisposeEditingContext [private]

Logger log = Logger.getLogger(ERXRouteController.class) [static, protected]

final String REQUEST_CONTROLLERS_KEY = "ERRest.controllersForRequest" [static, private]


The documentation for this class was generated from the following file:

Generated on Sat May 26 06:43:33 2012 for Project Wonder by  doxygen 1.5.8