/** * 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.deploy; import com.ewcms.core.site.model.SiteServer; import com.ewcms.publication.deploy.provider.FtpDeployOperator; import com.ewcms.publication.deploy.provider.FtpsDeployOperator; import com.ewcms.publication.deploy.provider.LocalDeployOperator; import com.ewcms.publication.deploy.provider.SftpDeployOperator; /** * 发布资源工厂类 * <br> * 通过发布类型(ftp,sftp等),得到具体发布操作对象 * * @author wangwei */ public class DeployOperatorFactory{ private DeployOperatorFactory(){ //隐藏构造行数,防止创建OutputFactory对象 } public static DeployOperatorable factory(SiteServer server){ switch(server.getOutputType()){ case FTP: return newFtp(server); case FTPS : return newFtps(server); case LOCAL : return newLocal(server); case SFTP : return newSftp(server); default: return newLocal(server); } } private static DeployOperatorable newFtp(SiteServer server){ return new FtpDeployOperator .Builder(server.getHostName(), server.getPath()) .setPort(server.getPort()) .setUsername(server.getUserName()) .setPassword(server.getPassword()) .build(); } private static DeployOperatorable newFtps(SiteServer server){ return new FtpsDeployOperator .Builder(server.getHostName(), server.getPath()) .setPort(server.getPort()) .setUsername(server.getUserName()) .setPassword(server.getPassword()) .build(); } private static DeployOperatorable newLocal(SiteServer server){ return new LocalDeployOperator .Builder(server.getPath()) .build(); } private static DeployOperatorable newSftp(SiteServer server){ return new SftpDeployOperator .Builder(server.getHostName(), server.getPath()) .setPort(server.getPort()) .setUsername(server.getUserName()) .setPassword(server.getPassword()) .build(); } }