Skip to content

Configuring Application Descriptor

Siminov Framework edited this page Dec 25, 2015 · 95 revisions

Application Descriptor is the one who connects application to Siminov Core Framework. It provide basic information about application, which defines the behavior of application.

    
                   <!-- Application Descriptor Design -->
    <siminov>
    
        <!-- General Application Description Properties -->
	
            <!-- Mandatory Field -->
        <property name="name">application_name</property>	
	
            <!-- Optional Field -->
        <property name="description">application_description</property>
	
             <!-- Mandatory Field (Default is 0.0) -->
        <property name="version">application_version</property>


        <!-- Database Descriptors Used By Application (zero-to-many) -->	
             <!-- Optional Field's -->
        <database-descriptors>
             <database-descriptor>database_descriptor_file_name</database-descriptor>
        </database-descriptors>
		

        <!-- Library Descriptors Used By Application (zero-to-many) -->
            <!-- Optional Field's -->
        <library-descriptors>
            <library-descriptor>library_descriptor_file_name</library-descriptor>   
        </library-descriptors>
	

        <!-- Event Handlers Implemented By Application (zero-to-many) -->
            <!-- Optional Field's -->
        <event-handlers>
            <event-handler>event_handler_name(ISiminovHandler/IDatabaseHandler/SICSiminovHandler/SICDatabaseHandler)          </event-handler>
        </event-handlers>
    </siminov>
             <!-- Android Sample: ApplicationDescriptor.xml -->
    <siminov>

        <property name="name">SIMINOV CORE SAMPLE</property>	
        <property name="description">Siminov Core Sample Application</property>
        <property name="version">1.0</property>

	
        <!-- Database Descriptors -->
        <database-descriptors>
            <database-descriptor>DatabaseDescriptor.xml</database-descriptor>
        </database-descriptors>

	
        <!-- Event Handlers -->
        <event-handlers>
            <event-handler>siminov.core.sample.events.SiminovEventHandler</event-handler>
            <event-handler>siminov.core.sample.events.DatabaseEventHandler</event-handler>
        </event-handlers>
	
        <!-- Library Descriptors -->
        <library-descriptors>
            <library-descriptor>siminov.core.library.sample.resources</library-descriptor>   
        </library-descriptors>
			
    </siminov>
              <!-- iOS Sample: ApplicationDescriptor.xml -->
    <siminov>

        <property name="name">SIMINOV CORE SAMPLE</property>	
        <property name="description">Siminov Core Sample Application</property>
        <property name="version">1.0</property>

	
        <!-- Database Descriptors -->
        <database-descriptors>
             <database-descriptor>DatabaseDescriptor.xml</database-descriptor>
        </database-descriptors>

	
        <!-- Event Handlers -->
        <event-handlers>
            <event-handler>SiminovEventHandler</event-handler>
            <event-handler>DatabaseEventHandler</event-handler>
        </event-handlers>
	
        <!-- Library Descriptors -->
        <library-descriptors>
            <library-descriptor>Siminov.Core.Library.Sample.Resources</library-descriptor>   
        </library-descriptors>
			
    </siminov>
              <!-- Windows Sample: ApplicationDescriptor.xml -->
    <siminov>

        <property name="name">SIMINOV CORE SAMPLE</property>	
        <property name="description">Siminov Core Sample Application</property>
        <property name="version">1.0</property>

	
        <!-- Database Descriptors -->
        <database-descriptors>
            <database-descriptor>DatabaseDescriptor.xml</database-descriptor>
        </database-descriptors>

	
        <!-- Event Handlers -->
        <event-handlers>
            <event-handler>Siminov.Core.Sample.Events.SiminovEventHandler</event-handler>
            <event-handler>Siminov.Core.Sample.Events.DatabaseEventHandler</event-handler>
        </event-handlers>
	
        <!-- Library Descriptors -->
        <library-descriptors>
            <library-descriptor>Siminov.Core.Library.Sample.Resources</library-descriptor>   
        </library-descriptors>
			
    </siminov>

