|
24 | 24 | import org.apache.hop.core.variables.IVariables;
|
25 | 25 | import org.apache.hop.i18n.BaseMessages;
|
26 | 26 | import org.apache.hop.pipeline.PipelineMeta;
|
| 27 | +import org.apache.hop.pipeline.transform.TransformMeta; |
27 | 28 | import org.apache.hop.ui.core.PropsUi;
|
28 | 29 | import org.apache.hop.ui.core.dialog.BaseDialog;
|
29 | 30 | import org.apache.hop.ui.core.widget.ColumnInfo;
|
@@ -168,23 +169,34 @@ public String open() {
|
168 | 169 |
|
169 | 170 | private void setTransformNames() {
|
170 | 171 | previousTransforms = pipelineMeta.getTransformNames();
|
171 |
| - String[] nextTransforms = pipelineMeta.getNextTransformNames(transformMeta); |
| 172 | + List<String> nextTransforms = getNextTransforms(new ArrayList<>(), transformMeta); |
172 | 173 |
|
173 | 174 | List<String> entries = new ArrayList<>();
|
174 | 175 | for (String previousTransform : previousTransforms) {
|
175 | 176 | if (!previousTransform.equals(transformName)) {
|
176 |
| - if (nextTransforms != null && nextTransforms.length > 0) { |
| 177 | + if (nextTransforms != null && !nextTransforms.isEmpty()) { |
| 178 | + boolean found = false; |
177 | 179 | for (String nextTransform : nextTransforms) {
|
178 |
| - if (!nextTransform.equals(previousTransform)) { |
179 |
| - entries.add(previousTransform); |
| 180 | + if (nextTransform.equals(previousTransform)) { |
| 181 | + found = true; |
180 | 182 | }
|
181 | 183 | }
|
182 |
| - } else { |
183 |
| - entries.add(previousTransform); |
| 184 | + if (!found) { |
| 185 | + entries.add(previousTransform); |
| 186 | + } |
184 | 187 | }
|
185 | 188 | }
|
186 | 189 | }
|
187 |
| - previousTransforms = entries.toArray(new String[entries.size()]); |
| 190 | + previousTransforms = entries.toArray(new String[0]); |
| 191 | + } |
| 192 | + |
| 193 | + private List<String> getNextTransforms(List<String> transformNames, TransformMeta transformMeta) { |
| 194 | + List<TransformMeta> nextTransformMeta = pipelineMeta.findNextTransforms(transformMeta); |
| 195 | + for (TransformMeta nextTransform : nextTransformMeta) { |
| 196 | + transformNames.add(nextTransform.getName()); |
| 197 | + getNextTransforms(transformNames, nextTransform); |
| 198 | + } |
| 199 | + return transformNames.stream().distinct().toList(); |
188 | 200 | }
|
189 | 201 |
|
190 | 202 | private void get() {
|
|
0 commit comments