General tasks

Using the SDK API site module

The following code indicates how to use the site management API.

public void general_useModule()
{
        // creation of an object of site module
        ISiteModule siteModule = (ISiteModule)Modules.getSiteModule();
        try
        {}
        catch( Exception e )
        {
                // if an error has occurred
                getNavigator().processErrors( e );
        }
        finally
        {
                Modules.releaseModule( siteModule );
        }
}
 

Recovering a context to use the SDK API

The context notion enables to run processing with a user account. Several cases are displayed. Their using depends on the execution context and the available objects.

 public void general_getContext( ISiteModule siteModule ) throws Exception
{
        // 1st case : retrieving the context from a user object
        IUser user = null;
        IContext userContext = siteModule.getContext( user );

        // 2nd case: retrieving the context from an external ID
        IContext externalIDContext = siteModule.getContext( siteModule.getLoggedOnUser() );

        // 3rd case : retrieving the context from a login
        IContext loginContext = siteModule.getContextByLogin( "sysadmin" );
}

Using the transactions

In numerous cases, we need to gather several processing in a same transaction. Each module has its own transactional mechanism.

The following example shows how to use this transactional mechanism from the site module.

 public void general_useTransaction( IContext context, ISiteModule siteModule )
{
        try
        {
                // starting a transaction
                siteModule.beginTransaction( this );

                // doing something
                // ...

                // validating the transaction
                siteModule.commitTransaction( this );
        }
        catch( Exception e )
        {
                // if an error has occurred, canceling the previous processing
                siteModule.rollbackTransaction( this );
        }
}