@Override public CombinedWorkUnitAndDatasetState getCombinedWorkUnitAndDatasetState(String datasetUrn) throws Exception { Map<String, JobState.DatasetState> datasetStateMap = ImmutableMap.of(); List<WorkUnitState> workUnitStates = new ArrayList<>(); if (Strings.isNullOrEmpty(datasetUrn)) { datasetStateMap = this.datasetStateStore.getLatestDatasetStatesByUrns(this.jobName); workUnitStates = JobState.workUnitStatesFromDatasetStates(datasetStateMap.values()); } else { JobState.DatasetState datasetState = (JobState.DatasetState) this.datasetStateStore.getLatestDatasetState(this.jobName, datasetUrn); if (datasetState != null) { datasetStateMap = ImmutableMap.of(datasetUrn, datasetState); workUnitStates = JobState.workUnitStatesFromDatasetStates(Arrays.asList(datasetState)); } } return new CombinedWorkUnitAndDatasetState(workUnitStates, datasetStateMap); } }
/** * A thread-safe method for materializing previous {@link WorkUnitState}s and DatasetStates. * @param datasetUrn */ private synchronized void materializeWorkUnitAndDatasetStates(String datasetUrn) { if (!this.areWorkUnitStatesMaterialized) { try { CombinedWorkUnitAndDatasetState workUnitAndDatasetState = this.workUnitAndDatasetStateFunctional.getCombinedWorkUnitAndDatasetState(datasetUrn); this.previousWorkUnitStates = workUnitAndDatasetState.getPreviousWorkUnitStates(); this.previousDatasetStatesByUrns = (Map<String, SourceState>) workUnitAndDatasetState.getPreviousDatasetStatesByUrns(); this.areWorkUnitStatesMaterialized = true; } catch (Exception e) { throw new RuntimeException(e); } } }
/** * Get a {@link List} of previous {@link WorkUnitState}s for a given datasetUrn. * @param datasetUrn * @return {@link List} of {@link WorkUnitState}s. */ public List<WorkUnitState> getPreviousWorkUnitStates(String datasetUrn) { if (this.workUnitAndDatasetStateFunctional != null) { try { CombinedWorkUnitAndDatasetState state = this.workUnitAndDatasetStateFunctional.getCombinedWorkUnitAndDatasetState(datasetUrn); return state.getPreviousWorkUnitStates(); } catch (Exception e) { throw new RuntimeException(e); } } return this.previousWorkUnitStates; }
/** * Get a {@link List} of previous {@link WorkUnitState}s for a given datasetUrn. * @param datasetUrn * @return {@link List} of {@link WorkUnitState}s. */ public List<WorkUnitState> getPreviousWorkUnitStates(String datasetUrn) { if (this.workUnitAndDatasetStateFunctional != null) { try { CombinedWorkUnitAndDatasetState state = this.workUnitAndDatasetStateFunctional.getCombinedWorkUnitAndDatasetState(datasetUrn); return state.getPreviousWorkUnitStates(); } catch (Exception e) { throw new RuntimeException(e); } } return this.previousWorkUnitStates; }
/** * A thread-safe method for materializing previous {@link WorkUnitState}s and DatasetStates. * @param datasetUrn */ private synchronized void materializeWorkUnitAndDatasetStates(String datasetUrn) { if (!this.areWorkUnitStatesMaterialized) { try { CombinedWorkUnitAndDatasetState workUnitAndDatasetState = this.workUnitAndDatasetStateFunctional.getCombinedWorkUnitAndDatasetState(datasetUrn); this.previousWorkUnitStates = workUnitAndDatasetState.getPreviousWorkUnitStates(); this.previousDatasetStatesByUrns = (Map<String, SourceState>) workUnitAndDatasetState.getPreviousDatasetStatesByUrns(); this.areWorkUnitStatesMaterialized = true; } catch (Exception e) { throw new RuntimeException(e); } } }
@Override public CombinedWorkUnitAndDatasetState getCombinedWorkUnitAndDatasetState(String datasetUrn) throws Exception { Map<String, JobState.DatasetState> datasetStateMap = ImmutableMap.of(); List<WorkUnitState> workUnitStates = new ArrayList<>(); if (Strings.isNullOrEmpty(datasetUrn)) { datasetStateMap = this.datasetStateStore.getLatestDatasetStatesByUrns(this.jobName); workUnitStates = JobState.workUnitStatesFromDatasetStates(datasetStateMap.values()); } else { JobState.DatasetState datasetState = (JobState.DatasetState) this.datasetStateStore.getLatestDatasetState(this.jobName, datasetUrn); if (datasetState != null) { datasetStateMap = ImmutableMap.of(datasetUrn, datasetState); workUnitStates = JobState.workUnitStatesFromDatasetStates(Arrays.asList(datasetState)); } } return new CombinedWorkUnitAndDatasetState(workUnitStates, datasetStateMap); } }