cancel
Showing results for 
Search instead for 
Did you mean: 

obtenir le name d'une constraint

latige
Champ in-the-making
Champ in-the-making
Bonjour,

j' ai modifier une constraint :

<constraint name="toto"  type="org.test.testValeurDynamique">

         <parameter name="allowedValues">
         </parameter>
</constraint>

et la class test valeur dynamique est la suivante :
import java.sql.Connection;
import java.util.ArrayList;
import java.util.List;
import org.alfresco.repo.dictionary.constraint.ListOfValuesConstraint;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.atosorigin.test.DbUtils;
import org.atosorigin.test.SqlRequete;


public class testValeurDynamique extends ListOfValuesConstraint {
   private static Log logger = LogFactory.getLog("org.test.DbUtils");


  
   public testValeurDynamique() {
      super();
      logger.debug("Appel supperConstructeur");
    
   }
  
  
    public List<String> getAllowedValues()
    {
      
       logger.debug("getAllowedValues ");
        return super.getAllowedValues();
    }

   
    public void setAllowedValues(List allowedValues)
    {
       if (allowedValues == null)
       {
          allowedValues=getValeur();
       }
       logger.debug("setAllowedValues Avant super.set");
       super.setAllowedValues(allowedValues) ;
   
       logger.debug("setAllowedValues Aprés super.set");
    }
   
   /**
    * Va rechercher la liste des Civilites dans la base de données
    * @return la liste des Civilites
    */
   private ArrayList<String> getValeur(){
      ArrayList<String> valeurs=null;
      Connection conn=null;
     
      try {
         conn = DbUtils.getDbConnection();
         String requete = "SELECT NAME FROM VALEURS WHERE NAMECONTRAINT='maConstraint";
         valeurs = SqlRequete.postGetRequete(conn,requete);
          DbUtils.closeDbConnection(conn);
      } catch (Exception e) {
         logger.error(e.getMessage());
      }

      return valeurs;
   }

}


et je voudrai avoir le nom de la constraint que je suis en train de créer dans ma class java

toute aide est la bien venue

merci d'avance
2 REPLIES 2

cbosdonnat
Champ in-the-making
Champ in-the-making
Bonjour,

Le nom de la contrainte n'est disponible qu'au niveau du DictionaryService… donc pas dans l'implementation de la contrainte. Par contre pour parametrer une contrainte de cette facon, il faudrait tout simplement utiliser un parametre supplementaire dans la configuration de la contrainte, par exemple:

<constraint name="toto"  type="org.test.testValeurDynamique">

         <parameter name="allowedValues">
         </parameter>

         <parameter name="categorieValeurs">
             <value>toto</value>
         </parameter>
</constraint>

Ensuite pour recuperer le parametre categorieValeurs, il suffit que l'implementation contienne le setter qui correspond. S'inspirer des contraintes de longueur, minmax ou regexp pour voir comment cela fonctionne.

latige
Champ in-the-making
Champ in-the-making
Bonjour,

merci beaucoup
en créant un nouveau parameter ça fonctionne

encorre merci
Getting started

Tags


Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.