ILIAS  release_4-3 Revision
 All Data Structures Namespaces Files Functions Variables Groups Pages
Text_MappedDiff Class Reference
+ Inheritance diagram for Text_MappedDiff:
+ Collaboration diagram for Text_MappedDiff:

Public Member Functions

 Text_MappedDiff ($from_lines, $to_lines, $mapped_from_lines, $mapped_to_lines)
 Computes a diff between sequences of strings.
- Public Member Functions inherited from Text_Diff
 Text_Diff ($from_lines, $to_lines)
 Computes diffs between sequences of strings.
 getDiff ()
 Returns the array of differences.
 reverse ()
 Computes a reversed diff.
 isEmpty ()
 Checks for an empty diff.
 lcs ()
 Computes the length of the Longest Common Subsequence (LCS).
 getOriginal ()
 Gets the original set of lines.
 getFinal ()
 Gets the final set of lines.
 _trimNewlines (&$line, $key)
 Removes trailing newlines from a line of text.
 _check ($from_lines, $to_lines)
 Checks a diff for validity.

Additional Inherited Members

- Data Fields inherited from Text_Diff
 $_edits

Detailed Description

Definition at line 201 of file Diff.php.

Member Function Documentation

Text_MappedDiff::Text_MappedDiff (   $from_lines,
  $to_lines,
  $mapped_from_lines,
  $mapped_to_lines 
)

Computes a diff between sequences of strings.

This can be used to compute things like case-insensitve diffs, or diffs which ignore changes in white-space.

Parameters
array$from_linesAn array of strings.
array$to_linesAn array of strings.
array$mapped_from_linesThis array should have the same size number of elements as $from_lines. The elements in $mapped_from_lines and $mapped_to_lines are what is actually compared when computing the diff.
array$mapped_to_linesThis array should have the same number of elements as $to_lines.

Definition at line 219 of file Diff.php.

References Text_Diff\Text_Diff().

{
assert(count($from_lines) == count($mapped_from_lines));
assert(count($to_lines) == count($mapped_to_lines));
parent::Text_Diff($mapped_from_lines, $mapped_to_lines);
$xi = $yi = 0;
for ($i = 0; $i < count($this->_edits); $i++) {
$orig = &$this->_edits[$i]->orig;
if (is_array($orig)) {
$orig = array_slice($from_lines, $xi, count($orig));
$xi += count($orig);
}
$final = &$this->_edits[$i]->final;
if (is_array($final)) {
$final = array_slice($to_lines, $yi, count($final));
$yi += count($final);
}
}
}

+ Here is the call graph for this function:


The documentation for this class was generated from the following file: