# Class ProjectionMapping

java.lang.Object
org.eclipse.jface.text.projection.ProjectionMapping

All Implemented Interfaces:
  `IDocumentInformationMapping, IDocumentInformationMappingExtension, IDocumentInformationMappingExtension2`

public class ProjectionMapping extends Object implements IDocumentInformationMapping, IDocumentInformationMappingExtension, IDocumentInformationMappingExtension2
Internal class. Do not use. Only public for testing purposes.

Implementation of `IDocumentInformationMapping` for the projection mapping between a master and a slave document.

Since:
  3.0
Restriction:
  This class is not intended to be subclassed by clients.
Restriction:
  This class is not intended to be instantiated by clients.

## Constructor Summary

Constructors
Constructor
Description
`ProjectionMapping(IDocument masterDocument, String fragmentsCategory, IDocument slaveDocument, String segmentsCategory)`
Creates a new mapping between the given parent document and the given projection document.

## Method Summary

Modifier and Type
Method
Description
`IRegion`
`getCoverage()`
Returns the minimal region of the original document that completely comprises all of the image document or `null` if there is no such region.
`IRegion[]`
`getExactCoverage(IRegion originRegion)`
Returns the maximal sub-regions of the given origin region which are completely covered.
`int`
`getImageLength()`
Returns the length of the image document.
`void`
`projectionChanged()`
Notifies this projection mapping that there was a projection change.
`int`
`toClosestImageLine(int originLine)`
Returns the line of the image document whose corresponding line in the original document is closest to the given line in the original document.
`IRegion`
`toClosestImageRegion(IRegion originRegion)`
Returns the minimal region of the image document that completely comprises the given region of the original document.
`IRegion`
`toExactImageRegion(IRegion originRegion)`
Adheres to `originRegion=toOriginRegion(toExactImageRegion(originRegion))`, if `toExactImageRegion(originRegion) !`
`IRegion[]`
`toExactImageRegions(IRegion originRegion)`
Returns the segments of the image document that exactly correspond to the given region of the original document.
`IRegion[]`
`toExactOriginRegions(IRegion imageRegion)`
Returns the fragments of the original document that exactly correspond to the given region of the image document.
`int`
`toImageLine(int originLine)`
Returns the line of the image document that corresponds to the given line of the original document or `-1` if there is no such line.
`int`
`toImageOffset(int originOffset)`
Returns the offset in the image document that corresponds to the given offset in the original document or `-1` if there is no such offset
`IRegion`
`toImageRegion(IRegion originRegion)`
Returns the minimal region of the image document that completely comprises the given region of the original document or `null` if there is no such region.
`int`
`toOriginLine(int imageLine)`
Returns the line of the original document that corresponds to the given line of the image document or `-1` if there is no such line.
`IRegion`
`toOriginLines(int imageLine)`
Returns the range of lines of the original document that corresponds to the given line of the image document or `null` if there are no such lines.
`int`
`toOriginOffset(int imageOffset)`
Returns the offset in the original document that corresponds to the given offset in the image document or `-1` if there is no such offset
`IRegion`
`toOriginRegion(IRegion imageRegion)`
Returns the minimal region of the original document that completely comprises the given region of the image document or `null` if there is no such region.

### Methods inherited from class Object

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

## Constructor Details

### ProjectionMapping

public ProjectionMapping(IDocument masterDocument, String fragmentsCategory, IDocument slaveDocument, String segmentsCategory)
Creates a new mapping between the given parent document and the given projection document.

Parameters:
  `masterDocument` - the master document
  `fragmentsCategory` - the position category of the parent document used to manage the projected regions
  `slaveDocument` - the slave document
  `segmentsCategory` - the position category of the projection document used to manage the fragments

## Method Details

### projectionChanged

public void projectionChanged()
Notifies this projection mapping that there was a projection change.

### getCoverage

public IRegion getCoverage()
Description copied from interface: `IDocumentInformationMapping`
Returns the minimal region of the original document that completely comprises all of the image document or `null` if there is no such region.

Specified by:
  `getCoverage` in interface `IDocumentInformationMapping`
Returns:
  the minimal region of the original document comprising the image document or `null`

### toOriginOffset

public int toOriginOffset(int imageOffset) throws BadLocationException
Description copied from interface: `IDocumentInformationMapping`
Returns the offset in the original document that corresponds to the given offset in the image document or `-1` if there is no such offset

Specified by:
  `toOriginOffset` in interface `IDocumentInformationMapping`
Parameters:
  `imageOffset` - the offset in the image document
Returns:
  the corresponding offset in the original document or `-1`
Throws:
  `BadLocationException` - if `imageOffset` is not a valid offset in the image document

### toOriginRegion

public IRegion toOriginRegion(IRegion imageRegion) throws BadLocationException
Description copied from interface: `IDocumentInformationMapping`
Returns the minimal region of the original document that completely comprises the given region of the image document or `null` if there is no such region.

Specified by:
  `toOriginRegion` in interface `IDocumentInformationMapping`
Parameters:
  `imageRegion` - the region of the image document
Returns:
  the minimal region of the original document comprising the given region of the image document or `null`
Throws:
  `BadLocationException` - if `imageRegion` is not a valid region of the image document

### toOriginLines

public IRegion toOriginLines(int imageLine) throws BadLocationException
Description copied from interface: `IDocumentInformationMapping`
Returns the range of lines of the original document that corresponds to the given line of the image document or `null` if there are no such lines.

Specified by:
  `toOriginLines` in interface `IDocumentInformationMapping`
Parameters:
  `imageLine` - the line of the image document
Returns:
  the corresponding lines of the original document or `null`
Throws:
  `BadLocationException` - if `imageLine` is not a valid line number in the image document

### toOriginLine

