Interface IDocumentExtension3
- All Known Implementing Classes:
AbstractDocument
,ChildDocument
,Document
,ProjectionDocument
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:
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptioncomputePartitioning
(String partitioning, int offset, int length, boolean includeZeroLengthPartitions) Computes the partitioning of the given document range based on the given partitioning type.getContentType
(String partitioning, int offset, boolean preferOpenPartitions) Returns the type of the document partition containing the given offset for the given partitioning.getDocumentPartitioner
(String partitioning) Returns the partitioner for the given partitioning ornull
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.getPartition
(String partitioning, int offset, boolean preferOpenPartitions) Returns the document partition of the given partitioning in which the given offset is located.String[]
Returns the existing partitionings for this document.void
setDocumentPartitioner
(String partitioning, IDocumentPartitioner partitioner) Sets this document's partitioner.
-
Field Details
-
DEFAULT_PARTITIONING
The identifier of the default partitioning.- See Also:
-
-
Method Details
-
getPartitionings
String[] getPartitionings()Returns the existing partitionings for this document. This includes the default partitioning.- Returns:
- the existing partitionings for this document
-
getLegalContentTypes
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 ofgetPartitioning(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
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 forgetPartition(partitioning, offset, boolean).getType()
.If
preferOpenPartitions
istrue
, precedence is given to an open partition ending atoffset
over a delimited partition starting atoffset
. If it isfalse
, precedence is given to the partition that does not end atoffset
.This is only supported if the connected
IDocumentPartitioner
supports it, i.e. implementsIDocumentPartitionerExtension2
. Otherwise,preferOpenPartitions
is ignored.- Parameters:
partitioning
- the partitioningoffset
- the document offsetpreferOpenPartitions
-true
if precedence should be given to a open partition ending atoffset
over a closed partition starting atoffset
- Returns:
- the partition type
- Throws:
BadLocationException
- if offset is invalid in this documentBadPartitioningException
- if partitioning is invalid for this document
-
getPartition
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
istrue
, precedence is given to an open partition ending atoffset
over a delimited partition starting atoffset
. If it isfalse
, precedence is given to the partition that does not end atoffset
.This is only supported if the connected
IDocumentPartitioner
supports it, i.e. implementsIDocumentPartitionerExtension2
. Otherwise,preferOpenPartitions
is ignored.- Parameters:
partitioning
- the partitioningoffset
- the document offsetpreferOpenPartitions
-true
if precedence should be given to a open partition ending atoffset
over a closed partition starting atoffset
- Returns:
- a specification of the partition
- Throws:
BadLocationException
- if offset is invalid in this documentBadPartitioningException
- if partitioning is invalid for this document
-
computePartitioning
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
istrue
, a zero-length partition of an open partition type (usually the default partition) is included between two closed partitions. If it isfalse
, no zero-length partitions are included.This is only supported if the connected
IDocumentPartitioner
supports it, i.e. implementsIDocumentPartitionerExtension2
. Otherwise,includeZeroLengthPartitions
is ignored.- Parameters:
partitioning
- the document's partitioning typeoffset
- the document offset at which the range startslength
- the length of the document rangeincludeZeroLengthPartitions
-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
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 partitionerpartitioner
- the document's new partitioner- See Also:
-
getDocumentPartitioner
Returns the partitioner for the given partitioning ornull
if no partitioner is registered.- Parameters:
partitioning
- the partitioning for which to set the partitioner- Returns:
- the partitioner for the given partitioning
-