/* * (non-Javadoc) * * @see org.eclipse.gef.commands.Command#execute() */ @Override public void execute() { boolean modified = false; if (modelManager.getContextManager() != null) { originalName = param.getName(); for (IContext context : modelManager.getContextManager().getListContext()) { for (IContextParameter contextParameter : context.getContextParameterList()) { String tempSourceId = contextParameter.getSource(); if (originalName.equals(contextParameter.getName()) && tempSourceId.equals(sourceId)) { contextParameter.setName(newName); if (contextParameter.getPrompt().equals(originalName + "?")) { contextParameter.setPrompt(newName + "?"); } modified = true; } } } param.setName(newName); if (param.getPrompt().equals(originalName + "?")) { param.setPrompt(newName + "?"); } } if (modified) { updateRelation(originalName, newName); } }
/* * check same ContextParameter or not. */ private boolean checkIsSameContextParameter() { List<ContextItem> allContextItem = ContextUtils.getAllContextItem(); for (IContext context : process.getContextManager().getListContext()) { for (IContextParameter param : context.getContextParameterList()) { if (allContextItem != null) { ContextItem contextItem = ContextUtils.getContextItemById(allContextItem, param.getSource()); ContextType contextType = ContextUtils.getContextTypeByName(contextItem, context.getName(), true); ContextParameterType contextParameterType = ContextUtils.getContextParameterTypeByName(contextType, param.getName()); if (!ContextUtils.samePropertiesForContextParameter(param, contextParameterType)) { return false; } // if don't open the job to run it(not use the "Detect and update all jobs"), will show // UpdateDetectionDialog to update the context ,after updated the item, the // contextComboViewer still // set the old one , so need refresh. IContext runJobViewContext = getSelectedContext(); if (runJobViewContext != null) { for (IContextParameter tempContext : runJobViewContext.getContextParameterList()) { if (tempContext.getName().equals(contextParameterType.getName()) && !ContextUtils.samePropertiesForContextParameter( tempContext, contextParameterType)) { return false; } } } } } } return true; }
private static TreeItem retrieveTreeItem(final TreeItem[] items, IContextParameter param) { if (items == null || param == null) { return null; } for (TreeItem item : items) { final Object data = item.getData(); if (data != null) { if (data instanceof ContextVariableTabParentModel) { ContextVariableTabParentModel parent = (ContextVariableTabParentModel) data; if (parent.getContextParameter() != null && param.getName().equals(parent.getContextParameter().getName())) { return item; } } else if (data instanceof ContextVariableTabChildModel) { ContextVariableTabChildModel son = (ContextVariableTabChildModel) data; if (son.getContextParameter() != null && param.getName().equals(son.getContextParameter().getName())) { return item; } } } // search child item TreeItem childItem = retrieveTreeItem(item.getItems(), param); if (childItem != null) { return childItem; } } return null; }
public static boolean promptConfirmLauch(Shell shell, IContext context, IProcess process) { boolean continueLaunch = true; int nbValues = 0; if (context == null) { throw new IllegalArgumentException("Context is null"); // $NON-NLS-1$ } // Prompt for context values ? for (IContextParameter parameter : context.getContextParameterList()) { if (parameter.isPromptNeeded()) { nbValues++; } } if (nbValues > 0) { IContext contextCopy = context.clone(); PromptDialog promptDialog = new PromptDialog(shell, contextCopy); if (promptDialog.open() == PromptDialog.OK) { for (IContextParameter param : context.getContextParameterList()) { boolean found = false; IContextParameter paramCopy = null; for (int i = 0; i < contextCopy.getContextParameterList().size() & !found; i++) { paramCopy = contextCopy.getContextParameterList().get(i); if (param.getName().equals(paramCopy.getName())) { // param.setValueList(paramCopy.getValueList()); param.setInternalValue(paramCopy.getValue()); found = true; } } } contextComboViewer.refresh(); contextTableViewer.refresh(); processNeedGenCode(process); } else { continueLaunch = false; } } else { if (context.isConfirmationNeeded()) { continueLaunch = MessageDialog.openQuestion( shell, Messages.getString("ProcessComposite.confirmTitle"), // $NON-NLS-1$ Messages.getString( "ProcessComposite.confirmText", context.getName())); // $NON-NLS-1$ } updateDefaultValueForListTypeParameter(context.getContextParameterList()); } return continueLaunch; }
public IContextParameter getRealParameter( IContextManager manager, String property, Object element) { IContextParameter para = null; IContext context = null; if (manager != null) { context = manager.getContext(property); if (context == null) { return null; } if (element instanceof ContextTableTabParentModel) { if (IContextParameter.BUILT_IN.equals( ((ContextTableTabParentModel) element).getSourceId())) { IContextParameter builtContextParameter = ((ContextTableTabParentModel) element).getContextParameter(); if (builtContextParameter != null) { para = context.getContextParameter(builtContextParameter.getName()); } } } else if (element instanceof ContextTableTabChildModel) { ContextTableTabChildModel child = (ContextTableTabChildModel) element; String sourceId = child.getContextParameter().getSource(); para = context.getContextParameter( sourceId, ((ContextTableTabChildModel) element).getContextParameter().getName()); } } return para; }
/** * This method is used to remove the <code>JobContextParameter</code> in <code>JobContext</code>, * using the combination of <code>sourceId</code> and <code>name</code> can identify the unique * <code>JobContextParameter</code>. * * @param sourceId * @param name */ private void removeParameterFromContext(String sourceId, String name) { List<IContext> list = contextManager.getListContext(); if (list != null && list.size() > 0) { for (int i = 0; i < list.size(); i++) { IContext context = list.get(i); List<IContextParameter> contextParameters = context.getContextParameterList(); List<IContextParameter> movedList = new ArrayList<IContextParameter>(); if (contextParameters != null && contextParameters.size() > 0) { for (int j = 0; j < contextParameters.size(); j++) { IContextParameter contextPara = contextParameters.get(j); String tempSourceId = contextPara.getSource(); String tempParaName = contextPara.getName(); if (tempSourceId.equals(sourceId) && tempParaName.equals(name)) { movedList.add(contextPara); contextParameters.remove(j); if (mapParams.get(context.getName()) != null) { mapParams.get(context.getName()).addAll(movedList); mapParams.put(context.getName(), mapParams.get(context.getName())); } else { mapParams.put(context.getName(), movedList); } break; } } } } } }
/* * (non-Javadoc) * * @see org.eclipse.gef.commands.Command#undo() */ @Override public void undo() { boolean modified = false; if (modelManager.getContextManager() != null) { for (IContext context : modelManager.getContextManager().getListContext()) { for (IContextParameter contextParameter : context.getContextParameterList()) { if (param.getName().equals(contextParameter.getName())) { contextParameter.setType(oldValue); modified = true; } } } } if (modified) { updateRelation(); } }
private void propagateType(IContextManager contextManager, IContextParameter param) { for (IContext context : contextManager.getListContext()) { IContextParameter paramToModify = context.getContextParameter(param.getName()); paramToModify.setType(param.getType()); paramToModify.setComment(param.getComment()); paramToModify.setSource(param.getSource()); } }
private void updateRelation() { // set updated flag. if (param != null) { IContextManager manager = modelManager.getContextManager(); if (manager != null && manager instanceof JobContextManager) { JobContextManager jobContextManager = (JobContextManager) manager; // not added new if (!modelManager.isRepositoryContext() || modelManager.isRepositoryContext() && jobContextManager.isOriginalParameter(param.getName())) { jobContextManager.setModified(true); manager.fireContextsChangedEvent(); } } } }
private IContextParameter findContextPara( List<IContext> contexts, String columnGroupName, String contextParaName) { for (IContext envContext : contexts) { if (envContext.getName().equals(columnGroupName)) { List<IContextParameter> list = envContext.getContextParameterList(); if (list != null && list.size() > 0) { for (IContextParameter contextPara : list) { String tempContextParaName = contextPara.getName(); if (tempContextParaName.equals(contextParaName)) { return contextPara; } } } } } return null; }
private void initExistedParametersMap() { if (!isValid(manager)) { return; } itemNameToParametersMap.clear(); for (IContextParameter param : manager.getDefaultContext().getContextParameterList()) { if (!param.isBuiltIn()) { final String source = param.getSource(); Set<String> paramSet = itemNameToParametersMap.get(source); if (paramSet == null) { paramSet = new HashSet<String>(); itemNameToParametersMap.put(source, paramSet); } paramSet.add(param.getName()); } } }
private void removeParentModelInGroupBySource(ContextTableTabParentModel parentModel) { Set<String> paraNames = new HashSet<String>(); String sourceId = parentModel.getSourceId(); if (IContextParameter.BUILT_IN.equals(sourceId)) { String paraName = parentModel.getContextParameter().getName(); paraNames.add(paraName); } else { List<ContextTabChildModel> children = parentModel.getChildren(); if (children != null && children.size() > 0) { for (ContextTabChildModel child : children) { IContextParameter contextPara = child.getContextParameter(); String paraName = contextPara.getName(); paraNames.add(paraName); } } } modelManager.onContextRemoveParameter(getContextManager(), paraNames, sourceId); }
private void updateRelation(String _oldName, String _newName) { // set updated flag. if (param != null) { IContextManager manager = modelManager.getContextManager(); if (manager != null && manager instanceof JobContextManager) { JobContextManager jobContextManager = (JobContextManager) manager; // not added new if (!modelManager.isRepositoryContext() || modelManager.isRepositoryContext() && jobContextManager.isOriginalParameter(param.getName())) { jobContextManager.setModified(true); manager.fireContextsChangedEvent(); } } } // update nodes in the job if (modelManager instanceof ContextComposite) { ((ContextComposite) modelManager).switchSettingsView(_oldName, _newName); } }
/* * (non-Javadoc) * * @see org.eclipse.gef.commands.Command#undo() */ @Override public void undo() { boolean modified = false; if (modelManager.getContextManager() != null) { for (IContext context : modelManager.getContextManager().getListContext()) { for (IContextParameter contextParameter : context.getContextParameterList()) { if (newName.equals(contextParameter.getName())) { contextParameter.setName(originalName); if (contextParameter.getPrompt().equals(newName + "?")) { contextParameter.setPrompt(originalName + "?"); } modified = true; } } } } if (modified) { // it is undo, so the order changed updateRelation(newName, originalName); } }
/** @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int) */ @Override public String getColumnText(final Object element, final int columnIndex) { String text; IContextParameter parameter = (IContextParameter) element; switch (columnIndex) { case 0: text = parameter.getName(); break; case 1: if (ContextParameterUtils.isPasswordType(parameter)) { // see bug 0005661: In Run, Context password fields appear // in plaintext text = "****"; // $NON-NLS-1$ } else { text = parameter.getValue(); } break; default: text = super.getText(element); } return text; }
public String generate(Object argument) { final StringBuffer stringBuffer = new StringBuffer(); CodeGeneratorArgument codeGenArgument = (CodeGeneratorArgument) argument; Vector v = (Vector) codeGenArgument.getArgument(); IProcess process = (IProcess) v.get(0); String version = (String) v.get(1); String exportAsOSGI = (String) v.get(2); List<? extends INode> processNodes = (List<? extends INode>) process.getGeneratingNodes(); boolean stats = codeGenArgument.isStatistics(); boolean trace = codeGenArgument.isTrace(); boolean isRunInMultiThread = codeGenArgument.getIsRunInMultiThread(); List<IContextParameter> params = new ArrayList<IContextParameter>(); params = process.getContextManager().getDefaultContext().getContextParameterList(); IBrandingService service = (IBrandingService) GlobalServiceRegister.getDefault().getService(IBrandingService.class); if (service instanceof AbstractBrandingService) { stringBuffer.append(TEXT_1); stringBuffer.append(((AbstractBrandingService) service).getJobLicenseHeader(version)); } String jobFolderName = JavaResourcesHelper.getJobFolderName(process.getName(), process.getVersion()); String packageName = codeGenArgument.getCurrentProjectName().toLowerCase() + "." + jobFolderName; stringBuffer.append(TEXT_2); stringBuffer.append(packageName); stringBuffer.append(TEXT_3); for (String routine : CodeGeneratorRoutine.getRequiredRoutineName(process)) { if (!routine.equals(ITalendSynchronizer.TEMPLATE)) { stringBuffer.append(TEXT_4); stringBuffer.append(routine); stringBuffer.append(TEXT_5); } } stringBuffer.append(TEXT_6); stringBuffer.append(TEXT_7); stringBuffer.append(ElementParameterParser.getValue(process, "__HEADER_IMPORT__")); stringBuffer.append(TEXT_8); stringBuffer.append(ElementParameterParser.getValue(process, "__FOOTER_IMPORT__")); stringBuffer.append(TEXT_9); List<INode> nodesWithImport = process.getNodesWithImport(); if (nodesWithImport != null) { for (INode node : nodesWithImport) { stringBuffer.append(TEXT_10); stringBuffer.append(node.getUniqueName()); stringBuffer.append(TEXT_11); stringBuffer.append(ElementParameterParser.getValue(node, "__IMPORT__")); stringBuffer.append(TEXT_12); } } stringBuffer.append(TEXT_13); stringBuffer.append(process.getName()); stringBuffer.append(TEXT_14); stringBuffer.append(ElementParameterParser.getValue(process, "__PURPOSE__")); stringBuffer.append(TEXT_15); stringBuffer.append(ElementParameterParser.getValue(process, "__DESCRIPTION__")); stringBuffer.append(TEXT_16); stringBuffer.append(ElementParameterParser.getValue(process, "__AUTHOR__")); stringBuffer.append(TEXT_17); stringBuffer.append(version); stringBuffer.append(TEXT_18); stringBuffer.append(ElementParameterParser.getValue(process, "__STATUS__")); stringBuffer.append(TEXT_19); String talendJobInterfaces = "TalendJob"; boolean talendMdmJob = !process.getNodesOfType("tMDMTriggerInput").isEmpty() || !process.getNodesOfType("tMDMTriggerOutput").isEmpty(); boolean talendEsbJob = !process.getNodesOfType("tESBProviderRequest").isEmpty() || !process.getNodesOfType("tESBConsumer").isEmpty(); boolean talendEsbJobFactory = !process.getNodesOfType("tESBProviderRequest").isEmpty(); if (talendMdmJob) { talendJobInterfaces += ", TalendMDMJob"; // Talend MDM job } if (talendEsbJob) { talendJobInterfaces += ", TalendESBJob"; // Talend ESB job } if (talendEsbJobFactory) { talendJobInterfaces += ", TalendESBJobFactory"; // Talend ESB provider job } stringBuffer.append(TEXT_20); stringBuffer.append(process.getName()); stringBuffer.append(TEXT_21); stringBuffer.append(talendJobInterfaces); stringBuffer.append(TEXT_22); if (talendEsbJobFactory) { stringBuffer.append(TEXT_23); stringBuffer.append(process.getName()); stringBuffer.append(TEXT_24); stringBuffer.append(process.getName()); stringBuffer.append(TEXT_25); } stringBuffer.append(TEXT_26); if (isRunInMultiThread) { stringBuffer.append(TEXT_27); } stringBuffer.append(TEXT_28); // it will be use in job setting. stringBuffer.append(TEXT_29); // uft-8 is for temp file, for example: tSortRow, tMap. Because they need keep reversibility. stringBuffer.append(TEXT_30); for (IContextParameter ctxParam : params) { String cParaName = ctxParam.getName(); stringBuffer.append(TEXT_31); stringBuffer.append(cParaName); stringBuffer.append(TEXT_32); if (ctxParam.getType().equals("id_Date")) { stringBuffer.append(TEXT_33); stringBuffer.append(cParaName); stringBuffer.append(TEXT_34); stringBuffer.append(cParaName); stringBuffer.append(TEXT_35); stringBuffer.append(ctxParam.getValue()); stringBuffer.append(TEXT_36); stringBuffer.append(cParaName); stringBuffer.append(TEXT_37); stringBuffer.append(cParaName); stringBuffer.append(TEXT_38); stringBuffer.append(cParaName); stringBuffer.append(TEXT_39); stringBuffer.append(cParaName); stringBuffer.append(TEXT_40); stringBuffer.append(cParaName); stringBuffer.append(TEXT_41); stringBuffer.append(cParaName); stringBuffer.append(TEXT_42); stringBuffer.append(cParaName); stringBuffer.append(TEXT_43); stringBuffer.append(cParaName); stringBuffer.append(TEXT_44); stringBuffer.append(cParaName); stringBuffer.append(TEXT_45); stringBuffer.append(cParaName); stringBuffer.append(TEXT_46); stringBuffer.append(cParaName); stringBuffer.append(TEXT_47); stringBuffer.append(cParaName); stringBuffer.append(TEXT_48); } else { stringBuffer.append(TEXT_49); stringBuffer.append(cParaName); stringBuffer.append(TEXT_50); stringBuffer.append(cParaName); stringBuffer.append(TEXT_51); } stringBuffer.append(TEXT_52); } stringBuffer.append(TEXT_53); for (IContextParameter ctxParam : params) { if (ctxParam.getType().equals("id_List Of Value") || ctxParam.getType().equals("id_File") || ctxParam.getType().equals("id_Directory")) { stringBuffer.append(TEXT_54); stringBuffer.append(ctxParam.getName()); stringBuffer.append(TEXT_55); stringBuffer.append( Character.toUpperCase(ctxParam.getName().charAt(0)) + ctxParam.getName().substring(1)); stringBuffer.append(TEXT_56); stringBuffer.append(ctxParam.getName()); stringBuffer.append(TEXT_57); } else { stringBuffer.append(TEXT_58); stringBuffer.append(JavaTypesManager.getTypeToGenerate(ctxParam.getType(), true)); stringBuffer.append(TEXT_59); stringBuffer.append(ctxParam.getName()); stringBuffer.append(TEXT_60); stringBuffer.append(JavaTypesManager.getTypeToGenerate(ctxParam.getType(), true)); stringBuffer.append(TEXT_61); stringBuffer.append( Character.toUpperCase(ctxParam.getName().charAt(0)) + ctxParam.getName().substring(1)); stringBuffer.append(TEXT_62); stringBuffer.append(ctxParam.getName()); stringBuffer.append(TEXT_63); } } stringBuffer.append(TEXT_64); stringBuffer.append(process.getVersion()); stringBuffer.append(TEXT_65); stringBuffer.append(codeGenArgument.getJobName()); stringBuffer.append(TEXT_66); stringBuffer.append(codeGenArgument.getCurrentProjectName()); stringBuffer.append(TEXT_67); if (!isRunInMultiThread) { stringBuffer.append(TEXT_68); } else { stringBuffer.append(TEXT_69); } stringBuffer.append(TEXT_70); if (stats) { stringBuffer.append(TEXT_71); } if (trace) { stringBuffer.append(TEXT_72); } stringBuffer.append(TEXT_73); stringBuffer.append(exportAsOSGI); stringBuffer.append(TEXT_74); for (INode logCatcher : process.getNodesOfType("tLogCatcher")) { stringBuffer.append(TEXT_75); stringBuffer.append(logCatcher.getUniqueName()); stringBuffer.append(TEXT_76); } for (INode statCatcher : process.getNodesOfType("tStatCatcher")) { stringBuffer.append(TEXT_77); stringBuffer.append(statCatcher.getUniqueName()); stringBuffer.append(TEXT_78); stringBuffer.append(process.getId()); stringBuffer.append(TEXT_79); stringBuffer.append(process.getVersion()); stringBuffer.append(TEXT_80); } for (INode metterCatcher : process.getNodesOfType("tFlowMeterCatcher")) { stringBuffer.append(TEXT_81); stringBuffer.append(metterCatcher.getUniqueName()); stringBuffer.append(TEXT_82); stringBuffer.append(process.getId()); stringBuffer.append(TEXT_83); stringBuffer.append(process.getVersion()); stringBuffer.append(TEXT_84); } for (INode assertCatcher : process.getNodesOfType("tAssertCatcher")) { stringBuffer.append(TEXT_85); stringBuffer.append(assertCatcher.getUniqueName()); stringBuffer.append(TEXT_86); } stringBuffer.append(TEXT_87); stringBuffer.append(process.getName()); stringBuffer.append(TEXT_88); stringBuffer.append(process.getName()); stringBuffer.append(TEXT_89); if (process.getNodesOfType("tLogCatcher").size() > 0) { List<INode> logCatchers = (List<INode>) process.getNodesOfType("tLogCatcher"); for (INode logCatcher : logCatchers) { if (ElementParameterParser.getValue(logCatcher, "__CATCH_JAVA_EXCEPTION__") .equals("true")) { // 1) add the message to the stack stringBuffer.append(TEXT_90); stringBuffer.append(logCatcher.getUniqueName()); stringBuffer.append(TEXT_91); } } INode virtualNCatchNode = null; boolean hasRealCatchNode = false; for (INode logCatcher : logCatchers) { if (ElementParameterParser.getValue(logCatcher, "__CATCH_JAVA_EXCEPTION__") .equals("true")) { if (logCatcher.isVirtualGenerateNode()) { virtualNCatchNode = logCatcher; } else { hasRealCatchNode = true; } } } if (hasRealCatchNode && virtualNCatchNode != null) { stringBuffer.append(TEXT_92); } for (INode logCatcher : logCatchers) { if (ElementParameterParser.getValue(logCatcher, "__CATCH_JAVA_EXCEPTION__") .equals("true")) { if (logCatcher != virtualNCatchNode) { // 2) launch logCatcher subProcess stringBuffer.append(TEXT_93); stringBuffer.append(logCatcher.getDesignSubjobStartNode().getUniqueName()); stringBuffer.append(TEXT_94); } } } if (hasRealCatchNode && virtualNCatchNode != null) { stringBuffer.append(TEXT_95); } if (virtualNCatchNode != null) { stringBuffer.append(TEXT_96); stringBuffer.append(virtualNCatchNode.getDesignSubjobStartNode().getUniqueName()); stringBuffer.append(TEXT_97); } if (hasRealCatchNode && virtualNCatchNode != null) { stringBuffer.append(TEXT_98); } } stringBuffer.append(TEXT_99); boolean needCatchTalendException = false; if (process.getNodesOfType("tLogCatcher").size() > 0) { for (INode node : process.getNodesOfType("tLogCatcher")) { if (ElementParameterParser.getValue(node, "__CATCH_JAVA_EXCEPTION__").equals("true")) { needCatchTalendException = true; break; } } } if ((!needCatchTalendException) && (process.getNodesOfType("tAssertCatcher").size() > 0)) { for (INode node : process.getNodesOfType("tAssertCatcher")) { if (ElementParameterParser.getValue(node, "__CATCH_JAVA_EXCEPTION__").equals("true")) { needCatchTalendException = true; break; } } } if (needCatchTalendException) { if (process.getNodesOfType("tLogCatcher").size() > 0) { stringBuffer.append(TEXT_100); } } stringBuffer.append(TEXT_101); if (isRunInMultiThread) { stringBuffer.append(TEXT_102); } else { stringBuffer.append(TEXT_103); } stringBuffer.append(TEXT_104); // Methods for RUN IF Error links for (INode node : processNodes) { if (node.isActivate()) { stringBuffer.append(TEXT_105); stringBuffer.append(node.getUniqueName()); stringBuffer.append(TEXT_106); stringBuffer.append(node.getUniqueName()); stringBuffer.append(TEXT_107); boolean ifBeforRunError = NodeUtil.checkComponentErrorConnectionAfterNode(node); if (!ifBeforRunError) { if (process.getNodesOfType("tAssertCatcher").size() > 0) { List<INode> assertCatchers = (List<INode>) process.getNodesOfType("tAssertCatcher"); for (INode assertCatcher : assertCatchers) { if (ElementParameterParser.getValue(assertCatcher, "__CATCH_JAVA_EXCEPTION__") .equals("true")) { // 1) add the message to the stack stringBuffer.append(TEXT_108); stringBuffer.append(assertCatcher.getUniqueName()); stringBuffer.append(TEXT_109); stringBuffer.append(assertCatcher.getDesignSubjobStartNode().getUniqueName()); stringBuffer.append(TEXT_110); } } } } if (!node.getComponent().getName().equals("tDie")) { String statCatcher = ElementParameterParser.getValue(node, "__TSTATCATCHER_STATS__"); if (statCatcher.compareTo("true") == 0) { for (INode statCatcherNode : node.getProcess().getNodesOfType("tStatCatcher")) { stringBuffer.append(TEXT_111); stringBuffer.append(statCatcherNode.getUniqueName()); stringBuffer.append(TEXT_112); stringBuffer.append(node.getUniqueName()); stringBuffer.append(TEXT_113); stringBuffer.append(node.getUniqueName()); stringBuffer.append(TEXT_114); stringBuffer.append(node.getUniqueName()); stringBuffer.append(TEXT_115); stringBuffer.append(statCatcherNode.getDesignSubjobStartNode().getUniqueName()); stringBuffer.append(TEXT_116); } } } boolean isExistOnCompErrorLink = false; List<? extends IConnection> conns = node.getOutgoingConnections(); for (IConnection conn : conns) { if (conn.getLineStyle().equals(EConnectionType.ON_COMPONENT_ERROR)) { isExistOnCompErrorLink = true; stringBuffer.append(TEXT_117); if (stats) { stringBuffer.append(TEXT_118); stringBuffer.append(conn.getUniqueName()); stringBuffer.append(TEXT_119); } stringBuffer.append(TEXT_120); if (isRunInMultiThread) { stringBuffer.append(TEXT_121); stringBuffer.append(conn.getTarget().getUniqueName()); stringBuffer.append(TEXT_122); } else { stringBuffer.append(TEXT_123); stringBuffer.append(conn.getTarget().getUniqueName()); stringBuffer.append(TEXT_124); } stringBuffer.append(TEXT_125); } } boolean isSubjobHasOnSubJobError = false; if (!isExistOnCompErrorLink) { INode subJobStartNode = node.getDesignSubjobStartNode(); if (subJobStartNode != null) { List<? extends IConnection> tempConns = subJobStartNode.getOutgoingConnections(); for (IConnection conn : tempConns) { if (conn.getLineStyle().equals(EConnectionType.ON_SUBJOB_ERROR)) { isSubjobHasOnSubJobError = true; break; } } } } if (!isSubjobHasOnSubJobError && !isExistOnCompErrorLink) { // when there is no subjoberror and no onComponentError if (isRunInMultiThread) { stringBuffer.append(TEXT_126); } else { stringBuffer.append(TEXT_127); } } // when use parallelize will add virtual components(tAsyncIn and tAsyncOut) but in graphical // these is visable=false if ("true".equals(ElementParameterParser.getValue(node, "__PARALLELIZE__"))) { for (INode gNode : node.getProcess().getGeneratingNodes()) { if (gNode.getUniqueName().equals(node.getUniqueName())) { if (gNode.getIncomingConnections(EConnectionType.FLOW_MAIN).size() != 0) { INode gSourceNode = gNode.getIncomingConnections(EConnectionType.FLOW_MAIN).get(0).getSource(); node = gSourceNode; } } } } // end stringBuffer.append(TEXT_128); stringBuffer.append(node.getDesignSubjobStartNode().getUniqueName()); stringBuffer.append(TEXT_129); } } for (INode node : processNodes) { if (node.isDesignSubjobStartNode()) { stringBuffer.append(TEXT_130); stringBuffer.append(node.getUniqueName()); stringBuffer.append(TEXT_131); List<? extends IConnection> conns = node.getOutgoingConnections(); int count = 0; for (IConnection conn : conns) { if (conn.getLineStyle().equals(EConnectionType.ON_SUBJOB_ERROR)) { count++; } } String label = "ERROR"; if (count == 0) { // FATAL label = "FATAL"; } else { // ERROR------>RunSubJobError label = "ERROR"; } stringBuffer.append(TEXT_132); stringBuffer.append(label); stringBuffer.append(TEXT_133); for (IConnection conn : conns) { if (conn.getLineStyle().equals(EConnectionType.ON_SUBJOB_ERROR)) { stringBuffer.append(TEXT_134); if (stats) { stringBuffer.append(TEXT_135); stringBuffer.append(conn.getUniqueName()); stringBuffer.append(TEXT_136); } if (isRunInMultiThread) { stringBuffer.append(TEXT_137); stringBuffer.append(conn.getTarget().getUniqueName()); stringBuffer.append(TEXT_138); } else { stringBuffer.append(TEXT_139); stringBuffer.append(conn.getTarget().getUniqueName()); stringBuffer.append(TEXT_140); } stringBuffer.append(TEXT_141); } } stringBuffer.append(TEXT_142); } } stringBuffer.append(TEXT_143); return stringBuffer.toString(); }
private void removeChildModelInGroupBySource(ContextTableTabChildModel child) { IContextParameter contextPara = child.getContextParameter(); String sourceId = contextPara.getSource(); String contextName = contextPara.getName(); modelManager.onContextRemoveParameter(getContextManager(), contextName, sourceId); }
private void setPropertyValue( IContextModelManager manager, Object dataElement, String contextParaName, int columnIndex, Object newValue) { String currentColumnName = getColumnProperty(columnIndex); if (this.groupModel.isPartOfAGroup(columnIndex)) { String columnGroupName = this.groupModel.getColumnGroupByIndex(columnIndex).getName(); IContextManager contextManger = manager.getContextManager(); if (contextManger != null) { // change the property of context such as prompt,promptyNeeded,value etc. List<Object> list = new ArrayList<Object>(); list.add(dataElement); IContextParameter para = null; para = getRealParameter(contextManger, columnGroupName, dataElement); if (para == null) { return; } Command cmd = new SetContextGroupParameterCommand(manager, para, currentColumnName, newValue); runCommand(cmd, manager); if (currentColumnName.equals(ContextTableConstants.COLUMN_CHECK_PROPERTY)) { manager.refresh(); } } } else { if (currentColumnName.equals(ContextTableConstants.COLUMN_TYPE_PROPERTY)) { ContextTableTabParentModel parent = (ContextTableTabParentModel) dataElement; IContextParameter contextPara = parent.getContextParameter(); if (contextPara.getType() == ((String) newValue)) { return; } String newType = getRealType((String) newValue); contextPara.setType(newType); Command cmd = new SetContextTypeCommand(manager, contextPara, newType); runCommand(cmd, manager); } else if (currentColumnName.equals(ContextTableConstants.COLUMN_NAME_PROPERTY)) { ContextTableTabParentModel parent = (ContextTableTabParentModel) dataElement; IContextParameter contextPara = parent.getContextParameter(); String sourceId = contextPara.getSource(); String newParaName = (String) newValue; if (manager.getContextManager() instanceof JobContextManager) { // in case joblet rename will propagate to the job,just record it JobContextManager contextManager = (JobContextManager) manager.getContextManager(); contextManager.addNewName(newParaName, contextPara.getName()); contextManager.setModified(true); } Command cmd = new SetContextNameCommand(manager, contextPara, newParaName, sourceId); runCommand(cmd, manager); } else if (currentColumnName.equals(ContextTableConstants.COLUMN_COMMENT_PROPERTY)) { ContextTableTabParentModel parent = (ContextTableTabParentModel) dataElement; IContextParameter contextPara = parent.getContextParameter(); if (contextPara.getComment() == ((String) newValue)) { return; } Command cmd = new setContextCommentCommand(manager, contextPara, (String) newValue); runCommand(cmd, manager); } } }