| Package | org.restfulx.controllers |
| Class | public class ModelsController |
| Inheritance | ModelsController flash.events.EventDispatcher |
index and
show invocations and hooking up appropriate
ServiceProvider methods with their corresponding
CacheController methods.
| Property | Defined by | ||
|---|---|---|---|
| cache : CacheController
internal cache of fetched model instances maps model
FQNs to ModelsCollections of instances
| ModelsController | ||
| errors : IServiceErrors
Exposes errors reported by a service provider.
| ModelsController | ||
| state : ModelsMetadata
encapsulates models control metadata and state
| ModelsController | ||
| Method | Defined by | ||
|---|---|---|---|
|
ModelsController(models:Array)
Creates a new instance of the controller.
| ModelsController | ||
|
cached(clazz:Class):ModelsCollection
Get current cache representation for a particular model class.
| ModelsController | ||
|
create(object:Object, optsOrOnSuccess:Object = null, onFailure:Function = null, nestedBy:Array = null, metadata:Object = null, recursive:Boolean = false, targetServiceId:int = -1, customProcessor:Function = null, unmarshallDisconnected:Boolean = false):void
Perform REST create operation.
| ModelsController | ||
|
destroy(object:Object, optsOrOnSuccess:Object = null, onFailure:Function = null, nestedBy:Array = null, metadata:Object = null, recursive:Boolean = false, targetServiceId:int = -1, customProcessor:Function = null, unmarshallDisconnected:Boolean = false):void
Perform REST destroy operation.
| ModelsController | ||
|
index(clazz:Class, optsOrOnSuccess:Object = null, onFailure:Function = null, nestedBy:Array = null, metadata:Object = null, fetchDependencies:Boolean = true, useLazyMode:Boolean = true, append:Boolean = false, targetServiceId:int = -1, customProcessor:Function = null, unmarshallDisconnected:Boolean = false):ModelsCollection
Perform REST index operation.
| ModelsController | ||
|
indexAll(... models):void
A shortcut to index multiple models at once.
| ModelsController | ||
|
indexed(... models):Boolean
Checks to see if specified models have been index
| ModelsController | ||
|
reload(object:Object, optsOrOnSuccess:Object = null, onFailure:Function = null, nestedBy:Array = null, metadata:Object = null, fetchDependencies:Boolean = true, useLazyMode:Boolean = true, append:Boolean = false, targetServiceId:int = -1, customProcessor:Function = null, unmarshallDisconnected:Boolean = false):void
Force reload of a particular model instance or the entire model cache.
| ModelsController | ||
|
reloadAll(... models):void
A shortcut to reload multiple models at once.
| ModelsController | ||
|
reset(object:Object = null, hard:Boolean = false):void
Resets model metadata.
| ModelsController | ||
|
show(object:Object, optsOrOnSuccess:Object = null, onFailure:Function = null, nestedBy:Array = null, metadata:Object = null, fetchDependencies:Boolean = true, useLazyMode:Boolean = false, targetServiceId:int = -1, customProcessor:Function = null, unmarshallDisconnected:Boolean = false):RxModel
Perform REST show operation.
| ModelsController | ||
|
showById(clazz:Class, id:Object, optsOrOnSuccess:Function = null, onFailure:Array = null, nestedBy:Object = null, metadata:Boolean = null, fetchDependencies:Boolean = true, useLazyMode:int = false, targetServiceId:Function = -1, customProcessor:Boolean = null, unmarshallDisconnected:* = false):RxModel
A different take on
show method. | ModelsController | ||
|
shown(object:Object, id:* = null):Boolean
Checks to see if specified model has been shown
| ModelsController | ||
|
update(object:Object, optsOrOnSuccess:Object = null, onFailure:Function = null, nestedBy:Array = null, metadata:Object = null, recursive:Boolean = false, targetServiceId:int = -1, customProcessor:Function = null, unmarshallDisconnected:Boolean = false):void
Perform REST update operation.
| ModelsController | ||
| cache | property |
public var cache:CacheControllerinternal cache of fetched model instances maps model FQNs to ModelsCollections of instances
| errors | property |
public var errors:IServiceErrors
Exposes errors reported by a service provider. This typically happens
as a result of Rx.models.create or Rx.models.update
call and gives the back-end service (such as RubyOnRails or Merb) to validate
incoming data and report any errors back to Flex/AIR client.
This property can be used as the source for data binding.
Rx.errors in your application.
Let's say you have an MXML component that provides a sign-up form:
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" height="400" width="300"
xmlns:validators="org.restfulx.validators.quot;>
<!-- Proxies for Rails Validators -->
<validators:ServiceErrorValidator id="signUpLoginNameValidator" field="login" listener="{signUpUsername}"
serviceErrors="{Rx.errors}"/>
<validators:ServiceErrorValidator id="signUpPasswordValidator" field="password" listener="{signUpPassword}"
serviceErrors="{Rx.errors}"/>
<mx:Form>
<mx:FormItem label="Username" required="true">
<mx:TextInput id="signUpUsername" width="190"/>
</mx:FormItem>
<mx:FormItem label="Email" required="true">
<mx:TextInput id="signUpEmail" width="190"/>
</mx:FormItem>
<mx:FormItem label="Password" required="true">
<mx:TextInput id="signUpPassword" width="190" displayAsPassword="true"/>
</mx:FormItem>
</mx:Form>
</mx:Canvas>
private function signUp():void {
var account:Account = new Account;
account.login = signUpUsername.text;
account.password = signUpPassword.text;
account.create();
}
| state | property |
public var state:ModelsMetadataencapsulates models control metadata and state
| ModelsController | () | constructor |
public function ModelsController(models:Array)Creates a new instance of the controller.
Parametersmodels:Array — the array of model classes to register e.g. [Model1, Model2]
|
| cached | () | method |
public function cached(clazz:Class):ModelsCollectionGet current cache representation for a particular model class.
Parametersclazz:Class — model class to look up
|
ModelsCollection |
| create | () | method |
public function create(object:Object, optsOrOnSuccess:Object = null, onFailure:Function = null, nestedBy:Array = null, metadata:Object = null, recursive:Boolean = false, targetServiceId:int = -1, customProcessor:Function = null, unmarshallDisconnected:Boolean = false):voidPerform REST create operation.
Parametersobject:Object — object to create
|
|
optsOrOnSuccess:Object (default = null) — if this is a Function or an IResponder, we treat it as a callback to invoke
when the service returns; otherwise, we treat it as an anonymous Object of key/value pairs which can be used to
clober the value of any subsequent parameters.
|
|
onFailure:Function (default = null) — callback function invoked if service call fails
|
|
nestedBy:Array (default = null) — an array of model instances that should used to nest this request under
|
|
metadata:Object (default = null) — an object (a hash of key value pairs that should be tagged on to the request)
|
|
recursive:Boolean (default = false) — service provider to use
|
|
targetServiceId:int (default = -1) — if provided then it will be used instead of the standard service provider workflow,
this allows you to fully customize create processing. This function should have the same signature as
IServiceProvider#create
|
|
customProcessor:Function (default = null) |
|
unmarshallDisconnected:Boolean (default = false) |
See also
Rx.models.create(project); // project is an instance variable of a model class
| destroy | () | method |
public function destroy(object:Object, optsOrOnSuccess:Object = null, onFailure:Function = null, nestedBy:Array = null, metadata:Object = null, recursive:Boolean = false, targetServiceId:int = -1, customProcessor:Function = null, unmarshallDisconnected:Boolean = false):voidPerform REST destroy operation. For example:
Parametersobject:Object — object to destroy
|
|
optsOrOnSuccess:Object (default = null) — if this is a Function or an IResponder, we treat it as a callback to invoke
when the service returns; otherwise, we treat it as an anonymous Object of key/value pairs which can be used to
clober the value of any subsequent parameters.
|
|
onFailure:Function (default = null) — callback function invoked if service call fails
|
|
nestedBy:Array (default = null) — an array of model instances that should used to nest this request under
|
|
metadata:Object (default = null) — an object (a hash of key value pairs that should be tagged on to the request)
|
|
recursive:Boolean (default = false) — service provider to use
|
|
targetServiceId:int (default = -1) — if provided then it will be used instead of the standard service provider workflow,
this allows you to fully customize destroy processing. This function should have the same signature as
IServiceProvider#destroy
|
|
customProcessor:Function (default = null) |
|
unmarshallDisconnected:Boolean (default = false) |
See also
Rx.models.destroy(project); // project is an instance variable of a model class
| index | () | method |
public function index(clazz:Class, optsOrOnSuccess:Object = null, onFailure:Function = null, nestedBy:Array = null, metadata:Object = null, fetchDependencies:Boolean = true, useLazyMode:Boolean = true, append:Boolean = false, targetServiceId:int = -1, customProcessor:Function = null, unmarshallDisconnected:Boolean = false):ModelsCollectionPerform REST index operation.
Parametersclazz:Class — the Class to index
|
|
optsOrOnSuccess:Object (default = null) — if this is a Function or an IResponder, we treat it as a callback to invoke
when the service returns; otherwise, we treat it as an anonymous Object of key/value pairs which can be used to
clober the value of any subsequent parameters.
|
|
onFailure:Function (default = null) — callback function to call if the service call fails
|
|
nestedBy:Array (default = null) — an array of model instances that should used to nest this request under
|
|
metadata:Object (default = null) — an object (a hash of key value pairs that should be tagged on to the request)
|
|
fetchDependencies:Boolean (default = true) — if true model dependencies will be recursively fetched as well
|
|
useLazyMode:Boolean (default = true) — if true dependencies marked with [Lazy] will be skipped (not fetched)
|
|
append:Boolean (default = false) — if true then target ModelsCollection will not be reset but just appended to (default is to reset)
|
|
targetServiceId:int (default = -1) — service provider to use
|
|
customProcessor:Function (default = null) — if provided then it will be used instead of the standard service provider workflow,
this allows you to fully customize index processing. This function should have the same signature as
IServiceProvider#index
|
|
unmarshallDisconnected:Boolean (default = false) — if true then the unmarshaller will not try to link up the result with other items in the cache
|
ModelsCollection |
Rx.models.index(Project);
Rx.models.index(Project, myOnSuccess, [company]);
Rx.models.index(Project, {onSuccess:myOnSuccessFunction, nestedBy:[company]});
This means that you can specify arguments in order (which means you'll have to provide arguments for all parameters even if you really just want to specify the last one for example) or you can specify them selectively.
In order to specify arguments selectively you can use the {} syntax
and then refer to the arguments by name.
| indexAll | () | method |
public function indexAll(... models):voidA shortcut to index multiple models at once. Useful if you don't want to define any special options, such as callbacks, metadata, etc.
Parameters... models — a list of models to index
|
| indexed | () | method |
public function indexed(... models):BooleanChecks to see if specified models have been index
Parameters... models — of models
|
Boolean — true if all the models have been indexed, false otherwise
|
Rx.models.indexed(Project, Task, RandomStuff) // true of false
| reload | () | method |
public function reload(object:Object, optsOrOnSuccess:Object = null, onFailure:Function = null, nestedBy:Array = null, metadata:Object = null, fetchDependencies:Boolean = true, useLazyMode:Boolean = true, append:Boolean = false, targetServiceId:int = -1, customProcessor:Function = null, unmarshallDisconnected:Boolean = false):voidForce reload of a particular model instance or the entire model cache.
Parametersobject:Object — model instance or model Class reference to reload
|
|
optsOrOnSuccess:Object (default = null) — if this is a Function or an IResponder, we treat it as a callback to invoke
when the service returns; otherwise, we treat it as an anonymous Object of key/value pairs which can be used to
clober the value of any subsequent parameters.
|
|
onFailure:Function (default = null) — callback function invoked if service call fails
|
|
nestedBy:Array (default = null) — an array of model instances that should used to nest this request under
|
|
metadata:Object (default = null) — an object (a hash of key value pairs that should be tagged on to the request)
|
|
fetchDependencies:Boolean (default = true) — if true model dependencies will be recursively fetched as well
|
|
useLazyMode:Boolean (default = true) — if true dependencies marked with [Lazy] will be skipped (not fetched)
|
|
append:Boolean (default = false) — set this to true if you don't want to nuke target ModelsCollection
|
|
targetServiceId:int (default = -1) — service provider to use
|
|
customProcessor:Function (default = null) — if provided then it will be used instead of the standard service provider workflow,
this allows you to fully customize index/show processing. This function should have the same signature as
IServiceProvider#index/show
|
|
unmarshallDisconnected:Boolean (default = false) |
| reloadAll | () | method |
public function reloadAll(... models):voidA shortcut to reload multiple models at once. Useful if you don't want to define any special options, such as callbacks, metadata, etc.
Parameters... models — a list of models to reload
|
| reset | () | method |
public function reset(object:Object = null, hard:Boolean = false):voidResets model metadata.
Parametersobject:Object (default = null) — can be a model class or specific model instance
|
|
hard:Boolean (default = false) |
See also
| show | () | method |
public function show(object:Object, optsOrOnSuccess:Object = null, onFailure:Function = null, nestedBy:Array = null, metadata:Object = null, fetchDependencies:Boolean = true, useLazyMode:Boolean = false, targetServiceId:int = -1, customProcessor:Function = null, unmarshallDisconnected:Boolean = false):RxModelPerform REST show operation.
Parametersobject:Object — object to show
|
|
optsOrOnSuccess:Object (default = null) — if this is a Function or an IResponder, we treat it as a callback to invoke
when the service returns; otherwise, we treat it as an anonymous Object of key/value pairs which can be used to
clober the value of any subsequent parameters.
|
|
onFailure:Function (default = null) — callback function which is invoked if there are errors during service call
|
|
nestedBy:Array (default = null) — an array of model instances that should used to nest this request under
|
|
metadata:Object (default = null) — an object (a hash of key value pairs that should be tagged on to the request)
|
|
fetchDependencies:Boolean (default = true) — if true model dependencies will be recursively fetched as well
|
|
useLazyMode:Boolean (default = false) — if true dependencies marked with [Lazy] will be skipped (not fetched)
|
|
targetServiceId:int (default = -1) — service provider to use
|
|
customProcessor:Function (default = null) — if provided then it will be used instead of the standard service provider workflow,
this allows you to fully customize show processing. This function should have the same signature as
IServiceProvider#show
|
|
unmarshallDisconnected:Boolean (default = false) |
RxModel |
See also
Rx.models.show(project); // project is an instance variable of a model class
| showById | () | method |
public function showById(clazz:Class, id:Object, optsOrOnSuccess:Function = null, onFailure:Array = null, nestedBy:Object = null, metadata:Boolean = null, fetchDependencies:Boolean = true, useLazyMode:int = false, targetServiceId:Function = -1, customProcessor:Boolean = null, unmarshallDisconnected:* = false):RxModel
A different take on show method.
clazz:Class |
|
id:Object |
|
optsOrOnSuccess:Function (default = null) |
|
onFailure:Array (default = null) |
|
nestedBy:Object (default = null) |
|
metadata:Boolean (default = null) |
|
fetchDependencies:Boolean (default = true) |
|
useLazyMode:int (default = false) |
|
targetServiceId:Function (default = -1) |
|
customProcessor:Boolean (default = null) |
|
unmarshallDisconnected:* (default = false) |
RxModel |
Rx.models.showById(Project, "123123");
| shown | () | method |
public function shown(object:Object, id:* = null):BooleanChecks to see if specified model has been shown
Parametersobject:Object — of models
|
|
id:* (default = null) |
Boolean — true if all the models have been indexed, false otherwise
|
Rx.models.shown(Project, "123123") // true of false
// Or
Rx.models.shown(project);
| update | () | method |
public function update(object:Object, optsOrOnSuccess:Object = null, onFailure:Function = null, nestedBy:Array = null, metadata:Object = null, recursive:Boolean = false, targetServiceId:int = -1, customProcessor:Function = null, unmarshallDisconnected:Boolean = false):voidPerform REST update operation. For example: Rx.models.update(project);
Parametersobject:Object — object to update
|
|
optsOrOnSuccess:Object (default = null) — if this is a Function or an IResponder, we treat it as a callback to invoke
when the service returns; otherwise, we treat it as an anonymous Object of key/value pairs which can be used to
clober the value of any subsequent parameters.
|
|
onFailure:Function (default = null) — an array of model instances that should used to nest this request under
|
|
nestedBy:Array (default = null) — an object (a hash of key value pairs that should be tagged on to the request)
|
|
metadata:Object (default = null) — service provider to use
|
|
recursive:Boolean (default = false) — if provided then it will be used instead of the standard service provider workflow,
this allows you to fully customize update processing. This function should have the same signature as
IServiceProvider#update
|
|
targetServiceId:int (default = -1) |
|
customProcessor:Function (default = null) |
|
unmarshallDisconnected:Boolean (default = false) |
See also