use of org.talend.core.model.process.IProcess2 in project tdi-studio-se by Talend.
the class UpdateMainParameterCommand method execute.
@Override
public void execute() {
if (result == null) {
return;
}
Object job = result.getJob();
if (job == null) {
return;
}
if (job instanceof IProcess2) {
Process process = (Process) job;
EComponentCategory category = null;
IUpdateItemType updateType = result.getUpdateType();
if (updateType instanceof EUpdateItemType) {
switch((EUpdateItemType) updateType) {
case JOB_PROPERTY_EXTRA:
category = EComponentCategory.EXTRA;
break;
case JOB_PROPERTY_STATS_LOGS:
category = EComponentCategory.STATSANDLOGS;
break;
case JOB_PROPERTY_HEADERFOOTER:
category = EComponentCategory.HEADERFOOTER;
break;
case JOB_PROPERTY_STORM:
if (ComponentCategory.CATEGORY_4_SPARKSTREAMING.getName().equals(process.getComponentsType())) {
category = EComponentCategory.SPARK_JOB_CONFIG;
}
break;
case JOB_PROPERTY_MAPREDUCE:
if (ComponentCategory.CATEGORY_4_MAPREDUCE.getName().equals(process.getComponentsType())) {
category = EComponentCategory.MAPREDUCE_JOB_CONFIG_FOR_HADOOP;
} else if (ComponentCategory.CATEGORY_4_SPARK.getName().equals(process.getComponentsType())) {
category = EComponentCategory.SPARK_JOB_CONFIG;
}
break;
default:
}
if (category == EComponentCategory.HEADERFOOTER) {
if (result.getResultType() == EUpdateResult.UPDATE) {
if (result.isChecked()) {
for (IElementParameter param : process.getElementParameters()) {
if (param.getCategory() == EComponentCategory.HEADERFOOTER) {
IElementParameter headerIDParameter = process.getElementParameter(EParameterName.HEADERFOOTER_HEADERID.getName());
if (headerIDParameter != null) {
IRepositoryViewObject lastVersion = UpdateRepositoryUtils.getRepositoryObjectById((String) headerIDParameter.getValue());
HeaderFooterConnection repositoryConnection = null;
if (lastVersion != null) {
final Item item = lastVersion.getProperty().getItem();
if (item != null && item instanceof ConnectionItem) {
repositoryConnection = (HeaderFooterConnection) ((HeaderFooterConnectionItem) item).getConnection();
if (repositoryConnection != null) {
Boolean isHeader = repositoryConnection.isIsHeader();
String libraries = repositoryConnection.getLibraries();
String mainCode = repositoryConnection.getMainCode();
String imports = repositoryConnection.getImports();
process.getElementParameter(EParameterName.HEADER_ENABLED.getName()).setValue(isHeader);
process.getElementParameter(EParameterName.HEADER_LIBRARY.getName()).setValue(libraries);
process.getElementParameter(EParameterName.HEADER_CODE.getName()).setValue(mainCode);
process.getElementParameter(EParameterName.HEADER_IMPORT.getName()).setValue(imports);
}
}
}
}
IElementParameter footerIDParameter = process.getElementParameter(EParameterName.HEADERFOOTER_FOOTERID.getName());
if (footerIDParameter != null) {
IRepositoryViewObject lastVersion = UpdateRepositoryUtils.getRepositoryObjectById((String) footerIDParameter.getValue());
HeaderFooterConnection repositoryConnection = null;
if (lastVersion != null) {
final Item item = lastVersion.getProperty().getItem();
if (item != null && item instanceof ConnectionItem) {
repositoryConnection = (HeaderFooterConnection) ((HeaderFooterConnectionItem) item).getConnection();
if (repositoryConnection != null) {
Boolean isHeader = repositoryConnection.isIsHeader();
String libraries = repositoryConnection.getLibraries();
String mainCode = repositoryConnection.getMainCode();
String imports = repositoryConnection.getImports();
process.getElementParameter(EParameterName.FOOTER_ENABLED.getName()).setValue(!isHeader);
process.getElementParameter(EParameterName.FOOTER_LIBRARY.getName()).setValue(libraries);
process.getElementParameter(EParameterName.FOOTER_CODE.getName()).setValue(mainCode);
process.getElementParameter(EParameterName.FOOTER_IMPORT.getName()).setValue(imports);
}
}
}
}
}
}
}
}
} else if (category != null) {
boolean repository = false;
if (result.getResultType() == EUpdateResult.UPDATE) {
// upgrade from repository
if (result.isChecked()) {
IElementParameter property = process.getElementParameterFromField(EParameterFieldType.PROPERTY_TYPE, category);
if (property != null) {
Map<String, IElementParameter> childParameters = property.getChildParameters();
if (childParameters != null) {
IElementParameter elementParameter = childParameters.get(EParameterName.PROPERTY_TYPE.getName());
// is repository
if (elementParameter != null && EmfComponent.REPOSITORY.equals(elementParameter.getValue())) {
for (IElementParameter param : process.getElementParameters()) {
if (param.getCategory() != category) {
continue;
}
String repositoryValue = param.getRepositoryValue();
if (param.isShow(process.getElementParameters()) && (repositoryValue != null) && (!param.getName().equals(EParameterName.PROPERTY_TYPE.getName()))) {
Object objectValue = RepositoryToComponentProperty.getValue((org.talend.core.model.metadata.builder.connection.Connection) result.getParameter(), repositoryValue, null);
if (objectValue != null) {
if (param.getFieldType().equals(EParameterFieldType.CLOSED_LIST) && repositoryValue.equals(UpdatesConstants.TYPE)) {
boolean found = false;
String[] items = param.getListRepositoryItems();
for (int i = 0; (i < items.length) && (!found); i++) {
if (objectValue.equals(items[i])) {
found = true;
process.setPropertyValue(param.getName(), param.getListItemsValue()[i]);
}
}
} else if (EParameterName.HADOOP_ADVANCED_PROPERTIES.getName().equals(param.getName()) || EParameterName.SPARK_ADVANCED_PROPERTIES.getName().equals(param.getName())) {
List<Map> list = (ArrayList) param.getValue();
for (Map map : list) {
if (map.get("BUILDIN") != null && map.get("BUILDIN").equals("TRUE")) {
if (objectValue instanceof List) {
((List) objectValue).add(map);
}
}
}
process.setPropertyValue(param.getName(), objectValue);
} else {
process.setPropertyValue(param.getName(), objectValue);
}
param.setRepositoryValueUsed(true);
param.setReadOnly(true);
repository = true;
}
}
}
}
}
}
}
}
IElementParameter property = process.getElementParameterFromField(EParameterFieldType.PROPERTY_TYPE, category);
Map<String, IElementParameter> childParameters = null;
if (property != null) {
childParameters = property.getChildParameters();
}
if (!repository) {
if (childParameters != null) {
IElementParameter elementParameter = childParameters.get(EParameterName.PROPERTY_TYPE.getName());
elementParameter.setValue(EmfComponent.BUILTIN);
}
// built-in
IElementParameter dbTypeParam = null;
IElementParameter impliciteDbType = null;
for (IElementParameter param : process.getElementParameters()) {
if (param.getCategory() != category) {
continue;
}
String repositoryValue = param.getRepositoryValue();
if (param.isShow(process.getElementParameters()) && (repositoryValue != null)) {
// for mysql db verion
if (EParameterName.DB_TYPE.getName().equals(param.getName()) && "TYPE".equals(repositoryValue)) {
dbTypeParam = param;
}
if ("DB_TYPE_IMPLICIT_CONTEXT".equals(param.getName()) && "TYPE".equals(repositoryValue)) {
impliciteDbType = param;
}
if (EParameterName.DB_VERSION.getName().equals(repositoryValue) && dbTypeParam != null && dbTypeParam.getValue() != null) {
final int indexOfItem = dbTypeParam.getIndexOfItemFromList(dbTypeParam.getValue().toString());
String dbType = dbTypeParam.getListItemsDisplayCodeName()[indexOfItem];
setDBVersionForMysql(param, dbType);
} else if (EParameterName.DB_VERSION.getName().equals(repositoryValue) && impliciteDbType != null && impliciteDbType.getValue() != null) {
final int indexOfItem = impliciteDbType.getIndexOfItemFromList(impliciteDbType.getValue().toString());
String dbType = impliciteDbType.getListItemsDisplayCodeName()[indexOfItem];
setDBVersionForMysql(param, dbType);
}
param.setRepositoryValueUsed(false);
param.setReadOnly(false);
}
}
} else {
if (childParameters != null) {
IElementParameter elementParameter = childParameters.get(EParameterName.REPOSITORY_PROPERTY_TYPE.getName());
ConnectionItem connItem = UpdateRepositoryUtils.getConnectionItemByItemId((String) elementParameter.getValue());
ConnectionContextHelper.addContextForProcessParameter(process, connItem, category, false);
}
}
}
}
// else { // for extension
}
}
use of org.talend.core.model.process.IProcess2 in project tdi-studio-se by Talend.
the class OpenJobHierarchyAction method run.
public void run() {
List selection = getSelectedObjects();
if (selection.size() != 1)
return;
Object input = selection.get(0);
IProcess2 element = caculateProcess(input);
if (element != null) {
run(element);
}
}
use of org.talend.core.model.process.IProcess2 in project tdi-studio-se by Talend.
the class JobHierarchyViewPart method jobSelectionChanged.
private void jobSelectionChanged(ISelection sel) {
if (sel instanceof IStructuredSelection) {
Object object = ((IStructuredSelection) sel).getFirstElement();
if (object == null) {
return;
}
IProcess2 process = (IProcess2) object;
updateMethodViewer(process);
}
}
use of org.talend.core.model.process.IProcess2 in project tdi-studio-se by Talend.
the class JobHierarchyContentProvider method getChildren.
public Object[] getChildren(Object element) {
if (element instanceof IProcess2) {
IProcess2 process = (IProcess2) element;
List children = new ArrayList();
addJobChildren(process, children);
return children.toArray();
}
return NO_ELEMENTS;
}
use of org.talend.core.model.process.IProcess2 in project tdi-studio-se by Talend.
the class DependencyViewerProvider method getElements.
public Object[] getElements(Object inputElement) {
if (inputElement instanceof IProcess2) {
IProcess2 process = (IProcess2) inputElement;
List res = new ArrayList();
JobHierarchy hierarchy = lifeCycle.getHierarchy();
// force to create fake list
ProcessUtils.clearFakeProcesses();
res.addAll(hierarchy.getContextDependencies(process));
res.addAll(hierarchy.getMetadataDependencies(process));
ProcessUtils.clearFakeProcesses();
return res.toArray();
}
return NO_ELEMENTS;
}
Aggregations