blob: c0e46d6081eaea412e23809f5b63c12447bdfc80 [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;
import java.util.Iterator;
/**
* ITextRegionList is to provide a list of regions. It can be used so clients
* do not need to be aware of underlying implementation.
*/
public interface ITextRegionList {
/**
* Adds region to the list.
*
* For use by parsers and reparsers only, while list is being created.
*
* @param region
* @return
*/
public boolean add(ITextRegion region);
/**
* Adds new regions to the list.
*
* For use by parsers and reparsers only, while list is being created.
*
* @param insertPos
* @param newRegions
* @return
*/
public boolean addAll(int insertPos, ITextRegionList newRegions);
/**
* Removes all regions from the list.
*
* For use by parsers and reparsers only, while list is being created.
*
*/
public void clear();
/**
* Returns the region at <code>index</code>, where 0 is first one in
* the list. Throws an <code>ArrayIndexOutOfBoundsException</code> if
* list is empty, or if index is out of range.
*
* @param index
* @return
*/
public ITextRegion get(int index);
/**
* Returns the index of <code>region</code> or -1 if <code>region</code>
* is not in the list.
*
* @param region
* @return
*/
public int indexOf(ITextRegion region);
/**
* Returns true if list has no regions.
*
* @return true if list has no regions.
*/
public boolean isEmpty();
/**
* Returns an iterator for this list.
*
* @return an iterator for this list.
*/
public Iterator iterator();
/**
* Removes the region at index.
*
* For use by parsers and reparsers only, while list is being created.
*
*/
public ITextRegion remove(int index);
/**
* Removes the region.
*
* For use by parsers and reparsers only, while list is being created.
*
*/
public void remove(ITextRegion region);
/**
* Removes all regionList from this list.
*
* For use by parsers and reparsers only, while list is being created.
*
*/
public void removeAll(ITextRegionList regionList);
/**
* Returns the size of the list.
*
* @return the size of the list.
*/
public int size();
/**
* Creates and returns the regions in an array. No assumptions should be
* made if the regions in the array are clones are same instance of
* original region.
*
* ISSUE: do we need to specify if cloned copies or not?
*
* @return an array of regions.
*/
public ITextRegion[] toArray();
}