public int toOriginLine(int imageLine) throws BadLocationException
Description copied from interface: `IDocumentInformationMapping`
Returns the line of the original document that corresponds to the given line of the image document or `-1` if there is no such line.

Specified by:
  `toOriginLine` in interface `IDocumentInformationMapping`
Parameters:
  `imageLine` - the line of the image document
Returns:
  the corresponding line of the original document or `-1`
Throws:
  `BadLocationException` - if `imageLine` is not a valid line number in the image document

### toImageOffset

public int toImageOffset(int originOffset) throws BadLocationException
Description copied from interface: `IDocumentInformationMapping`
Returns the offset in the image document that corresponds to the given offset in the original document or `-1` if there is no such offset

Specified by:
  `toImageOffset` in interface `IDocumentInformationMapping`
Parameters:
  `originOffset` - the offset in the original document
Returns:
  the corresponding offset in the image document or `-1`
Throws:
  `BadLocationException` - if `originOffset` is not a valid offset in the original document

### toExactImageRegion

public IRegion toExactImageRegion(IRegion originRegion) throws BadLocationException
Description copied from interface: `IDocumentInformationMappingExtension`
Adheres to `originRegion=toOriginRegion(toExactImageRegion(originRegion))`, if `toExactImageRegion(originRegion) != null`. Returns `null` if there is no image for the given origin region.

Specified by:
  `toExactImageRegion` in interface `IDocumentInformationMappingExtension`
Parameters:
  `originRegion` - the origin region
Returns:
  the exact image region or `null`
Throws:
  `BadLocationException` - if origin region is not a valid region in the origin document

### toImageRegion

public IRegion toImageRegion(IRegion originRegion) throws BadLocationException
Description copied from interface: `IDocumentInformationMapping`
Returns the minimal region of the image document that completely comprises the given region of the original document or `null` if there is no such region.

Specified by:
  `toImageRegion` in interface `IDocumentInformationMapping`
Parameters:
  `originRegion` - the region of the original document
Returns:
  the minimal region of the image document comprising the given region of the original document or `null`
Throws:
  `BadLocationException` - if `originRegion` is not a valid region of the original document

### toClosestImageRegion

public IRegion toClosestImageRegion(IRegion originRegion) throws BadLocationException
Description copied from interface: `IDocumentInformationMappingExtension2`
Returns the minimal region of the image document that completely comprises the given region of the original document. The difference to `IDocumentInformationMapping.toImageRegion(IRegion)` is that this method will always return an image region for a valid origin region. If `originRegion` has no corresponding image region, the zero-length region at the offset between its surrounding fragments is returned.

Specified by:
  `toClosestImageRegion` in interface `IDocumentInformationMappingExtension2`
Parameters:
  `originRegion` - the region of the original document
Returns:
  the minimal region of the image document comprising the given region of the original document
Throws:
  `BadLocationException` - if `originRegion` is not a valid region of the original document

### toImageLine

public int toImageLine(int originLine) throws BadLocationException
Description copied from interface: `IDocumentInformationMapping`
Returns the line of the image document that corresponds to the given line of the original document or `-1` if there is no such line.

Specified by:
  `toImageLine` in interface `IDocumentInformationMapping`
Parameters:
  `originLine` - the line of the original document
Returns:
  the corresponding line of the image document or `-1`
Throws:
  `BadLocationException` - if `originLine` is not a valid line number in the original document

### toClosestImageLine

public int toClosestImageLine(int originLine) throws BadLocationException
Description copied from interface: `IDocumentInformationMapping`
Returns the line of the image document whose corresponding line in the original document is closest to the given line in the original document.

Specified by:
  `toClosestImageLine` in interface `IDocumentInformationMapping`
Parameters:
  `originLine` - the line in the original document
Returns:
  the line in the image document that corresponds best to the given line in the original document
Throws:
  `BadLocationException` - if `originLine`is not a valid line in the original document

### toExactOriginRegions

public IRegion[] toExactOriginRegions(IRegion imageRegion) throws BadLocationException
Description copied from interface: `IDocumentInformationMappingExtension`
Returns the fragments of the original document that exactly correspond to the given region of the image document.

Specified by:
  `toExactOriginRegions` in interface `IDocumentInformationMappingExtension`
Parameters:
  `imageRegion` - the region in the image document
Returns:
  the fragments in the origin document
Throws:
  `BadLocationException` - in case the given image region is not valid in the image document

### getImageLength

public int getImageLength()
Description copied from interface: `IDocumentInformationMappingExtension`
Returns the length of the image document.

Specified by:
  `getImageLength` in interface `IDocumentInformationMappingExtension`
Returns:
  the length of the image document

### toExactImageRegions

public IRegion[] toExactImageRegions(IRegion originRegion) throws BadLocationException
Description copied from interface: `IDocumentInformationMappingExtension`
Returns the segments of the image document that exactly correspond to the given region of the original document. Returns `null` if there are no such image regions.

Specified by:
  `toExactImageRegions` in interface `IDocumentInformationMappingExtension`
Parameters:
  `originRegion` - the region in the origin document
Returns:
  the segments in the image document or `null`
Throws:
  `BadLocationException` - in case the given origin region is not valid in the original document

### getExactCoverage

public IRegion[] getExactCoverage(IRegion originRegion) throws BadLocationException
Description copied from interface: `IDocumentInformationMappingExtension`
Returns the maximal sub-regions of the given origin region which are completely covered. I.e. each offset in a sub-region has a corresponding image offset. Returns `null` if there are no such sub-regions.

Specified by:
  `getExactCoverage` in interface `IDocumentInformationMappingExtension`
Parameters:
  `originRegion` - the region in the origin document
Returns:
  the sub-regions with complete coverage or `null`
Throws:
  `BadLocationException` - in case the given origin region is not valid in the original document