blob: 2a3edccc8111579cbab191fa71d5cb44cde879ad [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2012 QNX Software Systems and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* QNX Software Systems - Initial API and implementation
* Jens Elmenthaler (Verigy) - Added Full GDB pretty-printing support (bug 302121)
* Anton Gorenkov - DSF-GDB should properly handle variable type change (based on RTTI) (Bug 376901)
*******************************************************************************/
package org.eclipse.cdt.dsf.mi.service.command.output;
/**
* GDB/MI var-update.
*/
public class MIVarChange {
String name;
String value;
boolean inScope;
boolean changed;
private String newType;
private boolean isDynamic = false;
private int newNumChildren = -1;
private boolean hasMore = false;
private MIVar[] newChildren;
private MIDisplayHint displayHint = MIDisplayHint.NONE;
public MIVarChange(String n) {
name = n;
}
public String getVarName() {
return name;
}
public String getValue() {
return value;
}
public boolean isInScope() {
return inScope;
}
public boolean isChanged() {
return changed;
}
/**
* @since 4.1
*/
public String getNewType() {
return newType;
}
/**
* @return Whether the associated variable's value and children are provided
* by a pretty printer.
*
* @since 4.0
*/
public boolean isDynamic() {
return isDynamic;
}
/**
* @return Whether the number of children changed since the last update.
*
* @since 4.0
*/
public boolean numChildrenChanged() {
return (newNumChildren != -1);
}
/**
* Only call if {@link #numChildrenChanged()} returns true.
*
* @return The new number of children the associated varobj now has already fetched.
*
* @since 4.0
*/
public int getNewNumChildren() {
assert (newNumChildren != -1);
return newNumChildren;
}
/**
* @return Whether there more children available than {@link #getNewNumChildren()}.
*
* @since 4.0
*/
public boolean hasMore() {
return hasMore;
}
/**
* @return The children added within the current update range.
*
* @since 4.0
*/
public MIVar[] getNewChildren() {
return newChildren;
}
/**
* @return The new display hint
*
* @since 4.0
*/
public MIDisplayHint getDisplayHint() {
return displayHint;
}
public void setValue(String v) {
value = v;
}
public void setInScope(boolean b) {
inScope = b;
}
public void setChanged(boolean c) {
changed = c;
}
/**
* @since 4.1
*/
public void setNewType(String newType) {
this.newType = newType;
}
/**
* @since 4.0
*/
public void setDynamic(boolean isDynamic) {
this.isDynamic = isDynamic;
}
/**
* @since 4.0
*/
public void setNewNumChildren(int newNumChildren) {
this.newNumChildren = newNumChildren;
}
/**
* @since 4.0
*/
public void setHasMore(boolean hasMore) {
this.hasMore = hasMore;
}
/**
* @since 4.0
*/
public void setNewChildren(MIVar[] newChildren) {
this.newChildren = newChildren;
}
/**
* @param hint
*
* @since 4.0
*/
public void setDisplayHint(MIDisplayHint hint) {
displayHint = hint;
}
}