/** * Get a list of previous {@link WorkUnit}s subject for retries. * * <p> * This method uses {@link AbstractSource#getPreviousWorkUnitStatesForRetry(SourceState)}. * </p> * * @param state Source state * @return list of previous {@link WorkUnit}s subject for retries */ protected List<WorkUnit> getPreviousWorkUnitsForRetry(SourceState state) { List<WorkUnit> workUnits = Lists.newArrayList(); for (WorkUnitState workUnitState : getPreviousWorkUnitStatesForRetry(state)) { // Make a copy here as getWorkUnit() below returns an ImmutableWorkUnit workUnits.add(WorkUnit.copyOf(workUnitState.getWorkunit())); } return workUnits; }
WorkUnit newWorkUnit = WorkUnit.copyOf(workUnit);
/** * Copy WorkUnitState so that work unit also contains job state. FileBasedExtractor needs properties from job state (mostly source.* properties), * where it has been already removed when reached here. * * @param src * @return */ private WorkUnitState copyOf(WorkUnitState src) { WorkUnit copiedWorkUnit = WorkUnit.copyOf(src.getWorkunit()); copiedWorkUnit.addAllIfNotExist(src.getJobState()); WorkUnitState workUnitState = new WorkUnitState(copiedWorkUnit, src.getJobState()); workUnitState.addAll(src); return workUnitState; }
/** * Get a list of previous {@link WorkUnit}s subject for retries. * * <p> * This method uses {@link AbstractSource#getPreviousWorkUnitStatesForRetry(SourceState)}. * </p> * * @param state Source state * @return list of previous {@link WorkUnit}s subject for retries */ protected List<WorkUnit> getPreviousWorkUnitsForRetry(SourceState state) { List<WorkUnit> workUnits = Lists.newArrayList(); for (WorkUnitState workUnitState : getPreviousWorkUnitStatesForRetry(state)) { // Make a copy here as getWorkUnit() below returns an ImmutableWorkUnit workUnits.add(WorkUnit.copyOf(workUnitState.getWorkunit())); } return workUnits; }
WorkUnit newWorkUnit = WorkUnit.copyOf(workUnit);
/** * Copy WorkUnitState so that work unit also contains job state. FileBasedExtractor needs properties from job state (mostly source.* properties), * where it has been already removed when reached here. * * @param src * @return */ private WorkUnitState copyOf(WorkUnitState src) { WorkUnit copiedWorkUnit = WorkUnit.copyOf(src.getWorkunit()); copiedWorkUnit.addAllIfNotExist(src.getJobState()); WorkUnitState workUnitState = new WorkUnitState(copiedWorkUnit, src.getJobState()); workUnitState.addAll(src); return workUnitState; }