blob: 8a335e73e65a2bbf0625e2063becab14ca101058 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007, 2011 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 Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.compare.patch;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* A patch configuration allows clients to set parameters that control how a
* patch is applied.
*
* @see IFilePatch2
* @since 3.3
* @noextend This class may be instantiated by clients but is not intended to be
* subclassed.
*/
public class PatchConfiguration {
private int fStripPrefixSegments;
private int fFuzz;
private boolean fIgnoreWhitespace= false;
private boolean fReverse= false;
private HashMap properties = new HashMap();
private List hunkFilters = new ArrayList();
/**
* Return whether the patch should be reversed when applied.
* @return whether the patch should be reversed when applied
*/
public boolean isReversed() {
return this.fReverse;
}
/**
* Set whether the patch should be reversed when applied.
* @param reversed whether the patch should be reversed when applied
*/
public void setReversed(boolean reversed) {
this.fReverse = reversed;
}
/**
* Return the number of prefix segments to be stripped when attempting
* to apply a patch.
* @return the number of prefix segments to be stripped when attempting
* to apply a patch
*/
public int getPrefixSegmentStripCount() {
return this.fStripPrefixSegments;
}
/**
* Set the number of prefix segments to be stripped when attempting
* to apply a patch.
* @param stripCount the number of prefix segments to be stripped when attempting
* to apply a patch.
*/
public void setPrefixSegmentStripCount(int stripCount) {
this.fStripPrefixSegments = stripCount;
}
/**
* Return the fuzz factor to be used when applying a patch.
* If the fuzz factor is set to -1, then the patcher is to make a best
* effort to apply the patch by adjusting the fuzz factor
* accordingly.
* @return the fuzz factor to be used when applying a patch.
*/
public int getFuzz() {
return this.fFuzz;
}
/**
* Set the fuzz factor to be used when applying a patch.
* @param fuzz the fuzz factor to be used when applying a patch.
*/
public void setFuzz(int fuzz) {
this.fFuzz = fuzz;
}
/**
* Return whether whitespace should be ignored.
* @return whether whitespace should be ignored
*/
public boolean isIgnoreWhitespace() {
return this.fIgnoreWhitespace;
}
/**
* Set whether whitespace should be ignored
* @param ignoreWhitespace whether whitespace should be ignored
*/
public void setIgnoreWhitespace(boolean ignoreWhitespace) {
this.fIgnoreWhitespace = ignoreWhitespace;
}
/**
* Return the property associated with the given key or
* <code>null</code> if there is no property for the key.
* @param key the key
* @return the property associated with the given key or
* <code>null</code>
*/
public Object getProperty(String key) {
return this.properties.get(key);
}
/**
* Set the property associated with the given key
* @param key the key
* @param value the value to be associated with the key
*/
public void setProperty(String key, Object value) {
this.properties.put(key, value);
}
/**
* Adds a hunk filter.
*
* @param filter the filter
* @since org.eclipse.compare.core 3.5
*/
public void addHunkFilter(IHunkFilter filter) {
this.hunkFilters.add(filter);
}
/**
* Removes a hunk filter.
*
* @param filter the filter
* @since org.eclipse.compare.core 3.5
*/
public void removeHunkFilter(IHunkFilter filter) {
this.hunkFilters.remove(filter);
}
/**
* Return an array of hunk filters that have been added to this
* configuration.
*
* @return an array of hunk filters that have been added to this configuration
* @since org.eclipse.compare.core 3.5
*/
public IHunkFilter[] getHunkFilters() {
return (IHunkFilter[]) this.hunkFilters.toArray(new IHunkFilter[this.hunkFilters
.size()]);
}
}