java.lang.Object
java.lang.Record
org.matwoess.jsourceprofiler.tool.model.ControlBreak
Record Components:
kind - the kind of control break (one of ControlBreak.Kind)
label - the target label of the control break, if any
All Implemented Interfaces:
Serializable

public record ControlBreak(ControlBreak.Kind kind, String label) extends Record implements Serializable
This class is used to represent a control flow break.
See Also:
  • Constructor Details

    • ControlBreak

      public ControlBreak(ControlBreak.Kind kind, String label)
      Creates an instance of a ControlBreak record class.
      Parameters:
      kind - the value for the kind record component
      label - the value for the label record component
  • Method Details

    • stopPropagationAt

      public boolean stopPropagationAt(Block block)
      Decide when to stop propagating a control break at a given parent block.
      Parameters:
      block - the block to check
      Returns:
      true if this kind of control flow break should be propagated only until the given block
    • fromToken

      public static ControlBreak fromToken(String tokenValue)
      Create a new control flow break from a keyword token value.
      Parameters:
      tokenValue - the keyword string of the control break
      Returns:
      a new control break instance with a kind matching the token string
    • fromTokenWithLabel

      public static ControlBreak fromTokenWithLabel(String tokenValue, String label)
      Create a new control flow break from a keyword token value and a label.
      Parameters:
      tokenValue - the keyword of the control break
      label - the target label of the control break
      Returns:
      a new control break instance with the given label
    • toString

      public String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • kind

      public ControlBreak.Kind kind()
      Returns the value of the kind record component.
      Returns:
      the value of the kind record component
    • label

      public String label()
      Returns the value of the label record component.
      Returns:
      the value of the label record component