/**
* Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved.
* EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
* http://www.ewcms.com
*/
package com.ewcms.publication;
import java.util.List;
import com.ewcms.publication.task.Taskable;
/**
* 管理平台发布服务接口
*
* @author wangwei
*/
public interface WebPublishFacable{
/**
* 发布站点
*<br>
* 重新发布时(again=true),全站所有资源和内容重新发布。
* 不重新发布时只发布未发布的资源和内容。
*
* @param again true:重新发布
* @throws PublishException
*/
void publishSite(boolean again)throws PublishException;
/**
* 发布指定频道内容
* <br>
* 重新发布时(again=true),生成频道下的所有内容重新发布。
* 不重新发布时只发布未发布的内容。可以关联发布子频道。
*
* @param id 频道编号
* @param again true:重新发布
* @param children true:关联发布子频道
*
* @throws PublishException
*/
void publishChannel(int id,boolean again,boolean children) throws PublishException;
/**
* 发布站点资源
* <br>
* 重新发布时(again=true),全站所有资源重新发布。
* 不重新发布时只发布未发布的资源。
*
* @param again true:重新发布
* @throws PublishException
*/
void publishSiteResource(boolean again)throws PublishException;
/**
* 发布指定的资源
* <br>
* 发布指定的资源,不管资源是否发布都会重新发布。
*
* @param ids 资源编号集合
* @throws PublishException
*/
void publishResources(int[] ids)throws PublishException;
/**
* 发布站点模版资源
* <br>
* 重新发布时(again=true),全站所有模版资源重新发布。
* 不重新发布时只发布未发布的模版资源。
*
* @param again true:重新发布
* @throws PublishException
*/
void publishSiteTemplateSource(boolean again) throws PublishException;
/**
* 发布指定的模版资源
* <br>
* 发布指定的模版资源,不管模版资源是否发布都会重新发布。
*
* @param ids 模版资源编号集合
* @throws PublishException
*/
void publishTemplateSources(int[] ids)throws PublishException;
/**
* 发布指定的模版生成的内容
* <br>
* 重新发布时(again=true),指定的模版生成内容重新发布。
* 不重新发布时只有文章内类型模版发布未发布的文章,其它都会重新发布。
*
* @param id 模版编号
* @param again 重新发布
* @throws PublishException
*/
void publishTemplateContent(int id,boolean again)throws PublishException;
/**
* 发布指定的文章
* <br>
* 只有在预发布状态下的文章才能发布
*
* @param channelId 频道编号
* @param ids 文章编号集合
* @throws PublishException
*/
void publishArticles(int channelId,long[] ids)throws PublishException;
/**
* 关闭当前的站点发布。
* <br>
* 当站点的发布设置发生改变时,必需关闭该站点的发布,只有这样下次发布时新的设置才能生效。
*
* @throws PublishException
*/
void closePublish()throws PublishException;
/**
* 得到站点的发布任务
*
* @param siteId 站点编号
* @return
*/
List<Taskable> getSitePublishTasks(Integer siteId);
void removePublish(Integer siteId,String id, String username)throws PublishException;
}