| Package | mx.data |
| Class | public class DataService |
| Inheritance | DataService Object |
| Implements | IEventDispatcher |
| Subclasses | DataService |
A DataService is constructed specifying the desired destination. These destinations are configured from the services-config.xml file.
There are two different sets of methods that retreive data from the specified remote destination. The first are for collection managed objects. The second are for Single Managed Objects or SMO.
For the collection managed objects the DataService.fill() method
is used.
This method populates an ArrayCollection with objects that this services
will manage.
To get Single Managed Objects the DataService.getItem() and
DataService.createItem() methods are used.
When a previously filled ArrayCollection is no longer needed,
or the items within that collection should no longer receive or create
updates, the DataService.releaseCollection() method is called.
When an item previously retreived using DataService.getItem()
or DataService.createItem() is no longer needed or should not
receive or create updates, the DataService.releaseItem() method
is be called.
The DataService.createItem() and
DataService.getItem() methods return an
ItemReference.
This object can be used to release a specific instance of a single managed
object.
Unlike the DataService.releaseItem() method, calling
ItemReference.releaseItem() will release a specific instance of
an SMO.
DataService.releaseItem() will release the first SMO that it
finds with a matching identity to that specified.
This is normally okay as long as the number of calls to
DataService.getItem() and DataService.createItem()
matches the number of calls to DataService.releaseItem().
A connection to the remote destination is created automatically the first
time any methods that require a connection are called.
For example, calling the DataService.fill() method or
DataService.commit() operation when there are uncommited
updates will attempt to establish a connection to the remote destination.
To force a DataService to become disconnected use the
DataService.disconnect() method.
This method can be used to clean up remote destination resources when no
longer needed.
Because other services may be using the same physical connection calling
DataService.disconnect() may terminate the connection.
The bindable property connected indicates the current state
of the associated DataService connection.
If a remote destination has declared any security constraints for an
operation, credentials must be provided.
Credentials are set via the DataService.setCredentials() call.
This turns into a login command at the remote destination.
To change credentials or invalidate the current session
DataService.logout() can be called.
When called the DataService.logout() method will release all
local managed data.
It is equivalent to calling DataService.release().
Each DataService has a dataStore property that
returns an object of type mx.data.DataStore.
This object stores the uncommitted changes for one or more
DataService objects.
By default, a DataServiceshares the same
DataService with other data services if they have managed
association properties and share the same set of channels.
When sharing DataStores, a commit() method
call on one DataService commits changes for all
DataService using the shared data store.
This preserves the order of operations in the event there are dependencies
between the changes in the associated DataService objects.
DataService and DataService dispatch result and fault events for all operations that require a remote call.
Data binding can be used on properties of any managed instances for a
DataService.
DataService will also dispatch a "message" event when a remote
operation occurs for any managed object.
For example when a locally managed item is updated by a remote process a
message will be pushed to all DataService instances that are
still managing that item.
This message is dispatched as a MessageEvent.MESSAGE event.
When a conflict is detected either at the remote destination in response to
a change committed by the DataService, or due to a pushed
change which conflicts with a local uncommitted change, a conflict
event is dispatched.
These events can be handled by listening for the
DataConflictEvent.CONFLICT.
Data binding can be employed to update UI controls by binding to the
DataService.conflicts.resolved property.
DataService supports the following data synchronization configuration modes:
autoCommit - when true each change is immediately sent to
the remote destination once detected.
When this is false, an explicit call to commit must be made.
The bindable DataService.commitRequiredproperty can be used to
determine whether or not there are uncommitted changes.
autoSyncEnabled - This affects any fill, getItem or
createItem calls made and determines whether managed instances listen for
changes made to these objects by other clients or using the server push api
at the remote destination.autoMerge property controls whether or not changes received
from a remote destination are applied immediately or queued up until
a call to DataService.merge() is made.
The DataService.revertChanges() method is used to revert
changes for a specific item or for all items.
When an error occurs for a remote destination operation, the committed
changes are put back into the uncommitted queue so the data stays in sync
with the remote destination data.
If the changes are in error, typically a call to
DataService.revertChanges() is made to undo the changes as part
of a fault handler.
The mx.data.mxml.DataService class is an MXML-specific subclass of mx.data.DataService that allows binding to the properties of a DataService.
MXML Syntax
Hide MXML Syntax
The <mx:DataService> tag accepts the following tag attributes:
<mx:DataService Properties autoCommit="true" autoSyncEnabled="true" autoMerge="true" conflictDetector="No default." dataStore="No default." destination="No default." pageSize="No default." id="No default." Events conflict="No default." fault="No default." message="No default." propertyChange="No default." result="No default." />
See also
| Property | Defined By | ||
|---|---|---|---|
| autoCommit : Boolean
Indicates if changes to the local cache are automatically committed.
| DataService | ||
| autoConnect : Boolean
Indicates if this service should attempt to connect for any operations
that require a connection.
| DataService | ||
| autoMerge : Boolean
If set to false, when changes are pushed from the remote
destination to the client they are not immediately applied.
| DataService | ||
| autoSaveCache : Boolean
The local cache of data and changes can be stored to disk.
| DataService | ||
| autoSyncEnabled : Boolean
When true, fill(), createItem() and
getItem() requests return items which listen for updates
made to these items from the remote destination.
| DataService | ||
| cacheID : String
Provides access to the cache identifier for this service.
| DataService | ||
| channelSet : ChannelSet
Provides access to the ChannelSet used by the service.
| DataService | ||
| commitRequired : Boolean
[read-only]
Indicates if there are changes that have not been committed and
the commit() method should be called.
| DataService | ||
| conflictDetector : ConflictDetector
Provides access to the current implementation being used to
detect conflicts for remote operations pushed to this
DataService.
| DataService | ||
| conflicts : Conflicts
[read-only]
Returns the Conflicts object, an ArrayList of
Conflict instances.
| DataService | ||
| connected : Boolean
[read-only]
Indicates if the DataService is connected to the remote destination.
| DataService | ||
![]() | constructor : Object
A reference to the class object or constructor function for a given object instance.
| Object | |
| dataStore : DataStore
Returns an object of type mx.data.DataStore.
| DataService | ||
| destination : String
[read-only]
Indicates which remote destination this service is associated with.
| DataService | ||
| indexReferences : Boolean
To tune the speed of your application, set this to false if you have a small number of
fills or references to items managed by this data service from association properties
of other items.
| DataService | ||
| isInitialized : Boolean
[read-only]
Indicates if the metadata associated with this service is initialized.
| DataService | ||
| manualSync : ManualSyncConfiguration
The manualSync property provides access to the ManualSyncConfiguration
instance for each data service.
| DataService | ||
| mergeRequired : Boolean
[read-only]
Indicates if there are any pending changes that must be
merged.
| DataService | ||
| pageSize : int
Provides access to the current page size setting for all collections.
| DataService | ||
| pagingEnabled : Boolean
[read-only]
Indicates if the remote destination is configured to allow paged
requests.
| DataService | ||
![]() | prototype : Object
[static]
A reference to the prototype object of a class or function object.
| Object | |
| requestTimeout : int
Provides access to the request timeout in seconds for an operation.
| DataService | ||
| Method | Defined By | ||
|---|---|---|---|
|
DataService(destination:String)
Constructs an instance of the DataService with the specified
destination.
| DataService | ||
|
Clears any data stored to disk with a previous call to
saveCache() or when autoSaveCache was set to
true
| DataService | ||
|
Clears the data specified by the passed descriptor from the local store.
| DataService | ||
|
Commits pending changes for all collections currently managed by
the DataStore associated with this data service.
| DataService | ||
|
Forces a connection attempt by this service to the remote destination.
| DataService | ||
|
Calls a count method on the remote destination.
| DataService | ||
|
Requests that the specified item be created in the remote store.
| DataService | ||
|
Requests that the specified item be deleted from the remote store.
| DataService | ||
|
Disconnects the DataService's network connection.
| DataService | ||
|
Fills the specified ListCollectionView based
on the associated <fill-method> elements.
| DataService | ||
|
Returns an ArrayCollection or a single managed object (SMO) from the
the local store.
| DataService | ||
|
This method will fill the specified ListCollectionView with
CacheDataDescriptor(s).
| DataService | ||
|
This method will fill the specified ListCollectionView
with all cache identifiers previously used in the application.
| DataService | ||
|
Makes an asynchronous request for an item matching the
specified identity.
| DataService | ||
|
Looks up the supplied item with the given identity.
| DataService | ||
|
Returns the pending operation in the message cache for the specified
item.
| DataService | ||
![]() |
Indicates whether an object has a specified property defined.
| Object | |
|
Forces initialization of the DataStore.
| DataService | ||
|
Returns true if the passed collection is managed by this service.
| DataService | ||
![]() |
Indicates whether an instance of the Object class is in the prototype chain of the object specified
as the parameter.
| Object | |
|
Logs the user out of the destination for the DataService.
| DataService | ||
|
Merges any pending updates into the managed set of objects.
| DataService | ||
![]() |
Indicates whether the specified property exists and is enumerable.
| Object | |
|
Releases all managed collections and items for the DataService.
| DataService | ||
|
Releases any item within the specified collection from management by
this service.
| DataService | ||
|
Releases the specified item from management by this service.
| DataService | ||
|
Reverts any uncommitted changes to the specified item.
| DataService | ||
|
This method will save the current state of the DataService cache.
| DataService | ||
|
Sets the credentials for this DataService destination.
| DataService | ||
![]() |
Sets the availability of a dynamic property for loop operations.
| Object | |
|
Sets the credentials for the third party of this DataService destination.
| DataService | ||
![]() |
Returns the string representation of the specified object.
| Object | |
![]() |
Returns the primitive value of the specified object.
| Object | |
| Event | Summary | Defined By | ||
|---|---|---|---|---|
| The DataConflictEvent.CONFLICT event is dispatched when a conflict is detected between either pending local changes and changes submitted by another client, or when changes submitted by this client are conflicting with those in the remote destination. | DataService | |||
| The DataServiceFaultEvent.FAULT event is dispatched when a service call fails due to an error. | DataService | |||
| The MessageEvent.MESSAGE event is dispatched when the remote destination pushes a notification of a data operation. | DataService | |||
| The PropertyChangeEvent.PROPERTY_CHANGE event is dispatched when a property of this service changes. | DataService | |||
| The ResultEvent.RESULT event is dispatched when a service call successfully returns. | DataService | |||
| autoCommit | property |
autoCommit:Boolean [read-write] Indicates if changes to the local cache are automatically committed. Committed changes are sent to the remote service immediately.
public function get autoCommit():Boolean
public function set autoCommit(value:Boolean):void
| autoConnect | property |
autoConnect:Boolean [read-write]
Indicates if this service should attempt to connect for any operations
that require a connection.
Operations like fill(), getItem() and count() will attempt to connect
if the service is disconnected and autoConnect is set
to true.
Use this property to control occasionally connected application behavior.
public function get autoConnect():Boolean
public function set autoConnect(value:Boolean):void
| autoMerge | property |
autoMerge:Boolean [read-write]
If set to false, when changes are pushed from the remote
destination to the client they are not immediately applied.
Instead, the mergeRequired property is set to true.
An event handler can be registered to listen for change events on this
property to be notified of when a merge needs to be applied.
To merge changes, call the merge() method and all
changes are applied.
Uncommited changes can not be committed when there are any changes that
need to be merged.
If paging is enabled all requests for non local items are cached
until merge() is called.
Once merge() is called, the cached requests are
processed.
public function get autoMerge():Boolean
public function set autoMerge(value:Boolean):void
| autoSaveCache | property |
autoSaveCache:Boolean [read-write]
The local cache of data and changes can be stored to disk.
When autoSaveCache is true each time a change
is made or a remote request is returned, that data will be saved to disk.
If there is a problem saving the data either because the disk is full
or write permissions have been denied a FaultEvent will be
dispatched or a Fault will be thrown.
Setting this value to false (the default) will not save any
data or changes to disk.
To force the current data and changes to be saved to disk use the
saveCache method.
public function get autoSaveCache():Boolean
public function set autoSaveCache(value:Boolean):void
See also
| autoSyncEnabled | property |
autoSyncEnabled:Boolean [read-write]
When true, fill(), createItem() and
getItem() requests return items which listen for updates
made to these items from the remote destination.
When a change is made to this property value, it only affects future
calls to these methods, not existing collections or items.
Also note that when a mix of collections retrieved with
autoSyncEnabled and those that were filled without
autoSyncEnabled, any items appearing in both collections
will still receive update events.
public function get autoSyncEnabled():Boolean
public function set autoSyncEnabled(value:Boolean):void
| cacheID | property |
cacheID:String [read-write]
Provides access to the cache identifier for this service.
A cache identifier must be set prior to performing any operations that
require interaction with data stored locally on disk.
If a cache identifier is not set all cache methods and properties are
considered inconsistent and a DataServiceError will be
thrown during any operation that requires data from the local disk.
This property is provides a unique "session" identifier for data stored
locally.
A developer must set this property to a unique value for the
application.
A value of null or empty string is considered unset.
Requests for data by methods like fill() and
getItem() will attempt to access the local data on disk
first if the cacheID has been set.
If the cachID is not set no attempt to access any
local data will be made.
public function get cacheID():String
public function set cacheID(value:String):void
| channelSet | property |
channelSet:ChannelSet [read-write]
Provides access to the ChannelSet used by the service.
The ChannelSet can be manually constructed and assigned, or it will be
dynamically created to use the configured Channels for the
destination for this service.
public function get channelSet():ChannelSet
public function set channelSet(value:ChannelSet):void
| commitRequired | property |
commitRequired:Boolean [read-only]
Indicates if there are changes that have not been committed and
the commit() method should be called.
When this property changes, an event is dispatched.
This property can be used within an application to provide visual
feedback.
This property can be used as the source for data binding.
public function get commitRequired():Boolean
| conflictDetector | property |
conflictDetector:ConflictDetector [read-write] Provides access to the current implementation being used to detect conflicts for remote operations pushed to this DataService.
public function get conflictDetector():ConflictDetector
public function set conflictDetector(value:ConflictDetector):void
| conflicts | property |
conflicts:Conflicts [read-only]
Returns the Conflicts object, an ArrayList of
Conflict instances.
Conflicts must be resolved before commit() can be called.
Conflicts can be resolved by going through the conflicts, resolving each
conflict individually or by calling the acceptAllClient()
method or acceptAllServer() method on this property.
public function get conflicts():Conflicts
| connected | property |
connected:Boolean [read-only] Indicates if the DataService is connected to the remote destination.
This property can be used as the source for data binding.
public function get connected():Boolean
| dataStore | property |
dataStore:DataStore [read-write] Returns an object of type mx.data.DataStore. The DataStore manages the set of incoming and outgoing changes for one or more DataServices, which may have references between them. When you commit on a DataStore, all of the pending changes of each DataService using that DataStore are committed. By default, a DataService shares the same DataStore with other DataServices if they have managed association properties and share the same set of channels. If you are sharing DataStores, a commit call on one DataService commits changes for all DataServices using that data store. This preserves the order of operations in case there are dependencies between the changes in your uncommitted batches.
This property can be used as the source for data binding.
public function get dataStore():DataStore
public function set dataStore(value:DataStore):void
| destination | property |
destination:String [read-only] Indicates which remote destination this service is associated with.
public function get destination():String
| indexReferences | property |
indexReferences:Boolean [read-write] To tune the speed of your application, set this to false if you have a small number of fills or references to items managed by this data service from association properties of other items.
public function get indexReferences():Boolean
public function set indexReferences(value:Boolean):void
| isInitialized | property |
isInitialized:Boolean [read-only] Indicates if the metadata associated with this service is initialized.
public function get isInitialized():Boolean
| manualSync | property |
manualSync:ManualSyncConfiguration [read-write] The manualSync property provides access to the ManualSyncConfiguration instance for each data service. This class allows you to subscribe to changes made by other clients or on the server and it allows you to control how your changes are published to other clients which subscribe using this interface.
public function get manualSync():ManualSyncConfiguration
public function set manualSync(value:ManualSyncConfiguration):void
| mergeRequired | property |
mergeRequired:Boolean [read-only] Indicates if there are any pending changes that must be merged.
This property can be used as the source for data binding.
public function get mergeRequired():Boolean
| pageSize | property |
pageSize:int [read-write] Provides access to the current page size setting for all collections.
public function get pageSize():int
public function set pageSize(value:int):void
| pagingEnabled | property |
pagingEnabled:Boolean [read-only] Indicates if the remote destination is configured to allow paged requests.
public function get pagingEnabled():Boolean
| requestTimeout | property |
requestTimeout:int [read-write] Provides access to the request timeout in seconds for an operation. A value less than or equal to zero prevents request timeout. When a current operation times out due to the requestTimeout limit being reached a fault will be dispatched for that operation, indicating that the request was timed out. Note that when an operation times out, it is possible the server did in fact receive that operation. This can leave your client state out of sync with the server.
public function get requestTimeout():int
public function set requestTimeout(value:int):void
| DataService | () | Constructor |
public function DataService(destination:String)
Constructs an instance of the DataService with the specified destination. The destination must be a reference to a destination configured in the services-config.xml file.
Parametersdestination:String — that contains the name of the desired destination.
|
| clearCache | () | method |
public function clearCache(value:Object = null):AsyncToken
Clears any data stored to disk with a previous call to
saveCache() or when autoSaveCache was set to
true
Parameters
value:Object (default = null) — Object reference to either a managed single object or
ArrayCollection.
|
AsyncToken — AsyncToken which can be used to respond to the success or
failure of the operation.
|
| clearCacheData | () | method |
public function clearCacheData(descriptor:CacheDataDescriptor):AsyncToken
Clears the data specified by the passed descriptor from the local store.
Parameters
descriptor:CacheDataDescriptor — descriptor reference to the descriptor for
the data that should be removed from the local cache
|
AsyncToken — ASyncToken reference to the token that can be used to determine
when the result or fault has occurred for this operation.
|
| commit | () | method |
public function commit(itemsOrCollections:Array = null, cascadeCommit:Boolean = false):AsyncToken
Commits pending changes for all collections currently managed by the DataStore associated with this data service. Calling this method is equivalent to calling dataStore.commit().
When the autoCommit property is true, transactions
are not used and you do not need to call this method.
To use transactions, set the autoCommit property to
false and call this method directly to commit a batch of changes.
You typically just call "commit()" with no arguments which will commit all pending changes. You can supply optional arguments to commit a subset of the pending changes. You must resolve all outstanding conflicts before you can commit changes to any item in the DataStore.
If the assembler is configured to have use-transactions set to true, all changes are committed atomically. If any operation fails, none of the operations in the batch are applied. If use-transactions is set to false, the operations are each committed individually until a failure occurs at which point processing stops. Any changes that occur before the error are applied, any changes which occur after the error are not applied. When an error occurs when processing a batch, the changes are put back into the uncommitted queue. You need to call revertChanges if you want to remove the changes which caused the error.
By default, the commit method will commit all pending changes for all items which have been created, modified, and deleted for this DataStore. If you want to commit a subset of these changes, you can specify a combination of managed ArrayCollection instances and/or managed items which define the subset of changes you want included in the batch. For each array collection you specify, any changes made either to the membership or order of items in that that array collection or any changes to items in that array collection are committed. You can also specify a list of individual managed items so that only changes for those items are committed. If you specify any objects in the itemsOrCollections parameter which are not managed collections or items, a DataServiceError is thrown.
If you are using the itemsOrCollections parameter and your items have association properties which refer to other items, you can use the cascadeCommit parameter to control whether or not changes made to associated items are also included in batch. For example, if you specify a Group item in the items parameter, and the Group instance has a members property which refers to a list of Person instances when cascadeCommit is true changes to any Person instance will also be included in the set of changes committed. If cascadeCommit is false, only changes to the Group would be included. Use cascadeCommit=true to ensure that any dependent changes are included in the batch.
Parameters
itemsOrCollections:Array (default = null) — This is an optional parameter which defaults to null when
you want to commit all pending changes. If you want to commit a subset of the pending
changes use this argument to specify a list of managed ListCollectionView instances
and/or managed items. ListCollectionView objects are most typically ArrayCollections
you have provided to your fill method. The items appropriate for this method are
any managed version of the item. These are any items you retrieve from getItem, createItem
or using the getItemAt method from a managed collection. Only changes for the
items defined by any of the values in this array will be committed.
|
|
cascadeCommit:Boolean (default = false) — if true, also commit changes made to any associated
items supplied in this list.
|
AsyncToken — AsyncToken that is returned in call property of
either the ResultEvent.RESULT or in the
FaultEvent.FAULT.
Custom data can be attached to this object and inspected later
during the event handling phase. If no changes have been made
to the relevant items, null is returned instead of an AsyncToken.
|
Error — if initialization is in progress. This may
occur when a runtime destination is referenced and commit is called before
this service has been initialized, or if the cacheID has been set and
the local cache has not been loaded. In each situation waiting for the
result or fault on a token returned from a call to initialize or from
a previous operation, before calling commit will avoid the error.
|
| connect | () | method |
public function connect():AsyncToken
Forces a connection attempt by this service to the remote destination.
This method may be used in conjunction with the autoConnect
property and disconnect() method to control connection
status.
AsyncToken — AsyncToken reference to the token that will identify this
operation in a result or fault event dispatched from this service.
When calling connect() the token's result handler will
always be called and the result will be the current value of this
service's connected property.
|
| count | () | method |
public function count(... args):AsyncToken
Calls a count method on the remote destination.
The count method called is based on the associated <count-method>
tags and the parameters passed.
For example, if the following
count("firstName", "Bob") call was made and
<count-method> tags exist or are referenced in the
services-config.xml under the associated destination:
<count-method>
<name>getCount</name>
<params>java.lang.String,java.lang.String</params>
<security-run-as name="freddie" password="nightmare" />
</count-method>
<count-method>
<name>getCount</name>
<security-constraint ref="sample-users" />
</count-method>
Parameters
... args — List of arguments that should be passed to the remote
destination.
|
AsyncToken — Object returned in the call property of
the ResultEvent.RESULT or in the
FaultEvent.FAULT.
Custom data can be attached to this object and inspected later
during the event handling phase.
|
See also
| createItem | () | method |
public function createItem(item:Object):ItemReference
Requests that the specified item be created in the remote store.
If an error occurs a DataConflictEvent is dispatched.
Parameters
item:Object — that should be created in the remote store.
|
ItemReference — ItemReference (which extends AsyncToken). This reference is
returned in the token property of either the
ResultEvent.RESULT or in the FaultEvent.FAULT.
Custom data can be attached to this object and inspected later during
the event handling phase.
The result property of this object is bindable and can be
used to bind the item returned. This result object is set to null if
the item is removed from another client. If you hold on to ItemReference
objects in your application, you should call the
releaseItem() method in the ItemReference when
you are finished with this reference to the item.
If you do not hold onto the ItemReferences, you can use the
releaseItem() method on the DataService, which takes the
instance of the item itself to release.
When createItem() fails, it returns a fault. However, the
item is still pending. You must call release() to remove it.
|
| deleteItem | () | method |
public function deleteItem(item:Object):AsyncToken
Requests that the specified item be deleted from the remote store.
If an error occurs a DataConflictEvent will be dispatched.
Parameters
item:Object — that should be deleted in the remote store.
|
AsyncToken — AsyncToken that will be returned in the token
property of either the ResultEvent.RESULT or in the
FaultEvent.FAULT.
Custom data can be attached to this object and inspected later during
the event handling phase.
|
| disconnect | () | method |
public function disconnect():void
Disconnects the DataService's network connection. This method does not wait for outstanding network operations to complete.
| fill | () | method |
public function fill(value:ListCollectionView, ... args):AsyncToken
Fills the specified ListCollectionView based on the associated <fill-method> elements. For example, if the following <fill-method> elements exist or are referenced in the services-config.xml under the associated destination:
<fill-method>
<name>loadPersons</name>
<params>java.lang.String,java.lang.String</params>
<security-run-as name="freddie" password="nightmare" />
</fill-method>
<fill-method>
<name>loadPersons</name>
<security-constraint ref="sample-users" />
</fill-method>
Then calling fill(myCollection, ["firstName", "Bob"])
invokes the first <fill-method> with the run-as security setting
since it contains two parameters, matching the <params> tag types
and count.
Likewise, calling fill(myCollection) invokes the second
<fill-method> tag as it contains no <params> tag.
Any pending changes or data is cleared during a call to fill.
Parameters
value:ListCollectionView — to the collection that should
be filled with the specified arguments.
|
|
... args — rest:Array variable list of arguments that should be passed
to the remote
destination.
|
AsyncToken — Object that is returned in the call property of
the ResultEvent.RESULT or in the
FaultEvent.FAULT.
Custom data can be attached to this object and inspected later
during the event handling phase.
|
| getCacheData | () | method |
public function getCacheData(descriptor:CacheDataDescriptor):AsyncToken
Returns an ArrayCollection or a single managed object (SMO) from the the local store. Calling this method will not update the last accessed time.
Parameters
descriptor:CacheDataDescriptor — CacheDataDescriptor for the desired cache data.
|
AsyncToken — AsyncToken reference to the token that can be used to determine
when the result or fault has occurred for this operation.
The result property of the AsyncToken or on the associated event will
contain a new instance of an unmanaged ArrayCollection or ItemReference
for each call.
|
| getCacheDescriptors | () | method |
public function getCacheDescriptors(view:ListCollectionView, options:uint = 0, item:Object = null):AsyncToken
This method will fill the specified ListCollectionView with
CacheDataDescriptor(s).
If no argument is specified then all associated
CacheDataDescriptors
for cached data under this service will be returned.
Parameters
view:ListCollectionView — ListCollectionView reference to a collection that can be
filled with the desired descriptors.
|
|
options:uint (default = 0) — uint must be one of the following constants:
|
|
item:Object (default = null) — Object reference to a specific ItemReference,
managed item, or ListCollectionView, when specified this
parameter overrides the options argument.
|
AsyncToken — AsyncToken reference to the token that will identify this
operation in a result or fault event dispatched from this service.
|
| getCacheIDs | () | method |
public function getCacheIDs(view:ListCollectionView):AsyncToken
This method will fill the specified ListCollectionView
with all cache identifiers previously used in the application.
Parameters
view:ListCollectionView — ListcollectionView reference to a collection that should be
filled with all cache identifiers previously used in the application.
|
AsyncToken — AsyncToken reference to the token that will identify this
operation in a result or fault event dispatched from this service.
|
| getItem | () | method |
public function getItem(identity:Object, defaultValue:Object = null):ItemReference
Makes an asynchronous request for an item matching the
specified identity. If you provide a defaultValue, and the
item does not exist, the item is created instead using the information
in the defaultValue.
This method returns an ItemReference.
If you receive a valid instance from the getItem() method
call, you must call the releaseItem() method to release an
instance of the item.
If you hang onto the ItemReference, you should call the
releaseItem() method on the reference to be sure you
release the proper reference (in case your client has made more than one
getItem() method call for the same item).
If you do not hold onto the ItemReference, you can call the
releaseItem() method on the DataService with the item
itself.
Parameters
identity:Object — Object that contains the identity properties for the desired object.
|
|
defaultValue:Object (default = null) — An instance of the type with the
default values that should be created if it doesn't exist.
|
ItemReference — ItemReference to the item you want to get. The ItemReference extends
AsyncToken so you can use it to receive notification of when the
item has been retrieved or when this call produces a fault.
The ItemReference is returned as the token property in
either the ResultEvent.RESULT or in the
FaultEvent.FAULT if you are listening for events on
the DataService object.
Custom data can be attached to this object and inspected later
during the event handling phase. You also can use data binding
to bind to the result property of the ItemReference.
This property is set to a valid value when the item is populated
from the remote destination and is bindable so you can simply
bind your user interface controls to the properties of the
ItemReference's result property.
If the item is removed from the server or another client, this
reference is set to null.
The ItemReference also has an invalid property
which is set to true if the are errors returning
the item or if the server returns null for an item.
|
| getLocalItem | () | method |
public function getLocalItem(identity:Object):Object
Looks up the supplied item with the given identity. If the item is already managed on this client, the managed instance is returned. If not, null is returned. Unlike the getItem call, this call does not make a request to the server and does not add an additional reference to the item.
Parameters
identity:Object — Object that contains the identity properties for the desired object.
|
Object — The managed object or null if the item with this id is not yet managed
on this client.
|
| getPendingOperation | () | method |
public function getPendingOperation(item:IManaged):uint
Returns the pending operation in the message cache for the specified item. Use this method to provide visual feedback to a user of what type of change, if any, has been made to an item.
Parameters
item:IManaged — IManaged that should be tested against.
|
uint — uint that indicates what pending operation has been performed.
The following are valid operations for an item:
|
| initialize | () | method |
| isCollectionManaged | () | method |
public function isCollectionManaged(view:ListCollectionView):Boolean
Returns true if the passed collection is managed by this service.
If the collection is managed by this service it is safe to pass the
collection to releaseCollection() to release it from
management.
Parameters
view:ListCollectionView — The ListCollectionView reference to test whether it is
managed by this service.
|
Boolean — True if the collection is managed by this service; otherwise false.
|
| logout | () | method |
public function logout():void
Logs the user out of the destination for the DataService. Logging out of a destination applies to everything connected using the same ChannelSet as specified in the server configuration. For example, if you are connected over the my-rtmp channel and you log out using one of your DataService instances, anything that was connected over the same ChannelSet is logged out.
| merge | () | method |
public function merge():void
Merges any pending updates into the managed set of objects. The process of merging changes detect conflicts and process any pending item requests. This merges all messages for any other DataService instances that share this same data store.
| release | () | method |
public function release():void
Releases all managed collections and items for the DataService.
See also
| releaseCollection | () | method |
public function releaseCollection(view:ListCollectionView, clear:Boolean = false):void
Releases any item within the specified collection from management by this service. If the item exists in more than one collection, a copy of the item is made. Any uncommitted changes made to an item that exists only in this collection are released, including deletes, creates and updates.
Parameters
view:ListCollectionView — ListCollectionView reference that should no longer receive
remote updates.
|
|
clear:Boolean (default = false) — clear Boolean indicating if the all items should be removed from
the list. In addition no copies will be made of any item.
|
| releaseItem | () | method |
public function releaseItem(item:IManaged, allowCopy:Boolean = true):IManaged
Releases the specified item from management by this service. If you hold
onto ItemReferences, you should call the releaseItem() method
on the ItemReference to be sure you release the proper reference in the
case where you might have made more than one getItem call which retrieves
the same item from different parts of your client application.
This call releases any associated resources, including nested properties.
The specified item no longer receives updates from the remote
destination.
In addition if there are any uncommited changes to this item and it does
not appear in any other collection these changes will also be released.
If the specified item exists in more than one collection then the
value handed back will be a copy of the original unless the allowCopy
parameter is set to false.
Parameters
item:IManaged — IManaged reference to the item to be released.
|
|
allowCopy:Boolean (default = true) — Optional parameter that defaults to true.
If true, makes a
copy of the item if it is still referenced by another managed reference.
You can set this to false but it would mean that object might still
get updates from the server if it is still managed through other references.
|
IManaged — the released item which will be a copy if allowCopy=false and the
item is managed by another reference.
|
| revertChanges | () | method |
public function revertChanges(item:IManaged = null):Boolean
Reverts any uncommitted changes to the specified item. Or if no item is supplied, it will revert all uncommitted changes. If you revert a create operation, it removes the item. If you revert a delete, it adds the item back in. Reverting an update restores the original properties of the item that were in place before you started changing it.
One situation in which you would use this method is after a fault has occurred. In that case, any failed changes are put back into the uncommitted changes list. At that point you can either modify those changes to fix the problem or revert them using this method to keep those changes from being resubmitted again.
If an item is supplied and this item doesn't have any changes this method will return false. If no item is supplied and there are no changes this method returns false. Otherwise, it returns true.
Parameters
item:IManaged (default = null) — IManaged reference to revert changes for or null to
revert all changes.
|
Boolean — Boolean indicating if any changes were reverted.
|
| saveCache | () | method |
public function saveCache(value:Object = null):AsyncToken
This method will save the current state of the DataService cache. The cache includes in-memory items and changes made to those items that have not been sent to the remote destination.
Parameters
value:Object (default = null) — value Object reference to either a managed ListCollectionView or
object.
|
AsyncToken — AsyncToken which can be used for notification of when the
operation completes successfully or fails.
|
See also
var customerService:DataService = new DataService("customers");
var customers:ArrayCollection = new ArrayCollection();
customerService.fill(customers);
// ...
var customer:Customer = Customer(customers[0]);
customer.priority = "top";
customerService.saveCache();
// now all of the changes and items in the customers collection
// will be persisted locally
| setCredentials | () | method |
public function setCredentials(username:String, password:String):void
Sets the credentials for this DataService destination. The credentials are applied to all services connected over the same ChannelSet.
Parameters
username:String — username for the destination.
|
|
password:String — The password for the destination
|
| setRemoteCredentials | () | method |
public function setRemoteCredentials(username:String, password:String):void
Sets the credentials for the third party of this DataService destination.
Parameters
username:String — The username for the destination.
|
|
password:String — The password for the destination.
|
| conflict | Event |
mx.data.events.DataConflictEvent
mx.data.events.DataConflictEvent.CONFLICT
The DataConflictEvent.CONFLICT event is dispatched when a
conflict is detected between either pending local changes and changes
submitted by another client, or when changes submitted by this
client are conflicting with those in the remote destination.
Each DataService sends conflict events only for items of this
particular destination.
Use the conflict event on the DataService if you need to handle
conflicts for a set of related destinations at the same time.
The properties of the event object have the following values:
| Property | Value |
|---|---|
bubbles | false |
cancelable | false |
currentTarget | The Object that defines the
event listener that handles the event. For example, if you use
myButton.addEventListener() to register an event listener,
myButton is the value of the currentTarget. |
conflict | The Conflict object that holds the conflict that occurred. |
message | The Message associated with this event. |
target | The Object that dispatched the event;
it is not always the Object listening for the event.
Use the currentTarget property to always access the
Object listening for the event. |
| fault | Event |
mx.data.events.DataServiceFaultEvent
mx.data.events.DataServiceFaultEvent.FAULT
The DataServiceFaultEvent.FAULT event is dispatched when a
service call fails due to an error.
For example, a call to the fill() method dispatches this event
if the call fails.
You'll also get this event for each item which generates an error as part of
a commit result.
In this case, the DataServiceFaultEvent will contain
the token returned by the commit, but the item and error message strings in
the fault are specific to the item which caused the error.
The properties of the event object have the following values:
| Property | Value |
|---|---|
bubbles | false |
cancelable | true, calling preventDefault() from the associated token's responder.fault method will prevent the service or operation from dispatching this event |
currentTarget | The Object that defines the
event listener that handles the event. For example, if you use
myButton.addEventListener() to register an event listener,
myButton is the value of the currentTarget. |
fault | The Fault object that holds the conflict that occurred. |
item | The item that generated the fault. |
identity | The identity of of the item that generated the fault. |
message | The Message associated with this event. |
token | The token that represents the call to the method. Used in the asynchronous completion token pattern. |
target | The Object that dispatched the event;
it is not always the Object listening for the event.
Use the currentTarget property to always access the
Object listening for the event. |
| message | Event |
mx.messaging.events.MessageEvent
mx.messaging.events.MessageEvent.MESSAGE
The MessageEvent.MESSAGE event is dispatched when the remote
destination pushes a notification of a data operation.
For example, when data is updated in the remote destination an update
operation is sent to all clients listening, this operation is converted to
a message event on this DataService.
The value of this constant is "message".
The properties of the event object have the following values:
| Property | Value |
|---|---|
bubbles | false |
cancelable | false |
currentTarget | The Object that defines the
event listener that handles the event. For example, if you use
myButton.addEventListener() to register an event listener,
myButton is the value of the currentTarget. |
message | The message associated with this event. |
target | The Object that dispatched the event;
it is not always the Object listening for the event.
Use the currentTarget property to always access the
Object listening for the event. |
| propertyChange | Event |
mx.events.PropertyChangeEvent
mx.events.PropertyChangeEvent.PROPERTY_CHANGE
The PropertyChangeEvent.PROPERTY_CHANGE event is dispatched
when a property of this service changes.
This happens for the following properties:
commitRequiredmergeRequiredconnectedPropertyChangeEvent.PROPERTY_CHANGE constant defines the value of the
type property of the event object for a PropertyChange event.
The properties of the event object have the following values:
| Property | Value |
|---|---|
bubbles | Determined by the constructor; defaults to false. |
cancelable | Determined by the constructor; defaults to false. |
kind | The kind of change; PropertyChangeEventKind.UPDATE or PropertyChangeEventKind.DELETE. |
oldValue | The original property value. |
newValue | The new property value, if any. |
property | The property that changed |
source | The object that contains the property that changed. |
currentTarget | The Object that defines the
event listener that handles the event. For example, if you use
myButton.addEventListener() to register an event listener,
myButton is the value of the currentTarget. |
target | The Object that dispatched the event;
it is not always the Object listening for the event.
Use the currentTarget property to always access the
Object listening for the event. |
| result | Event |
mx.rpc.events.ResultEvent
mx.rpc.events.ResultEvent.RESULT
The ResultEvent.RESULT event is dispatched when a service call
successfully returns.
For example a call to fill() will dispatch this event if the
call is successful.
The properties of the event object have the following values:
| Property | Value |
|---|---|
bubbles | false |
cancelable | true, preventDefault() from the associated token's responder.result method will prevent the service or operation from dispatching this event |
currentTarget | The Object that defines the
event listener that handles the event. For example, if you use
myButton.addEventListener() to register an event listener,
myButton is the value of the currentTarget. |
message | The Message associated with this event. |
target | The Object that dispatched the event;
it is not always the Object listening for the event.
Use the currentTarget property to always access the
Object listening for the event. |
result | Result that the RPC call returns. |
token | The token that represents the indiviudal call to the method. Used in the asynchronous completion token pattern. |
Send me an e-mail when comments are added to this page | Comment Report
Current page: http://livedocs.adobe.com/livecycle/es/sdkHelp/common/langref/mx/data/DataService.html