public interface IDocumentExtension3
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
.
IDocumentPartitionerExtension2
Modifier and Type | Field and Description |
---|---|
static String |
DEFAULT_PARTITIONING
The identifier of the default partitioning.
|
Modifier and Type | Method and Description |
---|---|
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.
|
static final String DEFAULT_PARTITIONING
String[] getPartitionings()
String[] getLegalContentTypes(String partitioning) throws BadPartitioningException
getPartitioning(partitioning, 0, getLength())
.partitioning
- the partitioning for which to return the legal content typesBadPartitioningException
- if partitioning is invalid for this documentString getContentType(String partitioning, int offset, boolean preferOpenPartitions) throws BadLocationException, BadPartitioningException
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
.
IDocumentPartitioner
supports it, i.e. implements IDocumentPartitionerExtension2
.
Otherwise, preferOpenPartitions
is ignored.
partitioning
- the partitioningoffset
- the document offsetpreferOpenPartitions
- true
if precedence should be
given to a open partition ending at offset
over a
closed partition starting at offset
BadLocationException
- if offset is invalid in this documentBadPartitioningException
- if partitioning is invalid for this documentITypedRegion getPartition(String partitioning, int offset, boolean preferOpenPartitions) throws BadLocationException, BadPartitioningException
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
.
IDocumentPartitioner
supports it, i.e. implements IDocumentPartitionerExtension2
.
Otherwise, preferOpenPartitions
is ignored.
partitioning
- the partitioningoffset
- the document offsetpreferOpenPartitions
- true
if precedence should be
given to a open partition ending at offset
over a
closed partition starting at offset
BadLocationException
- if offset is invalid in this documentBadPartitioningException
- if partitioning is invalid for this documentITypedRegion[] computePartitioning(String partitioning, int offset, int length, boolean includeZeroLengthPartitions) throws BadLocationException, BadPartitioningException
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.
IDocumentPartitioner
supports it, i.e. implements IDocumentPartitionerExtension2
.
Otherwise, includeZeroLengthPartitions
is ignored.
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 partitioningBadLocationException
- if the range is invalid in this document$BadPartitioningException
- if partitioning is invalid for this documentvoid setDocumentPartitioner(String partitioning, IDocumentPartitioner partitioner)
partitioning
- the partitioning for which to set the partitionerpartitioner
- the document's new partitionerIDocumentPartitioningListener
IDocumentPartitioner getDocumentPartitioner(String partitioning)
null
if
no partitioner is registered.partitioning
- the partitioning for which to set the partitioner
Copyright (c) 2000, 2014 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.