Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.eclipse.jface.text
Interface IDocumentExtension3

All Known Implementing Classes:
  AbstractDocument

public interface IDocumentExtension3

Extension interface for `IDocument`.

Adds the concept of multiple partitionings and the concept of zero-length partitions in conjunction with open and delimited partitions. A delimited partition has a well defined start delimiter and a well defined end delimiter. Between two delimited partitions there may be an open partition of length zero.

In order to fulfill the contract of this interface, the document must be configured with a document partitioner implementing `IDocumentPartitionerExtension2`.

Since:
  3.0
See Also:
  `IDocumentPartitionerExtension2`

Field Summary
`static String` | `DEFAULT_PARTITIONING` The identifier of the default partitioning.

Method Summary
`ITypedRegion[]` | `computePartitioning(String partitioning, int offset, int length, boolean includeZeroLengthPartitions)` Computes the partitioning of the given document range based on the given partitioning type.
`String` | `getContentType(String partitioning, int offset, boolean preferOpenPartitions)` Returns the type of the document partition containing the given offset for the given partitioning.
`IDocumentPartitioner` | `getDocumentPartitioner(String partitioning)` Returns the partitioner for the given partitioning or `null` if no partitioner is registered.
`String[]` | `getLegalContentTypes(String partitioning)` Returns the set of legal content types of document partitions for the given partitioning This set can be empty.
`ITypedRegion` | `getPartition(String partitioning, int offset, boolean preferOpenPartitions)` Returns the document partition of the given partitioning in which the given offset is located.
`String[]` | `getPartitionings()` Returns the existing partitionings for this document.
`void` | `setDocumentPartitioner(String partitioning, IDocumentPartitioner partitioner)` Sets this document's partitioner.

Field Detail

### DEFAULT_PARTITIONING

    public static final String DEFAULT_PARTITIONING

  The identifier of the default partitioning.

  See Also:
    Constant Field Values

Method Detail

### getPartitionings

    public String[] getPartitionings()

  Returns the existing partitionings for this document. This includes the default partitioning.

  Returns:
    the existing partitionings for this document

### getLegalContentTypes

    public String[] getLegalContentTypes(String partitioning)
                                  throws BadPartitioningException

  Returns the set of legal content types of document partitions for the given partitioning This set can be empty. The set can contain more content types than contained by the result of `getPartitioning(partitioning, 0, getLength())`.

  Parameters:
    `partitioning` - the partitioning for which to return the legal content types
  Returns:
    the set of legal content types
  Throws:
    `BadPartitioningException` - if partitioning is invalid for this document

### getContentType

    public String getContentType(String partitioning,
                                 int offset,
                                 boolean preferOpenPartitions)
                          throws BadLocationException,
                                 BadPartitioningException

  Returns the type of the document partition containing the given offset for the given partitioning. This is a convenience method for `getPartition(partitioning, offset, boolean).getType()`.

  If `preferOpenPartitions` is `true`, precedence is given to an open partition ending at `offset` over a delimited partition starting at `offset`. If it is `false`, precedence is given to the partition that does not end at `offset`.

  This is only supported if the connected `IDocumentPartitioner` supports it, i.e. implements `IDocumentPartitionerExtension2`. Otherwise, `preferOpenPartitions` is ignored.

  Parameters:
    `partitioning` - the partitioning
    `offset` - the document offset
    `preferOpenPartitions` - `true` if precedence should be given to a open partition ending at `offset` over a closed partition starting at `offset`
  Returns:
    the partition type
  Throws:
    `BadLocationException` - if offset is invalid in this document
    `BadPartitioningException` - if partitioning is invalid for this document

### getPartition

    public ITypedRegion getPartition(String partitioning,
                                     int offset,
                                     boolean preferOpenPartitions)
                              throws BadLocationException,
                                     BadPartitioningException

  Returns the document partition of the given partitioning in which the given offset is located.

  If `preferOpenPartitions` is `true`, precedence is given to an open partition ending at `offset` over a delimited partition starting at `offset`. If it is `false`, precedence is given to the partition that does not end at `offset`.

  This is only supported if the connected `IDocumentPartitioner` supports it, i.e. implements `IDocumentPartitionerExtension2`. Otherwise, `preferOpenPartitions` is ignored.

  Parameters:
    `partitioning` - the partitioning
    `offset` - the document offset
    `preferOpenPartitions` - `true` if precedence should be given to a open partition ending at `offset` over a closed partition starting at `offset`
  Returns:
    a specification of the partition
  Throws:
    `BadLocationException` - if offset is invalid in this document
    `BadPartitioningException` - if partitioning is invalid for this document

### computePartitioning

    public ITypedRegion[] computePartitioning(String partitioning,
                                              int offset,
                                              int length,
                                              boolean includeZeroLengthPartitions)
                                       throws BadLocationException,
                                              BadPartitioningException

  Computes the partitioning of the given document range based on the given partitioning type.

  If `includeZeroLengthPartitions` is `true`, a zero-length partition of an open partition type (usually the default partition) is included between two closed partitions. If it is `false`, no zero-length partitions are included.

  This is only supported if the connected `IDocumentPartitioner` supports it, i.e. implements `IDocumentPartitionerExtension2`. Otherwise, `includeZeroLengthPartitions` is ignored.

  Parameters:
    `partitioning` - the document's partitioning type
    `offset` - the document offset at which the range starts
    `length` - the length of the document range
    `includeZeroLengthPartitions` - `true` if zero-length partitions should be returned as part of the computed partitioning
  Returns:
    a specification of the range's partitioning
  Throws:
    `BadLocationException` - if the range is invalid in this document$
    `BadPartitioningException` - if partitioning is invalid for this document

### setDocumentPartitioner

    public void setDocumentPartitioner(String partitioning,
                                       IDocumentPartitioner partitioner)

  Sets this document's partitioner. The caller of this method is responsible for disconnecting the document's old partitioner from the document and to connect the new partitioner to the document. Informs all document partitioning listeners about this change.

  Parameters:
    `partitioning` - the partitioning for which to set the partitioner
    `partitioner` - the document's new partitioner
  See Also:
    `IDocumentPartitioningListener`

### getDocumentPartitioner

    public IDocumentPartitioner getDocumentPartitioner(String partitioning)

  Returns the partitioner for the given partitioning or `null` if no partitioner is registered.

  Parameters:
    `partitioning` - the partitioning for which to set the partitioner
  Returns:
    the partitioner for the given partitioning

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.