Class Position

  • Direct Known Subclasses:
    Fragment, LinkedPosition, Segment, TypedPosition

    public class Position
    extends Object
    Positions describe text ranges of a document. Positions are adapted to changes applied to that document. The text range is specified by an offset and a length. Positions can be marked as deleted. Deleted positions are considered to no longer represent a valid text range in the managing document.

    Positions attached to documents are usually updated by position updaters. Because position updaters are freely definable and because of the frequency in which they are used, the fields of a position are made publicly accessible. Clients other than position updaters are not allowed to access these public fields.

    Positions cannot be used as keys in hash tables as they override equals and hashCode as they would be value objects.

    See Also:
    IDocument
    • Field Summary

      Fields 
      Modifier and Type Field Description
      boolean isDeleted
      Indicates whether the position has been deleted
      int length
      The length of the position
      int offset
      The offset of the position
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected Position()
      Creates a new, not initialized position.
        Position​(int offset)
      Creates a new position with the given offset and length 0.
        Position​(int offset, int length)
      Creates a new position with the given offset and length.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void delete()
      Marks this position as deleted.
      boolean equals​(Object other)  
      int getLength()
      Returns the length of this position.
      int getOffset()
      Returns the offset of this position.
      int hashCode()  
      boolean includes​(int index)
      Checks whether the given index is inside of this position's text range.
      boolean isDeleted()
      Returns whether this position has been deleted or not.
      boolean overlapsWith​(int rangeOffset, int rangeLength)
      Checks whether the intersection of the given text range and the text range represented by this position is empty or not.
      void setLength​(int length)
      Changes the length of this position to the given length.
      void setOffset​(int offset)
      Changes the offset of this position to the given offset.
      String toString()  
      void undelete()
      Marks this position as not deleted.
    • Field Detail

      • offset

        public int offset
        The offset of the position
      • length

        public int length
        The length of the position
      • isDeleted

        public boolean isDeleted
        Indicates whether the position has been deleted
    • Constructor Detail

      • Position

        public Position​(int offset)
        Creates a new position with the given offset and length 0.
        Parameters:
        offset - the position offset, must be >= 0
      • Position

        public Position​(int offset,
                        int length)
        Creates a new position with the given offset and length.
        Parameters:
        offset - the position offset, must be >= 0
        length - the position length, must be >= 0
      • Position

        protected Position()
        Creates a new, not initialized position.
    • Method Detail

      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • delete

        public void delete()
        Marks this position as deleted.
      • undelete

        public void undelete()
        Marks this position as not deleted.
        Since:
        2.0
      • getLength

        public int getLength()
        Returns the length of this position.
        Returns:
        the length of this position
      • getOffset

        public int getOffset()
        Returns the offset of this position.
        Returns:
        the offset of this position
      • includes

        public boolean includes​(int index)
        Checks whether the given index is inside of this position's text range.
        Parameters:
        index - the index to check
        Returns:
        true if index is inside of this position
      • overlapsWith

        public boolean overlapsWith​(int rangeOffset,
                                    int rangeLength)
        Checks whether the intersection of the given text range and the text range represented by this position is empty or not.
        Parameters:
        rangeOffset - the offset of the range to check
        rangeLength - the length of the range to check
        Returns:
        true if intersection is not empty
      • isDeleted

        public boolean isDeleted()
        Returns whether this position has been deleted or not.
        Returns:
        true if position has been deleted
      • setLength

        public void setLength​(int length)
        Changes the length of this position to the given length.
        Parameters:
        length - the new length of this position
      • setOffset

        public void setOffset​(int offset)
        Changes the offset of this position to the given offset.
        Parameters:
        offset - the new offset of this position