Forum Ametys

Forum de la communauté Ametys

You are not logged in.

#1 22/05/2014 11:17:11

jorog
Guest
Registered: 26/09/2013
Posts: 14

Convertir un ModifiableContent en WorkflowAwareContent

Bonjour,

Afin d'utiliser le org.ametys.cms.workflow.ContentWorkflowHelper je voudrais convertir mon ModifiableContent en WorkflowAwareContent. Est-ce possible et si oui comment ?

Merci.

Offline

#2 22/05/2014 12:09:21

Laurence Aumeunier
Expert Team
Registered: 10/08/2010
Posts: 142

Re: Convertir un ModifiableContent en WorkflowAwareContent

Bonjour,

Généralement les contenus créés sont tous ModifiableContent et WorkflowAwareContent. Tu n'as pas à le convertir mais seulement à le "caster" en WorkflowAwareContent après avoir vérifier qu'il est bien WorkflowAwareContent :

Content content = ...

if (content instanceof WorkflowAwareContent)
{
      _contentWorkflowHelper.doAction ((WorkflowAwareContent) content, ....);
}

Laurence Aumeunier
Ametys Expert

Offline

#3 22/05/2014 14:52:52

jorog
Guest
Registered: 26/09/2013
Posts: 14

Re: Convertir un ModifiableContent en WorkflowAwareContent

J'ai une NPE lors de l'utilisation de ContentWorkflowHelper.doAction(workflowAwareContent, 4):

Sitemap: error when calling sub-sitemap<map:mount><map:mount>java.lang.NullPointerException
    at org.ametys.cms.workflow.ContentWorkflowHelper.doAction(ContentWorkflowHelper.java:207)
    at org.ametys.cms.workflow.ContentWorkflowHelper.doAction(ContentWorkflowHelper.java:193)
    at fr.smile.onisep.ideo2.plugins.ideo.recuperation.tools.ametys.impl.AmetysContentFactory.createContent(AmetysContentFactory.java:80)

Et avec l'utilisation de ContentWorkflowHelper.getAvailableActions(workflowAwareContent):

Caused by: java.lang.NullPointerException
    at org.ametys.cms.workflow.ContentWorkflowHelper.getAvailableActions(ContentWorkflowHelper.java:179)
    at org.ametys.cms.workflow.ContentWorkflowHelper.getAvailableActions(ContentWorkflowHelper.java:164)
    at fr.smile.onisep.ideo2.plugins.ideo.recuperation.tools.ametys.impl.AmetysContentFactory.createContent(AmetysContentFactory.java:71)

Offline

#4 22/05/2014 15:44:42

Laurence Aumeunier
Expert Team
Registered: 10/08/2010
Posts: 142

Re: Convertir un ModifiableContent en WorkflowAwareContent

Comment as-tu récupéré le composant ContentWorkflowHelper ?
Il s'agit d'un composant il faut donc le récupérer par un lookup (dans la méthode service de AmetysContentFactory par exemple):

private ContentWorkflowHelper _contentWorkflowHelper;
public void service(ServiceManager manager) throws ServiceException {
_contentWorkflowHelper = (ContentWorkflowHelper) manager.lookup(ContentWorkflowHelper.ROLE)
}

Ces erreurs me font penser que tu as plutôt fait:

ContentWorkflowHelper contentWorkflowHelper = new ContentWorkflowHelper()

Laurence Aumeunier
Ametys Expert

Offline

Board footer

Powered by FluxBB