public POJoinPackage(OperatorKey k, int rp, POPackage p, POForEach f) { super(k, rp); String scope = getOperatorKey().getScope(); NodeIdGenerator nig = NodeIdGenerator.getGenerator(); forEach = new POOptimizedForEach(new OperatorKey(scope, nig.getNextNodeId(scope))); if (p != null) { setKeyType(p.getKeyType()); setNumInps(p.getNumInps()); lastBagIndex = numInputs - 1; setInner(p.getInner()); setKeyInfo(p.getKeyInfo()); this.isKeyTuple = p.isKeyTuple; } if (f != null) { setInputPlans(f.getInputPlans()); setToBeFlattened(f.getToBeFlattened()); } }