org.eclipse.jface.text
Interface IDocumentExtension3
-
All Known Implementing Classes:
-
AbstractDocument,
ChildDocument,
Document,
ProjectionDocument
-
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
DEFAULT_PARTITIONING
static final
String DEFAULT_PARTITIONING
- The identifier of the default partitioning.
-
See Also:
-
Constant Field Values
getPartitionings
String[] getPartitionings()
- Returns the existing partitionings for this document. This includes
the default partitioning.
-
-
Returns:
- the existing partitionings for this document
getLegalContentTypes
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
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
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
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
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
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
Guidelines for using Eclipse APIs.
Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.