Skip to content
Siminov Framework edited this page Jan 16, 2016 · 13 revisions

Siminov Framework provides few event notifiers which gets triggered based on particular action. Application have to provide implementation for these event notifiers and register them with Siminov.

Note

  • Event Handler: It can be define in both Native and Web.

  • Native Event Handler: If you want to handle Event in Native then define Event Handler using Native language. Specify full model class path and name in ApplicationDescriptor.xml.

  • Web Event Handler: If you want to handle Event in Web then define Event Handler using JavaScript. Specify only JavaScript Function name in ApplicationDescriptor.xml.

  • Both (Native/Web) Event Handler: If you want to handle Event in both Native and Web then define Event Handler in both Native and JavaScript. Specify full Java class path and name in ApplicationDescriptor.xml, no need to define for JavaScript because Siminov will automatically assume same name for it.


IDatabase is a event handler which automatically gets triggered when action happen with database. Application have to provide implementation for IDatabase event notifier and register them with siminov.

Android Sample: Database Events

    public interface IDatabaseEvents {

        public void onDatabaseCreated(final DatabaseDescriptor databaseDescriptor);
	
        public void onDatabaseDropped(final DatabaseDescriptor databaseDescriptor);
	
        public void onTableCreated(final DatabaseDescriptor databaseDescriptor, final EntityDescriptor entityDescriptor);
	
        public void onTableDropped(final DatabaseDescriptor databaseDescriptor, final EntityDescriptor entityDescriptor);
	
        public void onIndexCreated(final DatabaseDescriptor databaseDescriptor, final EntityDescriptor entityDescriptor, Index index);
	
        public void onIndexDropped(final DatabaseDescriptor databaseDescriptor, final EntityDescriptor entityDescriptor, Index index);
	
    }

iOS Sample: Database Events

    @protocol SICIDatabaseEvents <NSObject>

    - (void)onDatabaseCreated:(SICDatabaseDescriptor* const)databaseDescriptor;

    - (void)onDatabaseDropped:(SICDatabaseDescriptor* const)databaseDescriptor;

    - (void)onTableCreated:(SICDatabaseDescriptor* const)databaseDescriptor entityDescriptor:(SICEntityDescriptor* const)entityDescriptor;

     - (void)onTableDropped:(SICDatabaseDescriptor* const)databaseDescriptor entityDescriptor:(SICEntityDescriptor* const)entityDescriptor;

     - (void)onIndexCreated:(SICDatabaseDescriptor* const)databaseDescriptor entityDescriptor:(SICEntityDescriptor * const)entityDescriptor index:(SICIndex *)index;

     - (void)onIndexDropped:(SICDatabaseDescriptor* const)databaseDescriptor entityDescriptor:(SICEntityDescriptor* const)entityDescriptor index:(SICIndex *)index;

    @end

Windows Sample: Database Events

    public interface IDatabaseEvents 
    {

        void OnDatabaseCreated(DatabaseDescriptor databaseDescriptor);
	
        void OnDatabaseDropped(DatabaseDescriptor databaseDescriptor);
	
        void OnTableCreated(DatabaseDescriptor databaseDescriptor, EntityDescriptor entityDescriptor);
	
        void OnTableDropped(DatabaseDescriptor databaseDescriptor, EntityDescriptor entityDescriptor);
	
        void OnIndexCreated(DatabaseDescriptor databaseDescriptor, EntityDescriptor entity, Index index);
	
        void OnIndexDropped(DatabaseDescriptor databaseDescriptor, EntityDescriptor entityDescriptor, Index index);
	
    }

JavaScript API: Database Events

    function IDatabaseEvents {

        this.onDatabaseCreated = function(databaseDescriptor) {};
	
        this.onDatabaseDropped = function(databaseDescriptor) {};
	
        this.onTableCreated = function(databaseDescriptor, entityDescriptor) {};
	
        this.onTableDropped = function(databaseDescriptor, entityDescriptor) {};
	
        this.onIndexCreated = function(databaseDescriptor, entityDescriptor, index) {};
	
        this.onIndexDropped = function(databaseDescriptor, entityDescriptor, index) {};
	
    }
1. On Database Created - [Android:onDatabaseCreated(DatabaseDescriptor) | iOS:onDatabaseCreated:DatabaseDescriptor | Windows:OnDatabaseCreated(DatabaseDescriptor) | JavaScript:onDatabaseCreated(DatabaseDescriptor)]

It is triggered when database is created based on schema defined in DatabaseDescriptor.xml file. This API provides DatabaseDescriptor object for which database is created.

2. On Database Dropped - [Android:onDatabaseDropped(DatabaseDescriptor) | iOS:onDatabaseDropped:DatabaseDescriptor | Windows:OnDatabaseDropped(DatabaseDescriptor) | JavaScript:onDatabaseDropped(DatabaseDescriptor)]

It is triggered when database is dropped. This API provides DatabaseDescriptor object for which database is dropped.

3. On Table Created - [Android:onTableCreated(DatabaseDescriptor, EntityDescriptor) | iOS:onTableCreated:DatabaseDescriptor entityDescriptor:EntityDescriptor | Windows:OnTableCreated(DatabaseDescriptor, EntityDescriptor) | JavaScript:onTableCreated(DatabaseDescriptor, EntityDescriptor)]

It is triggered when a table is created in database. This API provides Database descriptor object and entity descriptor object which describes table structure.

4. On Table Dropped - [Android:onTableDropped(DatabaseDescriptor, EntityDescriptor) | iOS:onTableDropped:DatabaseDescriptor entityDescriptor:EntityDescriptor | Windows:OnTableDropped(DatabaseDescriptor, EntityDescriptor) | JavaScript:onTableDropped(DatabaseDescriptor, EntityDescriptor)]

It is triggered when a table is deleted from database. This API provides Database descriptor object and Entity descriptor object for which table is dropped.

5. On Index Created - [Android:onIndexCreated(DatabaseDescriptor, EntityDescriptor, Index) | iOS:onIndexCreated:DatabaseDescriptor entityDescriptor:EntityDescriptor index:Index | Windows:OnIndexCreated(DatabaseDescriptor, EntityDescriptor, Index) | JavaScript:onIndexCreated(DatabaseDescriptor, EntityDescriptor, Index)]

It is triggered when a index is created on table. This API provides EntityDescriptor and Index object which defines table and index structure.

6. On Index Dropped - [Android:onIndexDropped(DatabaseDescriptor, EntityDescriptor, Index) | iOS:onIndexDropped:DatabaseDescriptor entityDescriptor:EntityDescriptor index:Index | Windows:OnIndexDropped(DatabaseDescriptor, EntityDescriptor, Index) | JavaScript:onIndexDropped(DatabaseDescriptor, EntityDescriptor, Index)]

It is triggered when a index is dropped from table. This API provides Database descriptor object, Entity descriptor object and Index object which defines table and index for which index is dropped.

Android Sample: IDatabase Event Handler


![Android Sample: IDatabase Event Handler] (https://raw.github.com/Siminov/core/docs/github/v2.0/database_event_handler.android.png "Android Sample: IDatabase Event Handler")


iOS Sample: SICIDatabase Event Handler


![iOS Sample: SICIDatabase Event Handler] (https://raw.github.com/Siminov/core/docs/github/v2.0/database_event_handler.ios.png "iOS Sample: SICIDatabase Event Handler")


Windows Sample: IDatabase Event Handler


![Windows Sample: IDatabase Event Handler] (https://raw.github.com/Siminov/core/docs/github/v2.0/database_event_handler.windows.png "Windows Sample: IDatabase Event Handler")


Clone this wiki locally