Eclipse Platform
Release 3.6

org.eclipse.compare.patch
Class PatchBuilder

java.lang.Object
  extended by org.eclipse.compare.patch.PatchBuilder

public class PatchBuilder
extends Object

Builder for creating IFilePatch2 and IHunk objects as well as building relationship between them.

Since:
org.eclipse.compare.core 3.5
Restriction:
This class is not intended to be subclassed by clients.
Restriction:
This class is not intended to be instantiated by clients.

Field Summary
static char ADDITION_PREFIX
          Line prefix used to mark an added lines.
static char CONTEXT_PREFIX
          Line prefix used to mark context lines.
static char REMOVAL_PREFIX
          Line prefix used to mark an removed lines.
 
Constructor Summary
PatchBuilder()
           
 
Method Summary
static IFilePatch2 addHunks(IFilePatch2 filePatch, IHunk[] toAdd)
          Adds IHunks to a given IFilePatch2 and performs recalculation of all hunks' after positions.
static IFilePatch2 createFilePatch(IPath oldPath, long oldDate, IPath newPath, long newDate, IHunk[] hunks)
          Creates an IFilePatch2 instance and performs recalculation of all hunks' after positions.
static IHunk createHunk(int start, String[] lines)
          Creates an IHunk instance.
static IFilePatch2 removeHunks(IFilePatch2 filePatch, IHunk[] toRemove)
          Removes IHunks from a given IFilePatch2 and performs recalculation of all hunks' after positions.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CONTEXT_PREFIX

public static final char CONTEXT_PREFIX
Line prefix used to mark context lines.

See Also:
Constant Field Values

ADDITION_PREFIX

public static final char ADDITION_PREFIX
Line prefix used to mark an added lines.

See Also:
Constant Field Values

REMOVAL_PREFIX

public static final char REMOVAL_PREFIX
Line prefix used to mark an removed lines.

See Also:
Constant Field Values
Constructor Detail

PatchBuilder

public PatchBuilder()
Method Detail

createHunk

public static IHunk createHunk(int start,
                               String[] lines)
Creates an IHunk instance.

Parameters:
start - the start position in the before file
lines - content of the hunk. Each line starts with a control character. Their meaning is as follows:
  • '+': add the line
  • '-': delete the line
  • ' ': no change, context line
Returns:
IHunk instance

createFilePatch

public static IFilePatch2 createFilePatch(IPath oldPath,
                                          long oldDate,
                                          IPath newPath,
                                          long newDate,
                                          IHunk[] hunks)
Creates an IFilePatch2 instance and performs recalculation of all hunks' after positions. Hunk's after position is position in the file state after applying a patch. It is affected by all the hunks that are to be applied before a given one. This recalculation is necessary to keep IFilePatch2's state coherent.

Parameters:
oldPath - the path of the before state of the file
oldDate - the timestamp of the before state of the file, see also IFilePatch2.DATE_UNKNOWN
newPath - the path of the after state of the file
newDate - the timestamp of the after state of the file, see also IFilePatch2.DATE_UNKNOWN
hunks - a set of hunks to insert into IFilePatch2
Returns:
IFilePatch2 instance

addHunks

public static IFilePatch2 addHunks(IFilePatch2 filePatch,
                                   IHunk[] toAdd)
Adds IHunks to a given IFilePatch2 and performs recalculation of all hunks' after positions. Hunk's after position is position in the file state after applying a patch. It is affected by all the hunks that are to be applied before a given one. This recalculation is necessary to keep IFilePatch2's state coherent.

Parameters:
filePatch - a file patch to add hunks to
toAdd - a set of IHunks to add
Returns:
newly created file patch with added hunks

removeHunks

public static IFilePatch2 removeHunks(IFilePatch2 filePatch,
                                      IHunk[] toRemove)
Removes IHunks from a given IFilePatch2 and performs recalculation of all hunks' after positions. Hunk's after position is position in the file state after applying a patch. It is affected by all the hunks that are to be applied before a given one. This recalculation is necessary to keep IFilePatch2's state coherent.

Parameters:
filePatch - a file patch to add hunks to
toRemove - a set of IHunks to add
Returns:
newly created file patch with removed hunks

Eclipse Platform
Release 3.6

Guidelines for using Eclipse APIs.

Copyright (c) Eclipse contributors and others 2000, 2010. All rights reserved.