Interface IBslValue

  • All Superinterfaces:
    org.eclipse.core.runtime.IAdaptable, org.eclipse.debug.core.model.IDebugElement, IRuntimeDebugElement, org.eclipse.debug.core.model.IValue
    All Known Subinterfaces:
    IBslArrayValue, IBslEnumValue, IBslIndexedValue, IBslPrimitiveValue

    public interface IBslValue
    extends org.eclipse.debug.core.model.IValue, IRuntimeDebugElement
    Represents BSL module variable or expression value in a 1C:Enterprise Runtime debug process. IBslValue is root of BSL debug values hierarchy and has more specific sublcasses.

    BSL values are evaluating asynchronously and in lazy mode. Clients may force evaluating by calling evaluate(), or actual value will be automatically evaluated, when debug platform will fetch value children (for example, when user will expand value owner node in Variables view).

    Clients may use IBslValueFactory to create instances of IBslValue.

    See Also:
    IValue, IBslValueFactory, IBslValueStateChangeListener
    • Method Detail

      • getVariables

        IBslVariable[] getVariables()
                             throws org.eclipse.debug.core.DebugException
        Specified by:
        getVariables in interface org.eclipse.debug.core.model.IValue
        Throws:
        org.eclipse.debug.core.DebugException
      • hasVariables

        boolean hasVariables()
        Specified by:
        hasVariables in interface org.eclipse.debug.core.model.IValue
      • getDetailString

        String getDetailString()
                        throws org.eclipse.debug.core.DebugException
        Returns a details string presentation of this BSL value. Will be used in UI representation.
        Returns:
        string presentation of value detail, never null
        Throws:
        org.eclipse.debug.core.DebugException - if request fails
      • getParentUuid

        UUID getParentUuid()
        Returns the value parent variable or expression evaluation UUID.

        1C:Enterprise Runtime stores entire expression evaluation and client can access to child value nodes by the same UUID.

        Returns:
        the parent variable or expression UUID, never null
      • getType

        BslValueType getType()
        Returns the value BSL value type.
        Returns:
        the value BSL value type, never null
        See Also:
        BslValueType
      • getPath

        BslValuePath getPath()
        Returns the BSL value path. Can be used to create path to child nodes.
        Returns:
        the value path, never null
        See Also:
        BslValuePath
      • getStackFrame

        IBslStackFrame getStackFrame()
        Returns the associated stack frame, that actually holds this value parent variable or expression.
        Returns:
        the associated stack frame, never null
      • isUnreadable

        boolean isUnreadable()
        Returns whether this BSL value is unreadable.

        1C:Enterprise Runtime debug model sometimes have Unreadable values, it means that there is no information in debug server about this value.

        Returns:
        whether this BSL value is unreadable
      • isPending

        boolean isPending()
        Returns whether the result of this watch expression is pending. An expression is pending if an evaluation has been requested, but the value has not yet been returned.
        Returns:
        whether the result of this watch expression is pending
      • isEvaluated

        boolean isEvaluated()
        Returns whether the actual value of this BSL value is already fully evaluated.
        Returns:
        whether the actual value of this BSL value is already fully evaluated
      • isIndexedElementValue

        default boolean isIndexedElementValue()
        Returns whether the value is indexed element value.
        Returns:
        whether the value is indexed element value
      • evaluate

        void evaluate()
               throws org.eclipse.debug.core.DebugException
        Evaluates this BSL value through connected 1C:Enterprise Runtime debug server. The IBslValue fires a debug change event when the evaluation is complete.

        Note that implementation is intended to be asynchronous to avoid blocking the calling thread.

        Throws:
        org.eclipse.debug.core.DebugException - if request fails
      • reevaluate

        IEvaluationChain reevaluate()
        Computes and returns the evaluation chain to evaluate for this value update. Evaluation chain includes already evaluated children evaluation requests.

        Note, that an evaluation chain is a description of evaluation requests, and it needs to be executed by the IEvaluationEngine for actual value update.

        Returns:
        the evaluation chain to evaluate for this value update, never null
        See Also:
        IEvaluationChain