obtenir le name d'une constraint

cancel
Showing results for 
Search instead for 
Did you mean: 
latige
Member II

obtenir le name d'une constraint

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
cbosdonnat
Member II

Re: obtenir le name d'une constraint

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
Member II

Re: obtenir le name d'une constraint

Bonjour,

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

encorre merci