Note: Application Developer can provide their own properties also, and by using following API's they can use properties.

  • Get Properties - [Android:getProperties | iOS:getProperties | Windows:GetProperties]: It will return all properties associated with Application Descriptor.

  • Get Property - [Android:getProperty(Name-of-Property) | iOS:getProperty:Name-Of-Property | Windows:GetProperty(Name-Of-Property)]: It will return property value associated with property name provided.

  • Contains Property - [Android:containsProperty(Name-of-Property) | iOS:containsProperty:Name-Of-Property | Windows:ContainsProperty(Name-Of-Property)]: It will return TRUE/FALSE whether property exists or not.

  • Add Property - [Android:addProperty(Name-of-Property, Value-of-Property) | iOS:addProperty:Name-of-Property value:Value-of-Property | Windows:AddProperty(Name-of-Property, Value-of-Property)]: It will add new property to the collection of Application Descriptor properties.

  • Remove Property - [Android:removeProperty(Name-of-Property) | iOS:removeProperty:Name-of-Property | Windows:RemoveProperty(Name-of-Property)]: It will remove property from Application Descriptor properties based on name provided.

Application Descriptor Elements

1. General properties about application
  • name*: Name of application. It is mandatory field. If any resources is created by Core, then it will be under this folder name.

Android Sample - Application data folder based on name defined


![Application Data Folder Based On Name Defined] (https://raw.github.com/Siminov/core/docs/github/v2.0/app_storage_structure.android.png "Application Data Folder Based On Name Defined")


iOS Sample - Application data folder based on name defined


![Application Data Folder Based On Name Defined] (https://raw.github.com/Siminov/core/docs/github/v2.0/app_storage_structure.ios.png "Application Data Folder Based On Name Defined")


Windows Sample - Application data folder based on name defined


![Application Data Folder Based On Name Defined] (https://raw.github.com/Siminov/core/docs/github/v2.0/app_storage_structure.windows.png "Application Data Folder Based On Name Defined")


  • descriptor: Description of application. It is optional field.

  • version: Version of application. It is mandatory field. Default is 0.0.

3. Paths of database descriptor's used in application
  • Path of all database descriptor's used in application.
  • Every database descriptor will have its own database object.
4. Paths of all library descriptors needed by the application.

Note:

  • Provide full package name under which LibraryDescriptor.xml file is placed.
  • Siminov framework will automatically read LibraryDescriptor.xml file defined under package name provided.
5. Event handlers implemented by application
  • Siminov Framework provides two type of event handlers

- Android:ISiminovEvents | iOS:SICISiminovEvents | Windows:ISiminovEvents: : It contains events associated with life cycle of Siminov Framework. such as:

Android:onSiminovInitialized | iOS:onSiminovInitialized | Windows:OnSiminovInitialized

Android:onFirstTimeSiminovInitialized | iOS:onFirstTimeSiminovInitialized | Windows:OnFirstTimeSiminovInitialized

Android:onSiminovStopped | iOS:onSiminovStopped | Windows:OnSiminovStopped.

- Android:IDatabaseEvents | iOS:SICIDatabaseEvents | Windows:IDatabaseEvents : : It contains events associated with database operations. such as:

Android:onDatabaseCreated | iOS:onDatabaseCreated | Windows:OnDatabaseCreated

Android:onDatabaseDropped | iOS:onDatabaseDropped | Windows:OnDatabaseDropped

Android:onTableCreated | iOS:onTableCreated | Windows:OnTableCreated

Android:onTableDropped | iOS:onTableDropped | Windows:OnTableDropped

Android:onIndexCreated | iOS:onIndexCreated | Windows:OnIndexCreated

Android:onIndexDropped | iOS:onIndexDropped | Windows:onIndexDropped.

  • Application can implement these event handlers based on there requirement.

Note

  • Application descriptor file name should always be same as ApplicationDescriptor.xml only.

  • It should always be in root folder of application assets.

Android Sample: Application Descriptor


![Android Sample: Application Descriptor] (https://raw.github.com/Siminov/core/docs/github/v2.0/application_descriptor_path.android.png "Android Sample: Application Descriptor")


iOS Sample: Application Descriptor


![iOS Sample: Application Descriptor] (https://raw.github.com/Siminov/core/docs/github/v2.0/application_descriptor_path.ios.png "iOS Sample: Application Descriptor")


Windows Sample: Application Descriptor


![Windows Sample: Application Descriptor] (https://raw.github.com/Siminov/core/docs/github/v2.0/application_descriptor_path.windows.png "Windows Sample: Application Descriptor")


Clone this wiki locally