Exemplo n.º 1
0
  /**
   * Create a patch representing what we actually processed. This may contain some fixed content
   * hashes for removed modules.
   *
   * @param original the original
   * @return the processed patch
   */
  protected Patch createProcessedPatch(final Patch original) {

    // Process elements
    final List<PatchElement> elements = new ArrayList<PatchElement>();
    // Process layers
    for (final PatchEntry entry : getLayers()) {
      final PatchElement element =
          createPatchElement(entry, entry.element.getId(), entry.modifications);
      elements.add(element);
    }
    // Process add-ons
    for (final PatchEntry entry : getAddOns()) {
      final PatchElement element =
          createPatchElement(entry, entry.element.getId(), entry.modifications);
      elements.add(element);
    }

    // Swap the patch element modifications, keep the identity ones since we don't need to fix the
    // misc modifications
    return new PatchImpl(
        original.getPatchId(),
        original.getDescription(),
        original.getIdentity(),
        elements,
        original.getModifications());
  }