MCPcopy Create free account
hub / github.com/apache/pig / replace

Method replace

src/org/apache/pig/newplan/BaseOperatorPlan.java:352–379  ·  view source on GitHub ↗
(Operator oldOperator, Operator newOperator)

Source from the content-addressed store, hash-verified

350 }
351
352 @Override
353 public void replace(Operator oldOperator, Operator newOperator) throws FrontendException {
354 add(newOperator);
355
356 List<Operator> preds = getPredecessors(oldOperator);
357 if (preds!=null) {
358 List<Operator> predsCopy = new ArrayList<Operator>();
359 predsCopy.addAll(preds);
360 for (int i=0;i<predsCopy.size();i++) {
361 Operator pred = predsCopy.get(i);
362 Pair<Integer, Integer> pos = disconnect(pred, oldOperator);
363 connect(pred, pos.first, newOperator, i);
364 }
365 }
366
367 List<Operator> succs = getSuccessors(oldOperator);
368 if (succs!=null) {
369 List<Operator> succsCopy = new ArrayList<Operator>();
370 succsCopy.addAll(succs);
371 for (int i=0;i<succsCopy.size();i++) {
372 Operator succ = succsCopy.get(i);
373 Pair<Integer, Integer> pos = disconnect(oldOperator, succ);
374 connect(newOperator, i, succ, pos.second);
375 }
376 }
377
378 remove(oldOperator);
379 }
380
381 // We assume if node has multiple inputs, it only has one output;
382 // if node has multiple outputs, it only has one input.

Callers

nothing calls this directly

Calls 9

addMethod · 0.95
getPredecessorsMethod · 0.95
disconnectMethod · 0.95
connectMethod · 0.95
getSuccessorsMethod · 0.95
removeMethod · 0.95
addAllMethod · 0.65
sizeMethod · 0.65
getMethod · 0.65

Tested by

no test coverage detected