Package org.eclipse.jface.text.projection

## 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
`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

All Methods Instance Methods Concrete Methods
`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 java.lang.Object

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

### Constructor Detail

#### 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 Detail

#### 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