static ContentModification createRollbackItem(String name, List<String> path, byte[] backupHash, boolean directory) { final MiscContentItem backupItem = new MiscContentItem(name, path, backupHash, directory); return new ContentModification(backupItem, NO_CONTENT, ModificationType.ADD); } }
static ContentModification createRollbackItem(String name, List<String> path, byte[] backupHash, boolean directory) { final MiscContentItem backupItem = new MiscContentItem(name, path, backupHash, directory); return new ContentModification(backupItem, NO_CONTENT, ModificationType.ADD); } }
@Override ContentModification createRollbackEntry(ContentModification original, MiscContentItem item, byte[] targetHash) { final ModificationType type; if (Arrays.equals(NO_CONTENT, item.getContentHash()) && !backup.exists()) { type = ModificationType.REMOVE; } else { type = ModificationType.MODIFY; } return new ContentModification(item, targetHash, type, original.getCondition()); }
@Override ContentModification createRollbackEntry(ContentModification original, MiscContentItem item, byte[] targetHash) { final ModificationType type; if (Arrays.equals(NO_CONTENT, item.getContentHash()) && !backup.exists()) { type = ModificationType.REMOVE; } else { type = ModificationType.MODIFY; } return new ContentModification(item, targetHash, type, original.getCondition()); }
@Override ContentModification createRollbackEntry(ContentModification original, byte[] targetHash, byte[] itemHash) { final ModuleItem item = createContentItem(contentItem, itemHash); return new ContentModification(item, targetHash, ModificationType.MODIFY, original.getCondition()); } }
@Override ContentModification createRollbackEntry(ContentModification original, byte[] targetHash, byte[] itemHash) { final ModuleItem item = createContentItem(contentItem, itemHash); return new ContentModification(item, targetHash, ModificationType.MODIFY, original.getCondition()); } }
@Override ContentModification createRollbackEntry(ContentModification original, byte[] targetHash, byte[] itemHash) { final BundleItem item = new BundleItem(contentItem.getName(), contentItem.getSlot(), itemHash); switch (original.getType()) { case ADD: return new ContentModification(item, targetHash, ModificationType.REMOVE, original.getCondition()); case REMOVE: return new ContentModification(item, targetHash, ModificationType.ADD, original.getCondition()); default: return new ContentModification(item, targetHash, ModificationType.MODIFY, original.getCondition()); } }
@Override ContentModification createRollbackEntry(ContentModification original, byte[] targetHash, byte[] itemHash) { final BundleItem item = new BundleItem(contentItem.getName(), contentItem.getSlot(), itemHash); switch (original.getType()) { case ADD: return new ContentModification(item, targetHash, ModificationType.REMOVE, original.getCondition()); case REMOVE: return new ContentModification(item, targetHash, ModificationType.ADD, original.getCondition()); default: return new ContentModification(item, targetHash, ModificationType.MODIFY, original.getCondition()); } }
protected ContentModification getOriginalModification(byte[] targetHash, byte[] itemHash) { final ContentModification original = super.getOriginalModification(targetHash, itemHash); final ModificationType type; if (Arrays.equals(NO_CONTENT, itemHash) && !backup.exists()) { type = ModificationType.ADD; } else { type = ModificationType.MODIFY; } return new ContentModification(original.getItem(), original.getTargetHash(), type, original.getCondition()); } }
public static ContentModification removeMisc(File existingFile, String... fileSegments) throws IOException { byte[] existingHash = hashFile(existingFile); String[] subdir = new String[0]; if (fileSegments.length > 0) { subdir = new String[fileSegments.length -1]; System.arraycopy(fileSegments, 0, subdir, 0, fileSegments.length - 1); } ContentModification fileRemoved = new ContentModification(new MiscContentItem(existingFile.getName(), subdir, NO_CONTENT), existingHash, REMOVE); return fileRemoved; }
static RollbackInfo createRollbackInfo(String id, byte[] oih, byte[] oth, byte[] rih, byte[] rth) { // final MiscContentItem oi = new MiscContentItem(name, path, oih); final MiscContentItem ri = new MiscContentItem(name, path, rih); // final Patch o = createPatch(id, Patch.PatchType.ONE_OFF, new ContentModification(oi, oth, ModificationType.MODIFY)); final Patch r = createPatch(id, Patch.PatchType.ONE_OFF, new ContentModification(ri, rth, ModificationType.MODIFY)); // return new RollbackInfo(o, r); }
public T removeFile(final String name, final String[] path, final byte[] existingHash, final boolean isDirectory, final String[] requiredPath) { final ContentItem item = createMiscItem(name, Arrays.asList(path), NO_CONTENT, isDirectory); ModificationCondition condition = null; if(requiredPath != null && requiredPath.length > 0) { final String[] subdir = new String[requiredPath.length -1]; System.arraycopy(requiredPath, 0, subdir, 0, requiredPath.length - 1); condition = ModificationCondition.Factory.exists(new MiscContentItem(requiredPath[requiredPath.length - 1], subdir, null)); } return addContentModification(new ContentModification(item, existingHash, ModificationType.REMOVE, condition)); }
@Override protected ContentModification getOriginalModification(byte[] targetHash, byte[] itemHash) { final ModuleItem original = getContentItem(); final ModuleItem item = new ModuleItem(original.getName(), original.getSlot(), targetHash); return new ContentModification(item, description.getModification().getTargetHash(), ModificationType.MODIFY, description.getModification().getCondition()); }
@Override protected ContentModification getOriginalModification(byte[] targetHash, byte[] itemHash) { final ModuleItem original = getContentItem(); final ModuleItem item = new ModuleItem(original.getName(), original.getSlot(), targetHash); return new ContentModification(item, description.getModification().getTargetHash(), ModificationType.MODIFY, description.getModification().getCondition()); }
public static ContentModification addModule(File patchDir, String patchElementID, String moduleName, String... resourceContents) throws IOException { File modulesDir = newFile(patchDir, patchElementID, MODULES); File moduleDir = createModule0(modulesDir, moduleName, resourceContents); byte[] newHash = hashFile(moduleDir); ContentModification moduleAdded = new ContentModification(new ModuleItem(moduleName, ModuleItem.MAIN_SLOT, newHash), NO_CONTENT, ADD); return moduleAdded; }
public static ContentModification modifyModule(File patchDir, String patchElementID, String moduleName, byte[] existingHash, String newContent) throws IOException { File modulesDir = newFile(patchDir, patchElementID, MODULES); File modifiedModule = createModule0(modulesDir, moduleName, newContent); byte[] updatedHash = hashFile(modifiedModule); ContentModification moduleUpdated = new ContentModification(new ModuleItem(moduleName, ModuleItem.MAIN_SLOT, updatedHash), existingHash, MODIFY); return moduleUpdated; }
public static ContentModification addModule(File patchDir, String patchElementID, String moduleName) throws IOException { File modulesDir = newFile(patchDir, patchElementID, MODULES); File moduleDir = createModule0(modulesDir, moduleName); byte[] newHash = hashFile(moduleDir); ContentModification moduleAdded = new ContentModification(new ModuleItem(moduleName, ModuleItem.MAIN_SLOT, newHash), NO_CONTENT, ADD); return moduleAdded; }
public static ContentModification modifyModule(File patchDir, String patchElementID, String moduleName, byte[] existingHash, TestUtils.ContentTask task) throws IOException { File modulesDir = newFile(patchDir, patchElementID, MODULES); File modifiedModule = createModule0(modulesDir, moduleName, task); byte[] updatedHash = hashFile(modifiedModule); ContentModification moduleUpdated = new ContentModification(new ModuleItem(moduleName, ModuleItem.MAIN_SLOT, updatedHash), existingHash, MODIFY); return moduleUpdated; }
static ContentModification resolveDefinition(final PatchingTasks.ContentTaskDefinition definition) { // Only available in a single patch, yay! if(definition.getLatest() == definition.getTarget()) { return definition.getTarget().getModification(); } // Create a new modification replacing the latest final ContentItem backupItem = definition.getTarget().getItem(); final ContentModification modification = definition.getTarget().getModification(); final byte[] target = definition.getLatest().getTargetHash(); return new ContentModification(backupItem, target, modification.getType(), modification.getCondition()); }
static ContentModification resolveDefinition(final PatchingTasks.ContentTaskDefinition definition) { // Only available in a single patch, yay! if(definition.getLatest() == definition.getTarget()) { return definition.getTarget().getModification(); } // Create a new modification replacing the latest final ContentItem backupItem = definition.getTarget().getItem(); final ContentModification modification = definition.getTarget().getModification(); final byte[] target = definition.getLatest().getTargetHash(); return new ContentModification(backupItem, target, modification.getType(), modification.getCondition()); }