We apologize for untranslated text, you can use the Google Translation button to get an automatic translation of the web page in the language of your choice.

Champ du type "Editeur de requêtes" et OpenAPI

Mehdi Ouchia · on 10/15/13 at 11:12 AM

Bonjour,

nous exposons des contenus de JCMS via l'Open API. Pour cela, nous utilisons de l'introspection sur les classes Java générées.

Lorsque nous créons un contenu JCMS avec un champ de type "Editeur de requête", l'attribut dans la classe Java générée est une String.

 

Existe-t-il un moyen de déterminer si le champ d'un contenu correspond à un type "Editeur de requêtes" ?

4 pts
Sylvain DEVAUX · on 10/15/13 at 11:31 AM

Bonjour,

 

éventuellement, vous avez l'info dans le .xml du type associé. Par exemple pour la PortletQueryForEach, le xml déclare un champ queries, multivalué, dont l'éditeur est de type query :

<?xml version="1.0" encoding="UTF-8"?>
<type name="PortletQueryForeach" ... superclass="generated.AbstractPortletSkinable"...>
<fields>
<field name="queries" editor="query" ... type="String[]" ... />
...

 

Cette approche nécessite donc du parsing XML.

#1

Plus simple :

  TypeFieldEntry tfe = channel.getTypeFieldEntry(Class<?> clazz, String fieldName, boolean checkAll);

Exemple : 
  TypeFieldEntry tfe = channel.getTypeFieldEntry(PortletQueryForEach.class, "queries", true);
  boolean isQueryField = (tfe != null) && "query".equals(tfe.getEditor());

Olivier Jaquemet · on 10/15/13 at 11:45 AM
#2

Ah, je me doutais qu'il y avait un truc qui le permettait, mais je n'avais pas trouvé :)

Merci Olivier

Sylvain DEVAUX · on 10/15/13 at 12:19 PM
0 pts