package org.exoplatform.services.wcm.extensions.publication; import java.util.List; import javax.jcr.Node; import org.exoplatform.container.component.ComponentPlugin; import org.exoplatform.services.wcm.extensions.publication.context.impl.ContextConfig.Context; import org.exoplatform.services.wcm.extensions.publication.lifecycle.impl.LifecyclesConfig.Lifecycle; /** * Manages lifecycle and context of the publication. * * @LevelAPI Platform */ public interface PublicationManager { /** * Adds definitions of a lifecycle to the publication plugin. * * @param plugin The component plugin that defines the lifecycle. */ public void addLifecycle(ComponentPlugin plugin); /** * Removes definitions of a lifecycle from the publication plugin. * * @param plugin The component plugin that defines the lifecycle. */ public void removeLifecycle(ComponentPlugin plugin); /** * Adds definitions of a context to the publication plugin. * * @param plugin The component plugin that defines the context. */ public void addContext(ComponentPlugin plugin); /** * Removes definitions of a context from the publication plugin. * * @param plugin The component plugin that defines the context. */ public void removeContext(ComponentPlugin plugin); /** * Gets all lifecycles. * * @return The list of lifecycles. */ public List<Lifecycle> getLifecycles(); /** * Gets all contexts. * * @return The list of contexts. */ public List<Context> getContexts(); /** * Gets a context by a given name. * * @param name Name of the context. * @return The context. */ public Context getContext(String name); /** * Gets a lifecycle by a given name. * * @return The lifecycle. */ public Lifecycle getLifecycle(String name); /** * Gets all lifecycles of a user by a specified state. * * @param remoteUser The given user. * @param state The specified state by which all lifecycles are got. * @return The list of lifecycles. */ public List<Lifecycle> getLifecyclesFromUser(String remoteUser, String state); /** * Gets all content nodes. * * @param fromstate The current state of the content. * @param tostate The state by which lifecycles are retrieved from a user. * @param date Any given date. * The publication dates of returned content nodes are smaller than this given date. * @param user The last user who changes the state. * @param lang Language of the content nodes. * @param workspace The workspace where content nodes are got. * @return The list of content nodes. * @throws Exception */ public List<Node> getContents(String fromstate, String tostate, String date, String user, String lang, String workspace) throws Exception; }