/******************************************************************************* * Copyright (c) 2000, 2011 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 *******************************************************************************/ package org.eclipse.jdt.debug.core; import org.eclipse.debug.core.DebugException; import org.eclipse.debug.core.model.IIndexedValue; /** * A value referencing an array on a target VM. * * @see IJavaValue * @since 2.0 * @noimplement This interface is not intended to be implemented by clients. * @noextend This interface is not intended to be extended by clients. */ public interface IJavaArray extends IJavaObject, IIndexedValue { /** * Returns the values contained in this array. * * @return the values contained in this array * @exception DebugException * if this method fails. Reasons include: * <ul> * <li>Failure communicating with the VM. The * DebugException's status code contains the underlying * exception responsible for the failure.</li> * </ul> */ public IJavaValue[] getValues() throws DebugException; /** * Returns the value at the given index in this array. * * @param index * the index of the value to return * @return the value at the given index * @exception DebugException * if this method fails. Reasons include: * <ul> * <li>Failure communicating with the VM. The * DebugException's status code contains the underlying * exception responsible for the failure.</li> * </ul> * @exception java.lang.IndexOutOfBoundsException * if the index is not within the bounds of this array. */ public IJavaValue getValue(int index) throws DebugException; /** * Returns the length of this array. * * @return the length of this array * @exception DebugException * if this method fails. Reasons include: * <ul> * <li>Failure communicating with the VM. The * DebugException's status code contains the underlying * exception responsible for the failure.</li> * </ul */ public int getLength() throws DebugException; /** * Sets the value at the given index to the specified value. * * @param index * the index at which to assign a new value * @param value * the new value * @exception DebugException * if this method fails. Reasons include: * <ul> * <li>Failure communicating with the VM. The * DebugException's status code contains the underlying * exception responsible for the failure.</li> * <li>The given value is not compatible with the type of * this array</li> * </ul> * @exception java.lang.IndexOutOfBoundsException * if the index is not within the bounds of this array. */ public void setValue(int index, IJavaValue value) throws DebugException; /** * Replaces values in this array. If the given replacement values length is * less that the length of this array, only the number of values in the * given array are replaced. If the given replacement values length is * longer than the length of this array, values in positions greater than * the length of this array are ignored. * * @param values * replacement values * @exception DebugException * if an exception occurs replacing values * @since 3.4 */ public void setValues(IJavaValue[] values) throws DebugException; /** * Replaces a range of values in this array. * * @param offset * offset in this array to start replacing values at * @param length * the number of values to replace in this array * @param values * replacement values * @param startOffset * the first offset where values are copied from the given * replacement values * @exception DebugException * if an exception occurs replacing values or if the given * offsets and length are not within the range of this array * or the replacement values * @since 3.4 */ public void setValues(int offset, int length, IJavaValue[] values, int startOffset) throws DebugException; }