// ============================================================================ // // Copyright (C) 2006-2016 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package org.talend.mdm.repository.core.command.deploy; import javax.xml.ws.WebServiceException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.OperationCanceledException; import org.talend.core.model.repository.ERepositoryObjectType; import org.talend.mdm.repository.core.service.DeployService.DeployStatus; import org.talend.mdm.repository.core.service.IInteractiveHandler; import org.talend.mdm.repository.core.service.InteractiveService; import org.talend.mdm.repository.i18n.Messages; import com.amalto.workbench.utils.XtentisException; /** * DOC hbhong class global comment. Detailled comment */ public abstract class DefaultDeployCommand extends AbstractDeployCommand { @Override public IStatus execute(Object params, IProgressMonitor monitor) { ERepositoryObjectType type = getViewObjectType(); String objectName = getLabel(); IInteractiveHandler handler = InteractiveService.findHandler(type); if (handler != null) { String typeLabel = handler.getLabel(); monitor.subTask(Messages.bind(Messages.Deploy_text, typeLabel)); try { if (handler.deploy(this)) { if (getCommandType() == CMD_MODIFY) { return DeployStatus.getOKStatus(this, Messages.bind(Messages.Deploy_successfully_text, typeLabel, objectName)); } return DeployStatus .getOKStatus(this, Messages.bind(Messages.Create_successfully_text, typeLabel, objectName)); } else { return DeployStatus.getErrorStatus(this, Messages.bind(Messages.Deploy_fail_text, typeLabel, objectName)); } } catch (OperationCanceledException e) { return DeployStatus.getInfoStatus(this, Messages.bind(Messages.Deploy_cancel_text, typeLabel, objectName)); } catch (WebServiceException e) { return getDetailErrorMsg(Messages.Deploy_fail_cause_text, typeLabel, objectName, e); } catch (XtentisException e) { return getDetailErrorMsg(Messages.Deploy_fail_cause_text, typeLabel, objectName, e); } catch (RuntimeException e) { return getDetailErrorMsg(Messages.Deploy_fail_cause_text, typeLabel, objectName, e); } } else { return DeployStatus.getErrorStatus(this, Messages.bind(Messages.Deploy_notSupport_text, objectName)); } } /** * DOC hbhong Comment method "getLabel". * * @return */ protected String getLabel() { return getObjLastName(); } }