use of org.talend.designer.core.model.utils.emf.talendfile.NodeType in project tesb-studio-se by Talend.
the class UpdateCJMSProjectMigrationTask method locateNodes.
/**
* Compute the location of cMQConnectionFactory Node
*
* @param processType
* @param nodes
*/
private void locateNodes(ProcessType processType, List<NodeType> nodes) {
int maxY = getMaxY(processType);
int index = 1;
for (NodeType node : nodes) {
node.setPosX(100 * index);
node.setPosY(maxY + 100);
index++;
}
}
use of org.talend.designer.core.model.utils.emf.talendfile.NodeType in project tesb-studio-se by Talend.
the class UpdateCJMSProjectMigrationTask method updateJMSComponent.
/**
* Update cJMS, add cMQConnectionFactory.
*
* @param item
* @throws PersistenceException
*/
@SuppressWarnings("unchecked")
private void updateJMSComponent(Item item) throws PersistenceException {
ProcessType processType = getProcessType(item);
if (processType == null) {
return;
}
boolean modified = false;
List<NodeType> nodes = new ArrayList<NodeType>();
for (Object o : processType.getNode()) {
if (o instanceof NodeType) {
NodeType currentNode = (NodeType) o;
if ("cJMS".equals(currentNode.getComponentName())) {
modified = true;
NodeType cfNode = createConnectionFactoryNode(currentNode);
nodes.add(cfNode);
}
}
}
if (modified) {
locateNodes(processType, nodes);
processType.getNode().addAll(nodes);
REPO_FACTORY.save(item, true);
}
}
use of org.talend.designer.core.model.utils.emf.talendfile.NodeType in project tesb-studio-se by Talend.
the class AssignJobAction method assign.
public boolean assign(IRepositoryNode jobNode) {
if (jobNode == null) {
return false;
}
IRepositoryViewObject repositoryObject = jobNode.getObject();
final Item item = repositoryObject.getProperty().getItem();
// judge the job whether had T_ESB_PROVIDER_REQUEST
ProcessItem processItem = (ProcessItem) item;
NodeType providerNode = null;
for (Object obj : processItem.getProcess().getNode()) {
NodeType node = (NodeType) obj;
if (CreateNewJobAction.T_ESB_PROVIDER_REQUEST.equals(node.getComponentName())) {
providerNode = node;
break;
}
}
if (null == providerNode) {
MessageDialog.openWarning(Display.getCurrent().getActiveShell(), Messages.AssignJobAction_WarningTitle, Messages.AssignJobAction_WarningMessage);
return false;
}
try {
String jobID = item.getProperty().getId();
String jobName = item.getProperty().getLabel();
String operationName = repositoryNode.getObject().getLabel();
String portName = repositoryNode.getParent().getObject().getLabel();
ServiceItem serviceItem = (ServiceItem) repositoryNode.getParent().getParent().getObject().getProperty().getItem();
List<ServicePort> listPort = ((ServiceConnection) serviceItem.getConnection()).getServicePort();
for (ServicePort port : listPort) {
if (port.getName().equals(portName)) {
List<ServiceOperation> listOperation = port.getServiceOperation();
for (ServiceOperation operation : listOperation) {
if (operation.getLabel().equals(operationName)) {
// should not change the job name
// String jobNewName = port.getName() + "_" + operation.getName();
// if (resetJobname(item, jobNewName)) {
// jobName = jobNewName;
// }
operation.setReferenceJobId(jobID);
operation.setLabel(operation.getName() + "-" + jobName);
break;
}
}
break;
}
}
IFile wsdlPath = WSDLUtils.getWsdlFile(serviceItem);
Map<String, String> serviceParameters = WSDLUtils.getServiceOperationParameters(wsdlPath, ((OperationRepositoryObject) repositoryNode.getObject()).getName(), portName);
for (Object paramObj : providerNode.getElementParameter()) {
ElementParameterType param = (ElementParameterType) paramObj;
String name = param.getName();
if (serviceParameters.containsKey(name)) {
param.setValue(serviceParameters.get(name));
}
}
IProcess2 process = null;
IEditorReference[] reference = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getEditorReferences();
List<IProcess2> processes = RepositoryPlugin.getDefault().getDesignerCoreService().getOpenedProcess(reference);
for (IProcess2 processOpen : processes) {
if (processOpen.getProperty().getItem() == processItem) {
process = processOpen;
break;
}
}
if (process == null) {
IDesignerCoreService service = CorePlugin.getDefault().getDesignerCoreService();
IProcess proc = service.getProcessFromProcessItem(processItem);
if (proc instanceof IProcess2) {
process = (IProcess2) proc;
}
}
if (process != null) {
List<? extends INode> nodelist = process.getGraphicalNodes();
for (INode node : nodelist) {
if (node.getComponent().getName().equals("tESBProviderRequest")) {
repositoryChange(repositoryNode, node);
}
}
processItem.setProcess(process.saveXmlFile());
}
IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
factory.save(processItem);
factory.save(serviceItem);
return true;
} catch (Exception e) {
ExceptionHandler.process(e);
}
return false;
}
use of org.talend.designer.core.model.utils.emf.talendfile.NodeType in project tdi-studio-se by Talend.
the class FixWrongDbTypesMigrationTask method execute.
/*
* (non-Javadoc)
*
* @see org.talend.core.model.migration.AbstractItemMigrationTask#execute(org.talend.core.model.properties.Item)
*/
@Override
public ExecutionResult execute(Item item) {
ProcessType processType = getProcessType(item);
if (processType == null) {
return ExecutionResult.NOTHING_TO_DO;
}
boolean modified = false;
for (Object nodeTypeObject : processType.getNode()) {
NodeType nodeType = (NodeType) nodeTypeObject;
IComponent component = ComponentsFactoryProvider.getInstance().get(nodeType.getComponentName(), ComponentCategory.CATEGORY_4_DI.getName());
if (component == null) {
// in case original component doesn't exist here
continue;
}
FakeNode fNode = new FakeNode(component);
IElementParameter mappingParameter = fNode.getElementParameterFromField(EParameterFieldType.MAPPING_TYPE);
if (mappingParameter != null && mappingParameter.getValue() != null) {
String mappingParameterValue = (String) mappingParameter.getValue();
MappingTypeRetriever mtr = MetadataTalendType.getMappingTypeRetriever(mappingParameterValue);
if (mtr == null) {
continue;
}
for (Object metadataObject : nodeType.getMetadata()) {
MetadataType metadataType = (MetadataType) metadataObject;
for (Object columnObject : metadataType.getColumn()) {
ColumnType columnType = (ColumnType) columnObject;
if (columnType.getSourceType() != null && !"".equals(columnType.getSourceType())) {
if (mtr.isAdvicedTalendToDbType(columnType.getType(), columnType.getSourceType())) {
// correct type already, no need to do anything
continue;
}
List<MappingType> advicedTalendToDbTypes = mtr.getAdvicedTalendToDbTypes(columnType.getType());
if (advicedTalendToDbTypes == null) {
continue;
}
String dbType = columnType.getSourceType();
for (MappingType type : advicedTalendToDbTypes) {
if (type.getDbType().equalsIgnoreCase(dbType)) {
columnType.setSourceType(type.getDbType());
modified = true;
break;
}
}
}
}
}
}
}
if (modified) {
try {
ProxyRepositoryFactory.getInstance().save(item, true);
return ExecutionResult.SUCCESS_NO_ALERT;
} catch (PersistenceException e) {
ExceptionHandler.process(e);
return ExecutionResult.FAILURE;
}
}
return ExecutionResult.NOTHING_TO_DO;
}
use of org.talend.designer.core.model.utils.emf.talendfile.NodeType in project tdi-studio-se by Talend.
the class HandleOracleSchemaMigrationTask method execute.
@Override
public ExecutionResult execute(Item item) {
ProcessType processType = getProcessType(item);
if (getProject().getLanguage() == ECodeLanguage.JAVA && processType != null) {
NodeType tOracleConnection = null;
for (Object nodeType : processType.getNode()) {
NodeType tmpNodeType = (NodeType) nodeType;
if (tmpNodeType.getComponentName().equals("tOracleConnection")) {
//$NON-NLS-1$
tOracleConnection = tmpNodeType;
break;
}
}
if (tOracleConnection != null) {
if (ComponentUtilities.getNodeProperty(tOracleConnection, "SCHEMA_DB") == null) {
//$NON-NLS-1$
//$NON-NLS-1$ //$NON-NLS-2$
ComponentUtilities.addNodeProperty(tOracleConnection, "SCHEMA_DB", "TEXT");
//$NON-NLS-1$ //$NON-NLS-2$
ComponentUtilities.setNodeValue(tOracleConnection, "SCHEMA_DB", "\"\"");
} else {
//$NON-NLS-1$
ElementParameterType elementParameter = ComponentUtilities.getNodeProperty(tOracleConnection, "SCHEMA_DB");
if (elementParameter.getValue().equals("ROOT")) {
//$NON-NLS-1$
//$NON-NLS-1$
elementParameter.setValue("\"\"");
}
}
}
return ExecutionResult.SUCCESS_WITH_ALERT;
} else {
return ExecutionResult.NOTHING_TO_DO;
}
}
Aggregations