/******************************************************************************* * Copyright (c) 2006 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM - Initial API and implementation *******************************************************************************/ package org.eclipse.update.internal.jarprocessor; import java.io.File; import java.util.List; import java.util.Properties; /** * @author aniefer@ca.ibm.com * */ public interface IProcessStep { /** * The effect of this processing step if the JarProcessor was to recurse on this entry. * Return null if this step will not do anything with this entry. * Return the new entryName if this step will modify this entry on recursion. * @param entryName * @return */ public String recursionEffect(String entryName); /** * Perform some processing on the input file before the JarProcessor considers the entries for recursion. * return the file containing the result of the processing * @param input * @param workingDirectory * @param containers: inf properties for containing jars, innermost jar is first on the list * @return */ public File preProcess(File input, File workingDirectory, List containers); /** * Perform some processing on the input file after the JarProcessor returns from recursion * return the file containing the result of the processing * @param input * @param workingDirectory * @param containers: inf properties for containing jars, innermost jar is first on the list * @return */ public File postProcess(File input, File workingDirectory, List containers); /** * Return the name of this process step * @return */ public String getStepName(); /** * Adjust any properties in the eclipse.inf as appropriate for this step * @param input * @param inf * @param containers: inf properties for containing jars, innermost jar is first on the list */ public void adjustInf(File input, Properties inf, List containers); }