// ============================================================================
//
// 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.ui.wizards.imports.handlers;
import org.eclipse.core.runtime.IPath;
import org.talend.core.model.properties.Item;
import org.talend.mdm.repository.core.impl.transformerV2.ITransformerV2NodeConsDef;
import org.talend.mdm.repository.core.impl.view.IViewNodeConstDef;
import org.talend.mdm.repository.model.mdmproperties.WSTransformerV2Item;
import org.talend.mdm.repository.model.mdmproperties.WSViewItem;
import org.talend.mdm.repository.ui.wizards.imports.OperatorUpdatorProvider;
import org.talend.mdm.repository.utils.RepositoryTransformUtil;
import org.talend.repository.items.importexport.handlers.model.ImportItem;
/**
* created by HHB on 2015年5月4日 Detailled comment
*
*/
public class ViewProcessImportHandler extends CommonMdmImportHandler {
@Override
protected void beforeCreatingItem(ImportItem selectedImportItem) {
Item item = selectedImportItem.getItem();
String statePath = item.getState().getPath();
if (item instanceof WSViewItem) {
if (RepositoryTransformUtil.getInstance().getViewType(item.getProperty().getLabel()) == IViewNodeConstDef.TYPE_WEBFILTER) {
if (!statePath.startsWith(IPath.SEPARATOR + IViewNodeConstDef.PATH_WEBFILTER)) {
item.getState().setPath(IPath.SEPARATOR + IViewNodeConstDef.PATH_WEBFILTER + statePath);
}
} else {
if (!statePath.startsWith(IPath.SEPARATOR + IViewNodeConstDef.PATH_SEARCHFILTER)) {
item.getState().setPath(IPath.SEPARATOR + IViewNodeConstDef.PATH_SEARCHFILTER + statePath);
}
}
OperatorUpdatorProvider.instance().updateOperator(item);
}
if (item instanceof WSTransformerV2Item) {
String processName = item.getProperty().getLabel();
int processType = RepositoryTransformUtil.getInstance().getProcessType(processName);
switch (processType) {
case ITransformerV2NodeConsDef.TYPE_BEFORESAVE:
if (!statePath.startsWith(IPath.SEPARATOR + ITransformerV2NodeConsDef.PATH_BEFORESAVE)) {
item.getState().setPath(IPath.SEPARATOR + ITransformerV2NodeConsDef.PATH_BEFORESAVE + statePath);
}
break;
case ITransformerV2NodeConsDef.TYPE_BEFOREDEL:
if (!statePath.startsWith(IPath.SEPARATOR + ITransformerV2NodeConsDef.PATH_BEFOREDEL)) {
item.getState().setPath(IPath.SEPARATOR + ITransformerV2NodeConsDef.PATH_BEFOREDEL + statePath);
}
break;
case ITransformerV2NodeConsDef.TYPE_ENTITYACTION:
if (!statePath.startsWith(IPath.SEPARATOR + ITransformerV2NodeConsDef.PATH_ENTITYACTION)) {
item.getState().setPath(IPath.SEPARATOR + ITransformerV2NodeConsDef.PATH_ENTITYACTION + statePath);
}
break;
case ITransformerV2NodeConsDef.TYPE_WELCOMEACTION:
if (!statePath.startsWith(IPath.SEPARATOR + ITransformerV2NodeConsDef.PATH_WELCOMEACTION)) {
item.getState().setPath(IPath.SEPARATOR + ITransformerV2NodeConsDef.PATH_WELCOMEACTION + statePath);
}
break;
case ITransformerV2NodeConsDef.TYPE_SMARTVIEW:
if (!statePath.startsWith(IPath.SEPARATOR + ITransformerV2NodeConsDef.PATH_SMARTVIEW)) {
item.getState().setPath(IPath.SEPARATOR + ITransformerV2NodeConsDef.PATH_SMARTVIEW + statePath);
}
break;
case ITransformerV2NodeConsDef.TYPE_OTHER:
if (!statePath.startsWith(IPath.SEPARATOR + ITransformerV2NodeConsDef.PATH_OTHER)) {
item.getState().setPath(IPath.SEPARATOR + ITransformerV2NodeConsDef.PATH_OTHER + statePath);
}
break;
default:
break;
}
}
}
}