/** * Returns the most specific common superclass for the {@link #versionClass} of each embedded policy. */ @Override public Class<? extends DatasetVersion> versionClass() { if (this.selectionPolicies.size() == 1) { return this.selectionPolicies.get(0).versionClass(); } Class<? extends DatasetVersion> klazz = this.selectionPolicies.get(0).versionClass(); for (VersionSelectionPolicy<? extends DatasetVersion> policy : this.selectionPolicies) { klazz = commonSuperclass(klazz, policy.versionClass()); } return klazz; }
@Override public Collection<DatasetVersion> listSelectedVersions(final List<DatasetVersion> allVersions) { List<Set<DatasetVersion>> candidateDeletableVersions = Lists.newArrayList(Iterables .transform(this.selectionPolicies, new Function<VersionSelectionPolicy<DatasetVersion>, Set<DatasetVersion>>() { @Nullable @Override public Set<DatasetVersion> apply(VersionSelectionPolicy<DatasetVersion> input) { return Sets.newHashSet(input.listSelectedVersions(allVersions)); } })); switch (this.combineOperation) { case INTERSECT: return intersectDatasetVersions(candidateDeletableVersions); case UNION: return unionDatasetVersions(candidateDeletableVersions); default: throw new RuntimeException("Combine operation " + this.combineOperation + " not recognized."); } }
@Override public Collection<DatasetVersion> listSelectedVersions(final List<DatasetVersion> allVersions) { List<Set<DatasetVersion>> candidateDeletableVersions = Lists.newArrayList(Iterables .transform(this.selectionPolicies, new Function<VersionSelectionPolicy<DatasetVersion>, Set<DatasetVersion>>() { @Nullable @Override public Set<DatasetVersion> apply(VersionSelectionPolicy<DatasetVersion> input) { return Sets.newHashSet(input.listSelectedVersions(allVersions)); } })); switch (this.combineOperation) { case INTERSECT: return intersectDatasetVersions(candidateDeletableVersions); case UNION: return unionDatasetVersions(candidateDeletableVersions); default: throw new RuntimeException("Combine operation " + this.combineOperation + " not recognized."); } }
/** * Returns the most specific common superclass for the {@link #versionClass} of each embedded policy. */ @Override public Class<? extends DatasetVersion> versionClass() { if (this.selectionPolicies.size() == 1) { return this.selectionPolicies.get(0).versionClass(); } Class<? extends DatasetVersion> klazz = this.selectionPolicies.get(0).versionClass(); for (VersionSelectionPolicy<? extends DatasetVersion> policy : this.selectionPolicies) { klazz = commonSuperclass(klazz, policy.versionClass()); } return klazz; }