/*******************************************************************************
* Copyright (c) 2000, 2006 QNX Software Systems 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:
* QNX Software Systems - Initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.debug.core.cdi.model;
import org.eclipse.cdt.debug.core.cdi.CDIException;
import org.eclipse.cdt.debug.core.cdi.model.type.ICDIType;
/**
*
*/
public interface ICDIVariableDescriptor extends ICDIObject {
/**
* Returns the name of this variable.
*
* @return String the name of this variable
*/
String getName();
/**
* Returns the type of this variable descriptor.
*
* @return the type of data this variable is declared
* @throws CDIException if this method fails. Reasons include:
*/
ICDIType getType() throws CDIException;
/**
* Returns the type name of this variable descriptor.
*
* @return the type of data this variable is declared
* @throws CDIException if this method fails. Reasons include:
*/
String getTypeName() throws CDIException;
/**
* Returns the size of this variable descriptor.
*
* @return the size of this variable
* @throws CDIException if this method fails. Reasons include:
*/
int sizeof() throws CDIException;
/**
* Returns the qualified name of this variable.
*
* @return the qualified name of this variable
* @throws CDIException if this method fails. Reasons include:
*/
String getQualifiedName() throws CDIException;
/**
* Consider the variable object as an Array of type and range[start, start + length - 1]
* @param stack
* @param name
* @return ICDIVariableDescriptor
* @throws CDIException
*/
ICDIVariableDescriptor getVariableDescriptorAsArray(int start, int length) throws CDIException;
/**
* Consider the variable descritor as type.
*
* @param stack
* @param name
* @return ICDIVariableDescriptor
* @throws CDIException
*/
ICDIVariableDescriptor getVariableDescriptorAsType(String type) throws CDIException;
/**
* Returns true if the variable Object are the same,
* For example event if the name is the same because of
* casting this may return false;
* @return true if the same
*/
boolean equals(ICDIVariableDescriptor varDesc);
}