package jetbrains.mps.debugger.java.api.state.proxy; /*Generated by MPS */ import jetbrains.mps.debugger.java.api.evaluation.proxies.IValueProxy; import jetbrains.mps.debug.api.programState.IValue; import org.jetbrains.annotations.NotNull; import com.sun.jdi.ThreadReference; import java.util.List; import jetbrains.mps.debug.api.programState.IWatchable; public abstract class JavaValue<V extends IValueProxy> extends ProxyForJava implements IValue { @NotNull protected final V myValue; protected final ThreadReference myThreadReference; private volatile List<IWatchable> mySubvalues; public JavaValue(@NotNull V value, @NotNull ThreadReference threadReference) { super(value); myValue = value; myThreadReference = threadReference; } @NotNull public V getValue() { return myValue; } @Override public void initSubvalues() { mySubvalues = calculateSubvalues(); } public abstract List<IWatchable> calculateSubvalues(); @Override public List<IWatchable> getSubvalues() { return mySubvalues; } }