package org.jboss.as.patching.runner;
import java.io.File;
import java.io.IOException;
import org.jboss.as.patching.metadata.ContentItem;
import org.jboss.as.patching.metadata.ContentModification;
import org.jboss.as.patching.metadata.MiscContentItem;
/**
* @author Emanuel Muckenhuber
*/
public interface PatchingTaskContext {
static enum Mode {
APPLY,
UNDO,
ROLLBACK,
;
}
/**
* Get whether the patch is applied or rolled back.
*
* @return the current mode
*/
Mode getCurrentMode();
/**
* Get the target location for a given content item.
*
* @param item the content item
* @return the target location
*/
File getTargetFile(ContentItem item);
/**
* Get the backup location for a misc file.
*
* @param item the misc content item
* @return the backup file location
*/
File getBackupFile(MiscContentItem item);
/**
* Check the content verification policy whether a given
* content item can be excluded or not.
*
* @param contentItem the content item
* @return whether the content can be excluded or not
*/
boolean isExcluded(ContentItem contentItem);
/**
* Record a change to be included in the patch history.
*
* @param change the modification
* @param rollbackAction the rollback action
*/
void recordChange(ContentModification change, ContentModification rollbackAction);
/**
* Add a root for invalidation.
*
* @param root the invalidation root
*/
void invalidateRoot(final File root) throws IOException;
/**
* Get the current bundle path.
*
* @return the bundle path
*/
File[] getTargetBundlePath();
/**
* Get the current module path.
*
* @return the module path
*/
File[] getTargetModulePath();
}