blob: 08890ae4e11cbffb1ac1c00c087be1d4eabf8c97 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2001, 2005 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
* Jens Lukowski/Innoopract - initial renaming/restructuring
*
*******************************************************************************/
package org.eclipse.wst.sse.core.internal.provisional.text;
/**
* ITextRegionCollection, as its name implies, is a collection of
* ITextRegions.
*
* @plannedfor 1.0
*/
public interface ITextRegionCollection extends ITextRegion {
/**
* Used to determine if a region contains a particular offset, where
* offset is relative to the beginning of a document.
*
* @param offset
* @return true if offset is greater than or equal to regions start and
* less than its end offset.
*/
boolean containsOffset(int offset);
/**
* Used to determine if a region contains a particular offset.
*
* ISSUE: I need to figure out what this is really for! (that is, how to
* describe it, or if still needed).
*
* @param offset
* @return true if offset is greater than or equal to regions start and
* less than its end offset.
*/
boolean containsOffset(ITextRegion region, int offset);
/**
* Returns the end offset of this region, relative to beginning of
* document.
*
* For some subtypes, but not all, it is equivilent to getEnd().
*
* @return the end offset of this region.
*/
int getEndOffset();
/**
* Returns the end offset, relative to the beginning of the document of
* the contained region.
*
* @param containedRegion
* @return the end offset of the contained region.
*/
int getEndOffset(ITextRegion containedRegion);
/**
* Returns the first region of those contained by this region collection.
*
* @return the first region.
*/
ITextRegion getFirstRegion();
/**
* Returns the full text of this region, including whitespace.
*
* @return the full text of this region, including whitespace.
*/
String getFullText();
/**
* Returns the full text of the contained region, including whitespace.
*
* @return the full text of the contained region, including whitespace.
*/
String getFullText(ITextRegion containedRegion);
/**
* Returns the last region of those contained by this region collection.
*
* @return the last region.
*/
ITextRegion getLastRegion();
/**
* Returns the number of regions contained by this region.
*
* @return the number of regions contained by this region.
*/
int getNumberOfRegions();
/**
* Returns the region that contains offset. In the case of "nested"
* regions, returns the top most region.
*
* @param offset
* relative to beginning of document.
* @return the region that contains offset. In the case of "nested"
* regions, returns the top most region.
*/
ITextRegion getRegionAtCharacterOffset(int offset);
/**
* Returns the regions contained by this region.
*
* Note: no assumptions should be made about the object identity of the
* regions returned. Put another way, due to memory use optimizations,
* even if the underlying text has not changed, the regions may or may not
* be the same ones returned from one call to the next.
*
* @return the regions contained by this region.
*/
ITextRegionList getRegions();
/**
* Returns the start offset of this region, relative to the beginning of
* the document.
*
* @return the start offset of this region
*/
int getStartOffset();
/**
* Returns the start offset of the contained region, relative to the
* beginning of the document.
*
* @return the start offset of the contained region
*/
int getStartOffset(ITextRegion containedRegion);
/**
* Returns the text of this region, not including white space.
*
* @return the text of this region, not including white space.
*/
String getText();
/**
* Returns the text of the contained region, not including white space.
*
* @return the text of the contained region, not including white space.
*/
String getText(ITextRegion containedRegion);
/**
* Returns the end offset of the text of this region, not including white
* space.
*
* @return the end offset of the text of this region, not including white
* space.
*/
int getTextEndOffset();
/**
* Returns the end offset of the text of the contained region, not
* including white space.
*
* @return the end offset of the text of the contained region, not
* including white space.
*/
int getTextEndOffset(ITextRegion containedRegion);
/**
* Assigns the collection contained in this region.
*
* For use by parsers and reparsers only.
*
* @param containedRegions
*/
void setRegions(ITextRegionList containedRegions);
}