Source:
<code>public static void updateComponentList(IElement elem, IElementParameter param) { if (elem instanceof INode) { final INode currentNode = (INode) elem; final List<INode> nodeList; IJobletProviderService jobletService = getJobletProviderService(param); if (jobletService != null) { nodeList = jobletService.getConnNodesForInputTrigger(currentNode, param); } else { List<? extends INode> list = null; if (PluginChecker.isJobLetPluginLoaded()) { IJobletProviderService jobletProviderService = (IJobletProviderService) GlobalServiceRegister.getDefault() .getService(IJobletProviderService.class); INode jobletNode = currentNode.getJobletNode(); if (jobletNode != null && jobletProviderService.isJobletComponent(jobletNode)) { List<? extends INode> jobletNodes = jobletProviderService.getGraphNodesForJoblet(jobletNode); for (INode node : jobletNodes) { if (node != null && node.getUniqueName() != null && node.getUniqueName().equals(currentNode.getUniqueName())) { list = node.getProcess().getNodesOfType(param.getFilter()); break; } } } } if (list == null) { list = currentNode.getProcess().getNodesOfType(param.getFilter()); } nodeList = new ArrayList<INode>(); if (list != null) { for (INode datanode : list) { if (!datanode.isVirtualGenerateNode() && datanode.getUniqueName() != null && !datanode.getUniqueName().equals(StatsAndLogsManager.CONNECTION_UID)) { <START> if(param.getFilter().startsWith("tRedshift")) { <END> Object datanodeUrl = datanode.getElementParameter("JDBC_URL"); Object currentNodeUrl = currentNode.getElementParameter("JDBC_URL"); if(currentNodeUrl!=null&&datanodeUrl!=null&&datanodeUrl.toString().equals(currentNodeUrl.toString())) { nodeList.add(datanode); } }else { nodeList.add(datanode); } } } } } updateComponentList(nodeList, currentNode, param, true); } }</code><technical_language>I need add filter here, tRedshiftConnection component handle db connection, tRedshiftInput component</technical_language>

Target:
public static void updateComponentList(IElement elem, IElementParameter param) { if (elem instanceof INode) { final INode currentNode = (INode) elem; final List<INode> nodeList; IJobletProviderService jobletService = getJobletProviderService(param); if (jobletService != null) { nodeList = jobletService.getConnNodesForInputTrigger(currentNode, param); } else { List<? extends INode> list = null; if (PluginChecker.isJobLetPluginLoaded()) { IJobletProviderService jobletProviderService = (IJobletProviderService) GlobalServiceRegister.getDefault() .getService(IJobletProviderService.class); INode jobletNode = currentNode.getJobletNode(); if (jobletNode != null && jobletProviderService.isJobletComponent(jobletNode)) { List<? extends INode> jobletNodes = jobletProviderService.getGraphNodesForJoblet(jobletNode); for (INode node : jobletNodes) { if (node != null && node.getUniqueName() != null && node.getUniqueName().equals(currentNode.getUniqueName())) { list = node.getProcess().getNodesOfType(param.getFilter()); break; } } } } if (list == null) { list = currentNode.getProcess().getNodesOfType(param.getFilter()); } nodeList = new ArrayList<INode>(); if (list != null) { for (INode datanode : list) { if (!datanode.isVirtualGenerateNode() && datanode.getUniqueName() != null && !datanode.getUniqueName().equals(StatsAndLogsManager.CONNECTION_UID)) { nodeList.add(datanode); } } } } updateComponentList(nodeList, currentNode, param, true); } }