Programmation des requêtes d'extension

 

Comme développeur d'extensions pour JMap Pro, vous aurez probablement à développer des applications qui doivent effectuer des communications entre le côté client et JMap Server. Que ce soit pour communiquer avec votre propre extension côté serveur ou pour effectuer des requêtes générales à JMap Server, le principe de programmation reste le même.

Pour plus d'information sur la communication client-serveur das JMap, consultez la section Communication client-serveur.

Programmation de la requête

Pour créer votre classe de requête, vous devez respecter les 2 règles suivantes :

la classe doit dériver de la classe JMapExtensionRequest;

toutes les propriétés de la classe doivent être sérialisables.

Vous êtes libres d'ajouter toute les propriétés et méthodes qui sont utiles pour l'exécution de votre requête. Ces propriétés et méthodes pourront être exploitées du côté serveur par votre extension.

L'exemple de code source suivant montre comment programmer une requête simple.

 

  // This request is used to save a new citizen complaint
  public class SaveComplaintExtensionRequest extends JMapExtensionRequest
  {
    private String citizenName;
    private int requestType;
 
    public void setCitizenName(String citizenName)
    {
      this.citizenName = citizenName;
    }
 
    public String getCitizenName()
    {
      return this.citizenName;
    }
 
    public void setRequestType(int requestType)
    {
      this.requestType = requestType;
    }
 
    public int getRequestType()
    {
      return this.requestType;
    }
  }

Programmation de la réponse

Pour créer votre classe de réponse, vous devez respecter les 2 règles suivantes :

la classe doit dériver de la classe JMapExtensionResponse;

toutes les propriétés de la classe doivent être sérialisables.

Vous êtes libres d'ajouter toutes les propriétés et méthodes qui sont utiles pour retourner l'information au client relativement à l'exécution de la requête. Ces propriétés et méthodes pourront être exploitées du côté client par votre extension suite à l'exécution de la requête sur le serveur.

L'exemple de code source suivant montre comment programmer une réponse simple.

 
  // This response is returned to client after a citizen complaint save request was executed
  public class SaveComplaintExtensionResponse extends JMapExtensionResponse
  {
    private long uniqueId;
 
    public void setUniqueId(long uniqueId)
    {
      this.uniqueId = uniqueId;
    }
 
    public long getUniqueId()
    {
      return this.uniqueId;
    }
  }

 

En étant dérivée de JMapExtensionResponse, votre classe de réponse hérite de quelques propriétés utiles dont le statut de la réponse et un message explicatif en cas de problème.

Statut de la réponse

Chaque réponse possède un statut qui indique si la requête a été exécutée avec succès ou si un problème est survenu. La méthode getStatus() de la classe JMapExtensionResponse permet d'obtenir le statut de la réponse. Pour la liste des statuts possibles et leur description, référez-vous à la documentation de la classe JMapExtensionResponse.

Votre extension devrait toujours vérifier le statut d'une réponse avant de l'utiliser. Si le statut n'est pas égal à JMAPSRV_STS_SUCCESS, un traitement spécial doit être fait afin de gérer la situation d'erreur. Dans ce cas, la méthode getMessage() permet d'obtenir un message explicatif décrivant la cause de l'erreur.