public ImageLayers<T> build() { if (!removeDuplicates) { return new ImageLayers<>(ImmutableList.copyOf(layers), layerDigestsBuilder.build()); } // LinkedHashSet maintains the order but keeps the first occurrence. Keep last occurrence by // adding elements in reverse, and then reversing the result Set<T> dedupedButReversed = new LinkedHashSet<T>(Lists.reverse(this.layers)); ImmutableList<T> deduped = ImmutableList.copyOf(dedupedButReversed).reverse(); return new ImageLayers<>(deduped, layerDigestsBuilder.build()); } }
private final ImageLayers.Builder<T> imageLayersBuilder = ImageLayers.builder(); private final ImmutableList.Builder<HistoryEntry> historyBuilder = ImmutableList.builder();
public ImmutableList<T> getLayers() { return layers.getLayers(); }
/** * @param digest the digest used to retrieve the layer * @return the layer found, or {@code null} if not found * @throws LayerPropertyNotFoundException if getting the layer's blob descriptor fails */ @Nullable public T get(DescriptorDigest digest) throws LayerPropertyNotFoundException { if (!has(digest)) { return null; } for (T layer : layers) { if (layer.getBlobDescriptor().getDigest().equals(digest)) { return layer; } } throw new IllegalStateException("Layer digest exists but layer not found"); }
/** * @param digest the digest used to retrieve the layer * @return the layer found, or {@code null} if not found * @throws LayerPropertyNotFoundException if getting the layer's blob descriptor fails */ @Nullable public T get(DescriptorDigest digest) throws LayerPropertyNotFoundException { if (!has(digest)) { return null; } for (T layer : layers) { if (layer.getBlobDescriptor().getDigest().equals(digest)) { return layer; } } throw new IllegalStateException("Layer digest exists but layer not found"); }
@Override public Iterator<T> iterator() { return getLayers().iterator(); } }
public ImageLayers<T> build() { if (!removeDuplicates) { return new ImageLayers<>(ImmutableList.copyOf(layers), layerDigestsBuilder.build()); } // LinkedHashSet maintains the order but keeps the first occurrence. Keep last occurrence by // adding elements in reverse, and then reversing the result Set<T> dedupedButReversed = new LinkedHashSet<T>(Lists.reverse(this.layers)); ImmutableList<T> deduped = ImmutableList.copyOf(dedupedButReversed).reverse(); return new ImageLayers<>(deduped, layerDigestsBuilder.build()); } }
/** * @param digest the digest used to retrieve the layer * @return the layer found, or {@code null} if not found * @throws LayerPropertyNotFoundException if getting the layer's blob descriptor fails */ @Nullable public T get(DescriptorDigest digest) throws LayerPropertyNotFoundException { if (!has(digest)) { return null; } for (T layer : layers) { if (layer.getBlobDescriptor().getDigest().equals(digest)) { return layer; } } throw new IllegalStateException("Layer digest exists but layer not found"); }
private final ImageLayers.Builder<T> imageLayersBuilder = ImageLayers.builder(); private final ImmutableList.Builder<HistoryEntry> historyBuilder = ImmutableList.builder();
public ImmutableList<T> getLayers() { return layers.getLayers(); }
public ImageLayers<T> build() { if (!removeDuplicates) { return new ImageLayers<>(ImmutableList.copyOf(layers), layerDigestsBuilder.build()); } // LinkedHashSet maintains the order but keeps the first occurrence. Keep last occurrence by // adding elements in reverse, and then reversing the result Set<T> dedupedButReversed = new LinkedHashSet<T>(Lists.reverse(this.layers)); ImmutableList<T> deduped = ImmutableList.copyOf(dedupedButReversed).reverse(); return new ImageLayers<>(deduped, layerDigestsBuilder.build()); } }
private final ImageLayers.Builder<T> imageLayersBuilder = ImageLayers.builder(); private final ImmutableList.Builder<HistoryEntry> historyBuilder = ImmutableList.builder();
public ImmutableList<T> getLayers() { return layers.getLayers(); }
@Override public Iterator<T> iterator() { return getLayers().iterator(); } }
@Override public Iterator<T> iterator() { return getLayers().iterator(); } }