Package org.apache.wiki.diff

# Class ContextualDiffProvider

java.lang.Object
org.apache.wiki.diff.ContextualDiffProvider

All Implemented Interfaces:
  `WikiProvider`, `DiffProvider`

public class ContextualDiffProvider extends Object implements DiffProvider
A seriously better diff provider, which highlights changes word-by-word using CSS. Suggested by John Volkar.

## Nested Class Summary

## Nested classes/interfaces inherited from interface org.apache.wiki.diff.DiffProvider

`DiffProvider.NullDiffProvider`

## Field Summary

Fields
Modifier and Type
Field
Description
`static String`
`ALTERNATING_SPACE_HTML`
`static String`
`CHANGE_END_HTML`
`static String`
`CHANGE_START_HTML`
`static String`
`DELETION_END_HTML`
`static String`
`DELETION_START_HTML`
`static String`
`DIFF_END`
`static String`
`DIFF_START`
`static String`
`ELIDED_HEAD_INDICATOR_HTML`
`static String`
`ELIDED_TAIL_INDICATOR_HTML`
`static String`
`INSERTION_END_HTML`
`static String`
`INSERTION_START_HTML`
`static String`
`LINE_BREAK_HTML`
`boolean`
`m_emitChangeNextPreviousHyperlinks`
`static final String`
`PROP_UNCHANGED_CONTEXT_LIMIT`
A jspwiki.properties value to define how many characters are shown around the change context.

### Fields inherited from interface org.apache.wiki.api.providers.WikiProvider

`LATEST_VERSION`

## Constructor Summary

Constructors
Constructor
Description
`ContextualDiffProvider()`
Constructs this provider.

## Method Summary

Modifier and Type
Method
Description
`String`
`getProviderInfo()`
`void`
`initialize(Engine engine, Properties properties)`
`String`
`makeDiffHtml(Context ctx, String wikiOld, String wikiNew)`
Do a colored diff of the two regions.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### PROP_UNCHANGED_CONTEXT_LIMIT

public static final String PROP_UNCHANGED_CONTEXT_LIMIT
A jspwiki.properties value to define how many characters are shown around the change context. The current value is `"jspwiki.contextualDiffProvider.unchangedContextLimit"`.

See Also:
  - Constant Field Values

### m_emitChangeNextPreviousHyperlinks

public boolean m_emitChangeNextPreviousHyperlinks

### CHANGE_START_HTML

public static String CHANGE_START_HTML

### CHANGE_END_HTML

public static String CHANGE_END_HTML

### DIFF_START

public static String DIFF_START

### DIFF_END

public static String DIFF_END

### INSERTION_START_HTML

public static String INSERTION_START_HTML

### INSERTION_END_HTML

public static String INSERTION_END_HTML

### DELETION_START_HTML

public static String DELETION_START_HTML

### DELETION_END_HTML

public static String DELETION_END_HTML

### ELIDED_HEAD_INDICATOR_HTML

public static String ELIDED_HEAD_INDICATOR_HTML

### ELIDED_TAIL_INDICATOR_HTML

public static String ELIDED_TAIL_INDICATOR_HTML

### LINE_BREAK_HTML

public static String LINE_BREAK_HTML

### ALTERNATING_SPACE_HTML

public static String ALTERNATING_SPACE_HTML

## Constructor Details

### ContextualDiffProvider

public ContextualDiffProvider()
Constructs this provider.

## Method Details

### getProviderInfo

public String getProviderInfo()

Specified by:
  `getProviderInfo` in interface `WikiProvider`
See Also:
  - `WikiProvider.getProviderInfo()`

### initialize

public void initialize(Engine engine, Properties properties) throws NoRequiredPropertyException, IOException

Specified by:
  `initialize` in interface `WikiProvider`
Throws:
  `NoRequiredPropertyException`
  `IOException`
See Also:
  - `WikiProvider.initialize(org.apache.wiki.api.core.Engine, java.util.Properties)`

### makeDiffHtml

public String makeDiffHtml(Context ctx, String wikiOld, String wikiNew)
Do a colored diff of the two regions. This. is. serious. fun. ;-)

Specified by:
  `makeDiffHtml` in interface `DiffProvider`
Parameters:
  `ctx` - The Wiki Context
  `wikiOld` - the old text
  `wikiNew` - the new text
Returns:
  An XHTML diff.
See Also:
  - `DiffProvider.makeDiffHtml(Context, String, String)`