use of org.talend.designer.core.model.utils.emf.talendfile.NodeType in project tdi-studio-se by Talend.
the class AddPortForTCassandraConfigurationSpark method execute.
/*
* (non-Javadoc)
*
* @see org.talend.core.model.migration.AbstractItemMigrationTask#execute(org.talend.core.model.properties.Item)
*/
@Override
public ExecutionResult execute(Item item) {
final ProcessType processType = getProcessType(item);
//$NON-NLS-1$
String[] compNames = { "tCassandraConfiguration" };
IComponentConversion conversion = new IComponentConversion() {
@Override
public void transform(NodeType node) {
if (node == null) {
return;
}
//$NON-NLS-1$
ElementParameterType parameter = ComponentUtilities.getNodeProperty(node, "PORT");
List<Object> needRemovedList = new ArrayList<Object>();
if (parameter == null) {
// get the value of native port if the user defined it on the configuration table
String portValue = null;
//$NON-NLS-1$
ElementParameterType configTable = ComponentUtilities.getNodeProperty(node, "CASSANDRA_CONFIGURATION");
boolean findNative = false;
boolean findRpc = false;
for (Object e : configTable.getElementValue()) {
ElementValueTypeImpl el = (ElementValueTypeImpl) e;
if (findNative && "VALUE".equals(el.getElementRef())) {
//$NON-NLS-1$
portValue = el.getValue();
needRemovedList.add(e);
findNative = false;
}
if (findRpc && "VALUE".equals(el.getElementRef())) {
//$NON-NLS-1$
needRemovedList.add(e);
findRpc = false;
}
if ("KEY".equals(el.getElementRef())) {
//$NON-NLS-1$
if ("connection_native_port".equals(el.getValue())) {
//$NON-NLS-1$
findNative = true;
needRemovedList.add(e);
}
if ("connection_rpc_port".equals(el.getValue())) {
//$NON-NLS-1$
findRpc = true;
needRemovedList.add(e);
}
}
}
configTable.getElementValue().removeAll(needRemovedList);
//$NON-NLS-1$ //$NON-NLS-2$
ComponentUtilities.addNodeProperty(node, "PORT", "TEXT");
//$NON-NLS-1$ //$NON-NLS-2$
ComponentUtilities.setNodeValue(node, "PORT", portValue == null ? "\"9042\"" : portValue);
}
}
};
for (String name : compNames) {
IComponentFilter filter = new NameComponentFilter(name);
try {
ModifyComponentsAction.searchAndModify(item, processType, filter, Arrays.<IComponentConversion>asList(conversion));
} catch (PersistenceException e) {
// TODO Auto-generated catch block
ExceptionHandler.process(e);
return ExecutionResult.FAILURE;
}
}
return ExecutionResult.SUCCESS_NO_ALERT;
}
use of org.talend.designer.core.model.utils.emf.talendfile.NodeType in project tdi-studio-se by Talend.
the class AddQuotesToModuleListMigrationTask method addQuote.
/**
* Add quote marks to the separators.
*
* yzhang Comment method "addQuote".
*
* @throws PersistenceException
*/
private void addQuote(Item item) throws PersistenceException {
ProcessType processType = getProcessType(item);
if (processType == null) {
return;
}
ProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
boolean modified = false;
EList node = processType.getNode();
for (Object object2 : node) {
NodeType type = (NodeType) object2;
EList elementParameterList = type.getElementParameter();
for (Object object3 : elementParameterList) {
ElementParameterType elemType = (ElementParameterType) object3;
if (elemType.getField().equals("MODULE_LIST")) {
//$NON-NLS-1$
String value = elemType.getValue();
if (!isWithinQuote(value)) {
elemType.setValue(TalendTextUtils.addQuotes(value));
modified = true;
break;
}
}
}
}
if (modified) {
factory.save(item);
}
}
use of org.talend.designer.core.model.utils.emf.talendfile.NodeType in project tdi-studio-se by Talend.
the class AddSchemaDefaultValue4tFileInputDelimited method execute.
@Override
public ExecutionResult execute(Item item) {
ProcessType processType = getProcessType(item);
IComponentFilter filter = new NameComponentFilter("tFileInputDelimited");
try {
ModifyComponentsAction.searchAndModify(item, processType, filter, Arrays.<IComponentConversion>asList(new IComponentConversion() {
public void transform(NodeType node) {
EList<EObject> list = node.eContents();
for (EObject object : list) {
if (object instanceof MetadataType) {
MetadataType flow = (MetadataType) object;
if ("FLOW".equalsIgnoreCase(flow.getConnector())) {
Iterator<?> columns = flow.getColumn().iterator();
while (columns.hasNext()) {
Object outColumn = columns.next();
if (outColumn instanceof ColumnType) {
ColumnType column = ((ColumnType) outColumn);
JavaType javaType = JavaTypesManager.getJavaTypeFromId(column.getType());
boolean isJavaPrimitiveType = JavaTypesManager.isJavaPrimitiveType(javaType, column.isNullable());
if (isJavaPrimitiveType && (column.getDefaultValue() == null || column.getDefaultValue().isEmpty())) {
String defaultValue = JavaTypesManager.getDefaultValueFromJavaType(javaType.getPrimitiveClass().getSimpleName(), null);
if (defaultValue != null) {
column.setDefaultValue(defaultValue);
}
}
}
}
}
}
}
}
}));
} catch (PersistenceException e) {
ExceptionHandler.process(e);
return ExecutionResult.FAILURE;
}
return ExecutionResult.SUCCESS_NO_ALERT;
}
use of org.talend.designer.core.model.utils.emf.talendfile.NodeType in project tdi-studio-se by Talend.
the class AddScreenshotFileMigrationTask method execute.
/*
* (non-Javadoc)
*
* @see org.talend.core.model.migration.AbstractItemMigrationTask#execute(org.talend.core.model.properties.Item)
*/
@Override
public ExecutionResult execute(Item item) {
byte[] screenshotStream = null;
EList nodeList = null;
try {
if (item instanceof ProcessItem) {
ProcessItem process = (ProcessItem) item;
screenshotStream = process.getProcess().getScreenshot();
process.getProcess().getScreenshots().put("process", screenshotStream);
nodeList = process.getProcess().getNode();
for (int i = 0; i < nodeList.size(); i++) {
String nodeName;
NodeType node = (NodeType) nodeList.get(i);
if (node.getScreenshot() != null && node.getScreenshot().length > 0) {
EList params = node.getElementParameter();
for (int j = 0; j < params.size(); j++) {
ElementParameterType type = (ElementParameterType) params.get(j);
if ("UNIQUE_NAME".equals(type.getName())) {
nodeName = type.getValue();
process.getProcess().getScreenshots().put(nodeName, node.getScreenshot());
break;
}
}
node.setScreenshot(null);
}
}
process.getProcess().setScreenshot(null);
} else if (item instanceof JobletProcessItem) {
JobletProcessItem joblet = (JobletProcessItem) item;
screenshotStream = ((JobletProcessItem) item).getJobletProcess().getScreenshot();
joblet.getJobletProcess().getScreenshots().put("process", screenshotStream);
nodeList = joblet.getJobletProcess().getNode();
for (int i = 0; i < nodeList.size(); i++) {
String nodeName;
NodeType node = (NodeType) nodeList.get(i);
if (node.getScreenshot() != null && node.getScreenshot().length > 0) {
EList params = node.getElementParameter();
for (int j = 0; j < params.size(); j++) {
ElementParameterType type = (ElementParameterType) params.get(j);
if ("UNIQUE_NAME".equals(type.getName())) {
nodeName = type.getValue();
joblet.getJobletProcess().getScreenshots().put(nodeName, node.getScreenshot());
break;
}
}
node.setScreenshot(null);
}
}
joblet.getJobletProcess().setScreenshot(null);
}
ProxyRepositoryFactory.getInstance().save(item, true);
} catch (PersistenceException e) {
ExceptionHandler.process(e);
return ExecutionResult.FAILURE;
}
return ExecutionResult.SUCCESS_NO_ALERT;
}
use of org.talend.designer.core.model.utils.emf.talendfile.NodeType in project tdi-studio-se by Talend.
the class ChangeDefaultValueForCassandraOutputBatch method execute.
/*
* (non-Javadoc)
*
* @see
* org.talend.core.model.migration.AbstractItemMigrationTask#execute(org
* .talend.core.model.properties.Item)
*/
@Override
public ExecutionResult execute(Item item) {
final ProcessType processType = getProcessType(item);
//$NON-NLS-1$
String[] compNames = { "tCassandraOutput" };
IComponentConversion conversion = new IComponentConversion() {
@Override
public void transform(NodeType node) {
if (node == null) {
return;
}
ElementParameterType parameter = ComponentUtilities.getNodeProperty(node, //$NON-NLS-1$
"ASYNC");
if (parameter == null) {
ComponentUtilities.addNodeProperty(node, "ASYNC", //$NON-NLS-1$ //$NON-NLS-2$
"CHECK");
ComponentUtilities.setNodeValue(node, "ASYNC", //$NON-NLS-1$ //$NON-NLS-2$
"false");
}
}
};
for (String name : compNames) {
IComponentFilter filter = new NameComponentFilter(name);
try {
ModifyComponentsAction.searchAndModify(item, processType, filter, Arrays.<IComponentConversion>asList(conversion));
} catch (PersistenceException e) {
// TODO Auto-generated catch block
ExceptionHandler.process(e);
return ExecutionResult.FAILURE;
}
}
return ExecutionResult.SUCCESS_NO_ALERT;
}
Aggregations