System based on the views

The IViewController interface

The IViewController interface enables to simply build SQL request based on functional elements.

The methods of the IViewController interface

public interface IViewController extends IController
{
        // constraints
        void addEqualsConstraint( String name, Object value );
        void addNotEqualsConstraint( String name, Object value );
        void addGreaterConstraint( String name, Object value );
        void addGreaterOrEqualConstraint( String name, Object value );
        void addLessConstraint( String name, Object value );
        void addLessOrEqualsConstraint( String name, Object value );
        void addLikeConstraint( String name, Object value );
        void addNotLikeConstraint( String name, Object value );
        void addInConstraint( String name, Object value );
        void addNotInConstraint( String name, Object value );

        // parameters
        void setStart( int start );
        void setCount( int count );
        void setOrderBy( String orderBy, Class orderByType, boolean ascendant );
        void setStatus( int status );

        // evaluation
        Collection evaluate();
        Collection evaluate( ICatalog catalog );
        Collection evaluate( IWorkflowContainer workflowContainer );
        Collection evaluate( IWorkflow workflow );
        Collection evaluate( ITask task );

        // size evaluation
        int evaluateSize();
        int evaluateSize( ICatalog catalog );
        int evaluateSize( IWorkflowContainer workflowContainer );
        int evaluateSize( IWorkflow workflow );
        int evaluateSize( ITask task );
        
        // set secured mode
        void setSecurityApplied( boolean securityApplied );
        
        // allow to search within the system catalogs
        void setAllowSystemCatalogs( boolean allowSystemCatalogs );
}

Construction of a "functional" request

Example of code using the IViewController class to build and execute a request.

// retrieving an application as request scope
ICatalog catalog = workflowModule.getCatalog( context, "Education" );

IViewController viewController = workflowModule.getViewController();

viewController.setOrderBy( "sys_Reference", String.class, true );

// positioning some constrains 
viewController.addEqualsConstraint( "sys_Creator", context.getUser() );
viewController.addLessConstraint( "sys_CreationDate", new Date());
viewController.addEqualsConstraint( "fldDocumentVersion", "2.0" );
viewController.addEqualsConstraint( "DocumentState", "Applicable" );

// evaluating the view and retrieving process documents.
Collection instances = viewController.evaluate(catalog);
for ( Iterator iterator = instances.iterator() ; iterator.hasNext() ; )
{
        IWorkflowInstance workflowInstance = (IWorkflowInstance)iterator.next();
        LOGGER.info( workflowInstance.getName() + " : " +
          workflowInstance.getValue( "DocumentState" ) );
}