The Clear component library includes a descendant of DataCollection (described in Chapter ), the com.farata.collections.OfflineDataCollection class. The class OfflineDataCollection is responsible for performing data synchronization between the local and remote databases.

If the network connection is available, the method fill() gets the data from the server and the application creates the backup copy of the existing local database and creates a fresh one:

public override function fill(... args):AsyncToken {
      var changes:Array=getChangesFromLocalDB();
      syncRequired=changes.length > 0;
      if (!commitRequired && !syncRequired) {
         var act:AsyncToken=invoke(method, args);
         return act;
   return null;

This function starts with getting the data from the local database. If this is the very first invocation, the array changes will be empty and no other function calls will be made.

If no modifications were made in the data grid with visit information and no unsynchronized changes exist in the local database, this function will just retrieve the data from the remote destination using DataCollection’s invoke() method.

How does OfflineDataCollection know that there are local changes to be synchronized? Each instance of OfflineDataCollection persists its data in a database table. When the application calls the function OfflineDataCollection.backup(), it copies this table to a backup database.

Comparing the content of the corresponding tables ...

Get Agile Enterprise Application Development with Flex now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.